当我从Xcode为真实设备构建共享扩展时,Xcode会任意停止调试。但是当我启动模拟器时,问题并没有出现。
环境
Xcode 7.1.1
iOS 9.1
详细信息
当我构建共享扩展时,Xcode显示“在iPhone上完成运行MobileSafari.app”,但是Safari没有运行。并且,方形的停止按钮是任意灰色的。因此,我自己启动Safari并选择我的扩展和post。debug部分不显示任何内容。此外,URL请求不会发送到Rails服务器。
这是我为真实设备构建共享扩展时的图片。

我不知道为什么真正的设备不能在Xcode上启动共享扩展。
如果有人知道这个问题的答案,请告诉我。
发布于 2016-09-12 13:35:41
通常,您可以通过转到debug、->、Attach to process或PID并输入共享扩展的名称来调试共享扩展。在那里,您可以打开设备或模拟器上的共享扩展,Xcode的调试器应该正确地附加和命中断点。但是,我注意到执行此操作时不会显示日志消息,也不会为调试器视图中的变量填充值。
下面是我如何让调试正确工作的。运行共享扩展方案。当它问你要运行什么应用时,选择“照片”(因为这是你的扩展将在其中运行的应用)。然后,照片应用程序将在您的设备上启动,您可以继续使用您的扩展。然后,Xcode中的调试器应该可以正常工作。
发布于 2015-11-28 05:13:23
我也遇到过这个问题,尽管不幸的是我不知道确切的解决方案,也许我可以提供一些可能有帮助的信息。
我(像你一样,从你的屏幕截图判断)正在使用Cocoapods,Cocoapods在代码签名后将资源从pods复制到应用程序扩展的捆绑包中。如果内存有效,这会以某种方式干扰代码签名,从而阻止应用程序在调试器下运行。
我认为其中一个症状是,mac的控制台(或者设备的控制台,不记得是哪个了)上出现了一些日志,上面写着“使用旧的skoolsic方法对设备进行攻击”。
您可以通过从项目中删除Cocoapods,或者从编译后需要复制资源的任何pods中删除Cocoapods来确认这一点。我认为解决方案是向扩展项目添加某种特殊的构建阶段,以复制包资源,并禁用默认情况下Cocoapods使用的任何内容。
作为一种临时解决方案,我相信从设备上删除你的应用程序应该允许你在第一次安装应用程序的运行时附加一次调试器。您还可以尝试删除项目的派生数据。
https://stackoverflow.com/questions/33870693
复制相似问题