ios - 是否可以在 Safari 上检查调试模式发布的 iOS 应用程序?
问题描述
Ref 1. 在 WWDC2016 中,Apple 宣布了关于 web 检查器的权利。
“为了保护您的应用程序的完整性,我们不会让任何人下载您的应用程序并使用 Web Inspector 浏览您的应用程序。
因此,您需要将此权利添加到应用程序的权利文件中以进行本地开发。
...您在开发时添加它,然后在发布应用程序时将其取出。然后,一旦您拥有此权利,您的设备和应用程序将显示在“开发”菜单中,您可以附加到它。而且很容易——将 Web Inspector 连接到您的 JSContext 和 WebView 就这么容易。”
参考 2. Webkit.org 指南。
启用 Web Inspector 后,通过物理电缆或在 Xcode 中配置无线调试后,将 iOS 设备连接到任何 macOS 机器,iOS 设备的名称将显示为 Safari(和 Safari Technology Preview)的“开发”菜单中的子菜单) 在连接的 macOS 机器上,允许远程检查:
- Safari 中的任何页面
- 添加到主屏幕的网站
- 开发人员配置的应用程序中的 Web 内容
- SFSafariViewController
- WKWebView
- UIWebView
- JS上下文
根据这些参考资料,我使用“com.apple.webinspector.allow = 1”创建了一个授权文件,并将其添加到我的项目中。
在代码签名权利 - 调试上写下了权利的路径。
之后,发现一个构建错误“Provisioning profile doesn't include webinspector allow entitlement”。当我将“任何 SDK”放在调试路径下方时,它就消失了。
将构建配置更改为“调试”和存档。
最后通过 FTP 服务器下载并安装了我的应用程序,但仍然无法在 mac safari 上调试 WKWebView。我仍然看到灰色的“没有可检查的应用程序”。句子。
我试过Xcode 12.4,safari的最新版本,safari技术预览也。
我是否遗漏了什么或者无法检查下载的 iOS 应用程序?
解决方案
仅当 iOS 应用程序从 Xcode 运行时,您才能在 Safari Web Inspector 中调试 Web 内容。
您不必添加任何权利 - 您提到的权利仅适用于 macOS 应用程序。
来自https://developer.apple.com/videos/play/wwdc2016/420/?time=351:
现在对于 iOS,应用程序只会在您从 Xcode 构建和运行它们时出现。
但是,当我们谈论 Mac 应用程序时,您还需要做一件事。为了保护您的应用程序的完整性,我们不会让任何人下载您的应用程序并使用 Web Inspector 浏览您的应用程序。因此,您需要将此权利添加到应用程序的权利文件中以进行本地开发。
推荐阅读
- excel - 多列验证,1列比较
- android - 图片上传不适用于 WKWebView 但适用于 SFSafariViewController
- node.js - 如何使用真实的 url 而不是 localhost 使 api 休息
- c - 创建匿名结构的 typedef 有什么意义?
- element-ui - 在 element-ui 传输组件中使用 render-content 属性进行自定义渲染不起作用
- angular - Angular7 - [ngModel] 不会在组件中更新,当两次输入相同的值时
- r - 更了解 reshape() 函数
- xcode - iTunes Store 操作失败。下载的软件组件已损坏,将无法使用
- javascript - 如何使用局部变量更改全局变量
- mysql - 如何提取分隔符前后的字符串并存储在mysql中?