我正在尝试创建一个可以在我的 Apple Watch Extension 以及应用程序本身中使用的框架。我通过在 XCode 中创建一个“Watch Framework”类型的新项目来做到这一点,并成功构建了一个框架。
我将它拖到我的 Apple Watch 项目中,并验证它在“将二进制文件与库链接”和“复制捆绑资源”中,并且能够构建并部署到设备上。
但是,我在运行时收到以下错误消息。
Oct 30 08:14:30 My-s-AppleWatch ReportCrash[187] <Error>: Dyld Error Message:
Dyld Message: Library not loaded: @rpath/SimpleWatchFramework.framework/SimpleWatchFramework
Referenced from: /private/var/mobile/Containers/Bundle/Application/8E7660C0-B741-497C-8251-88D9243234BF/Apple Watch Extension.app/PlugIns/Apple Watch Extension Extension.appex/Apple Watch Extension Extension
Reason: image not found
Dyld Version: 369.12
我查看了我的主项目的 .app 目录(在产品下),可以看到框架目录与我的 Apple Watch Extension 的二进制文件处于同一级别(在 ../Watch/xxx/PLugins/yyy/), 所以我不确定为什么它说找不到它。
Apple 的文档似乎暗示你可以这样做,但我不确定我是否必须做任何特殊的事情才能让它工作。
最佳答案
我通过确保将框架添加到监视扩展目标的嵌入式二进制文件部分而不是链接框架来解决此问题。在此处添加它会自动在链接框架中创建一个条目。您也可以删除复制捆绑资源步骤,该步骤将其复制到错误的位置(在应用程序扩展的根目录中)。嵌入式二进制文件将框架放置在扩展根目录中的 frameworks 文件夹下,这是您的应用程序正确加载而不会出现 dyld 错误所需的全部内容
关于ios - 创建和使用可在 Apple Watch 扩展中使用的框架是否需要特殊步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437513/