iOS9 Share Extension无法在Xcode上调试
当我从Xcode为真实设备构建共享扩展时,Xcode会随意停止调试。但是当我为模拟器启动时,问题不会发生。iOS9 Share Extension无法在Xcode上调试
环境
的Xcode 7.1.1
的iOS 9.1
详细
当我建立份额扩展,Xcode中显示 “已完成运行MobileSafari.app在iPhone”,但Safari不运行。而且,方形停止按钮是任意灰色的。所以,我自己发布Safari并选择我的扩展和后期。调试部分不显示任何内容。另外,URL请求不会被发送到Rails服务器。
我不知道为什么真正的设备无法在Xcode上启动共享扩展。
如果有人知道关于这个问题的答案,请告诉我。
我也遇到过这个问题,但不幸的是我不知道确切的解决方案,也许我可以提供一些可能有用的信息。
我(就像你,根据你的屏幕截图判断)正在使用Cocoapods,Cocoapods在代码签名后将资源从pod复制到应用程序扩展的包中。如果内存服务,这会干扰代码签名,从而阻止应用程序在调试器下运行。
我认为其中的一个症状是,日志出现在Mac的控制台(或设备的控制台,不记得是哪一个)中,说“使用旧的skool [sic]方法对设备进行爆破”。 “
您可以通过从项目中删除Cocoapods或在编译后需要复制资源的任何窗格来确认情况。我相信解决方案是在扩展项目中添加某种特殊的构建阶段来复制捆绑资源,并禁用默认情况下使用的任何Cocoapods。
作为一种临时解决方案,我认为从设备中删除您的应用程序应该允许您在第一次安装该应用程序的运行中附加一次调试器。您也可以尝试删除项目的派生数据。
通常,您可以通过转到调试 - >附加到进程或PID并输入共享扩展名来调试共享扩展。从那里你可以在你的设备或模拟器上打开共享扩展,并且Xcode的调试器应该正确连接并打破断点。但是,我注意到这样做时不会显示日志消息,也不会在调试器视图中为变量填充值。
下面是我如何使调试工作正常。运行共享扩展方案。当它询问你要运行什么应用程序时,选择“照片”(因为这是您的扩展程序将运行的应用程序)。照片应用程序将在您的设备上启动,您可以继续使用您的扩展程序。 Xcode中的调试器应该按预期工作。
我会尽快查看。 –
谢谢本。通过你的文章,我注意到我还没有重新安装在设备上。 – penlight
所以我试了一下,并检查应用扩展是否正常。结果是App Extension在iPhone上运行,我可以看到调试器输出。我没有删除Cocoapods Library,但我认为你的回答是合理的。所以我选择你的答案是最好的答案。 – penlight
问题重新出现。所以,接下来我删除Cocoapods表单项目,但问题未被删除。 – penlight