- (void)viewDidLoad
{
    NSLog(@"%s", __func__);
    // ...
}

viewDidLoad台iOS 8 extension中.NSLog在Xcode中不输出任何内容.不过NSLog在容器应用程序中照常工作.

如何从扩展中获得调试消息的输出?

推荐答案

  1. 调试适用于应用程序扩展.
  2. 它也可以在模拟器上工作.
  3. 如果您的应用程序EXT在模拟器中崩溃,您可能会发现要重新启动您的应用程序EXT并非易事.重新启动模拟器是一种快速的解决方案.
  4. Steps to debug an app extension:

    1. 运行容器应用程序.在这一步中,Xcode将容器APP和APP扩展上传到设备或模拟器.

    2. 停止容器应用程序.当您在模拟器中调试时,此步骤很重要.如果您不这样做,Xcode会告诉您模拟器正在使用中.

    3. In Xcode, press menu Debug -> Attach to Process -> By Process Identifer (PID) or Name..., input the app ext's identifier, e.g. com.abc.ContainerApp.MyExtension, to start debugging. Don't forget to set break points. (Update on Aug 25, 2014: you can input MyExtension(your extension's name) directly.)

    4. 在设备或模拟器中,打开您的应用程序扩展.


2014年8月23日更新:

我发现上面的调试步骤在模拟器上的Xcode 6 beta 6和iOS 8 SDK beta 5上不能很好地工作.

解决方案:

  1. 在模拟器中运行您的扩展.
  2. Xcode menu Debug -> Attach to Process -> Choose "MyExtension(your extension's name)" in System section in the menu.

断点起作用了.但是我不知道为什么日志(log)没有显示在输出窗口中.

Ios相关问答推荐

SwiftUI文本编辑器内部滚动填充,无需文本裁剪

Xcode15.3上的生成错误:调用的对象类型';facebook::flipper::SocketCertificateProvider';不是函数或函数指针

preferredCompactColumn作为NavigationSplitViewColumn.sidebar传递,但仍能在iOS上看到详细信息页面

Jenkins node 无法运行fastlane命令-未找到命令

DriverKit驱动程序中可能存在IOBufferMemoyDescriptor泄漏

如何在将EXPO更新到50.0后修复react 本机错误

如何在不将应用程序留在SwiftUI上的情况下更改语言?

iOS应用程序冻结在UICollectionView代码,但我没有';没有任何UICollectionViews

RFID scanner 的蓝牙服务 UUID?

如何在 SwiftUI 中通过通用 @ObservedObject 进行切换?

在视图控制器中实例化视图控制器是否可能/智能?

从视图模型中更新 EnvironmentObject

在代码生成的 UIView 上绘制 UIBezierPath

无法将NSTaggedPointerString类型的值转换为NSNumber

如何在 Swift 中使用包含多个值的查询参数构建一个 URL?

如何在react 导航中获取当前路由名称?

Xcode / iOS模拟器:手动触发重大位置更改

判断密钥是否存在于 NSDictionary 中

CoreBluetooth 应用程序到底能在后台做什么?

快速从 NSTimeInterval 转换为小时、分钟、秒、毫秒