0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SafariでiPhoneをインスペクトできない時にみる記事

Posted at

結論

iPhoneはバージョンによってインスペクトできるものとできないものがあるみたいです。対策としてはコードで記述する必要があるみたいです。

原因

こちらによるとiOS16.4からWKWebViewの仕様が変わったようです。

変更点

Across all platforms supporting WKWebView or JSContext, a new property is available called isInspectable (inspectable in Objective-C). It defaults to false, and you can set it to true to opt-in to content being inspectable. This decision is made for each individual WKWebView and JSContext to prevent unintentionally making it enabled for a view or context you don’t intend to be inspectable. So, for example, to make a WKWebView inspectable, you would:

今回の16.4バージョンからisInspectableプロパティが追加されました。これをtrueにするとリリースビルドのWebViewアプリをSafariでデバックできるようになります。

対応

参考記事の追記をすることでインスペクトが可能になります。今回、私が実践した際にはisInspectableを定義してなかったので下記のコードを追記しました。

extension WKWebView {
    func enabledSafariInspector() {
        #if DEBUG
            if #available(iOS 16.4, *) {
                if self.responds(to: Selector(("setInspectable:"))) {
                    self.perform(Selector(("setInspectable:")), with: true)
                }
            }
        #endif
    }
}

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?