iOS 8:如何正确设置扩展以使用模拟器在 Xcode 中对其进行调试?

Posted

技术标签:

【中文标题】iOS 8:如何正确设置扩展以使用模拟器在 Xcode 中对其进行调试?【英文标题】:iOS 8: How to properly setup extension to debug it in Xcode using simulator? 【发布时间】:2014-08-10 16:07:22 【问题描述】:

我已经关注了 Apple 提供的用于调试扩展的 documentation,但我仍然无法调试扩展,例如,断点没有被拾取。

我已经为扩展程序创建了一个新目标,它创建了一个新方案,并且我已经将该方案配置为在运行我的扩展程序时启动正确的应用程序。

扩展工作正常,但调试 NSLog 或断点之类的东西不起作用。我也尝试了this 之类的答案,但它们不起作用

我正在使用 Xcode 6 beta 5 和 ios 模拟器

【问题讨论】:

我苦苦挣扎,终于在这里得到了答案:***.com/questions/33870693/… 【参考方案1】:

除了这个回答https://***.com/a/24043265/1136433 说明如何查看扩展应用程序的日志之外,您还可以在该日志中检查扩展程序的 PID。

假设您有以下 NSLog 语句:

NSLog(@"Testing");

执行扩展,在 system.log 中你会看到如下内容:

Sep 11 11:13:40 my_machine.local today[5689]: Testing

“today”是您正在执行的扩展程序的名称(在我的例子中是 Today Extension),“5689”是扩展程序的 PID。

所以,现在你可以去 Xcode -> Debug -> Attach to Process 然后你就可以设置断点和调试代码了。

希望这可以帮助某人

【讨论】:

可能想在“测试”之前添加@ 如何获取system.log? @EnriMR 我在使用 Xcode 7 时不再遇到这个问题,看来 Apple 解决了这个问题。您刚才在目标列表中选择了扩展并执行它,Xcode 会自动附加到扩展进程(注意有时会失败,尝试几次直到成功) @estemendoza 我正在使用 Xcode 7.2 并且我有错误:( @EnriMR 很奇怪,多试几次以防万一。 System.log 可以通过“控制台”应用显示,只需打开 Spotlight 并搜索控制台

以上是关于iOS 8:如何正确设置扩展以使用模拟器在 Xcode 中对其进行调试?的主要内容,如果未能解决你的问题,请参考以下文章

我无法满足今天 IOS 8 扩展中的限制

如何确保构建使用 v14.x iOS/tvOS 模拟器?

如何调试iOS App中UIWebView和WKWebView使用的HTML文件

iOS 8 - 应用程序未正确旋转

无法在模拟器中运行 Today 扩展小部件(iOS 8)

过渡到 iOS 7:在 iPad 上查看的 jQuery/iPhone Web 应用程序的正确视口设置