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];

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

  • 资源网址在不同的文件夹中,我在查找器上找不到一个
  • 捆绑包为零
  • 路径显然为零
  • didReceiveMessage 委托调用此代码不在主线程上(所以我在主线程上调度)

在同一会话中,当其中一个应用程序类调用此代码文件路径时,返回正常,但是当监视扩展委托调用相同的代码时,它返回 nil

我尝试将静态库添加到Target DependenciesCompile Sources并将资源目标添加到Copy Bundle Resources但我没有得到这样的文件或目录错误

好的,事实证明,当您运行手表模拟器时,它会杀死iPhone模拟器上的应用程序(但不会崩溃),因此看起来应用程序正在运行,但实际上您无法实例化捆绑包或任何其他应用程序资源。 这篇博文解释了如何在调试中同时运行应用程序和监视应用程序。

博士 :

在 Xcode 菜单栏上的模拟器上运行代码时,选择调试 -> 附加到进程 ->从列表中选择iOS应用程序的进程 (它可能在可能的目标下)

最新更新