观看扩展 NSBundle URLForResource 始终为零

Watch extension NSBundle URLForResource always nil

在我的应用程序中,我使用带有资源目标的静态库,我已将资源目标连接到 Build Phases -> Copy Bundle Resources 并且我像这样获取库资源:

 NSUrl *resourcesUrl = [[NSBundle mainBundle] URLForResource:@"MySDKResources" withExtension:@"bundle"]
 NSBundle *bundle = [NSBundle bundleWithURL:resourcesUrl];  
 NSString *path = [bundle pathForResource:filename ofType:fileExtension];

使用 watch 扩展,当应用程序收到 func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) 委托时,我使用相同的代码,但这次

在同一个会话中,当应用程序之一 类 调用此代码文件路径 return 没问题,但是当 watch extension delegate 调用相同的代码时 returns nil

我尝试将静态库添加到 Target DependenciesCompile Sources 并将资源目标添加到 Copy Bundle Resources 但我得到 No such file or directory error

好的,事实证明,当你 运行 观看模拟器时,它会杀死 iPhone 模拟器上的应用程序(但不会崩溃)所以它看起来像应用程序 运行ning 但实际上你无法实例化捆绑包或任何其他应用程序资源。 this blog post 解释如何 运行 应用程序和 watch 应用程序一起调试。

TL;DR :

while running code on simulator on Xcode menu bar select Debug -> Attach to Process -> select the process of your iOS app from the list (It'll probably be under Likely Targets)