我正在尝试创建一个框架,我想在其中使用Cocoapods(SwiftWebsocket(的另一个框架。但是,当我运行应用程序时,代码编译时,我会得到臭名昭著的:
dyld: Library not loaded:
@rpath/SwiftWebSocket.framework/Versions/A/SwiftWebSocket
Referenced from: /Users/xxxxx/Library/Developer/Xcode/DerivedData/TestFx-efmkyfxootekawemcuqasuakdyii/Build/Products/Debug/TestFx.framework/Versions/A/TestFx
Reason: image not found
当我用otool -L
转储共享库时,我会看到:
TestFx:
@rpath/TestFx.framework/Versions/A/TestFx (compatibility version 1.0.0, current version 1.0.0)
@rpath/SwiftWebSocket.framework/Versions/A/SwiftWebSocket (compatibility version 1.0.0, current version 1.0.0)
...
问题似乎是SwiftWebsocket的路径是@rpath/SwiftWebSocket.framework/...
,但是在磁盘上swiftwebsocket.framework实际上位于SwiftWebsocket目录中:
├── Pods_TestFx.framework
├── SwiftWebSocket
│ └── SwiftWebSocket.framework
├── TestFx.framework
├── TestFxApp.app
如果我在父目录中创建指向SwiftWebsocket.framework的链接,则可以找到框架并启动应用程序。
我如何告诉Xcode/cocoapads,在我的框架中寻找嵌入的SwiftWebsocket框架的路径应为@rpath/SwiftWebSocket/SwiftWebSocket.framework/...
,而不是@rpath/SwiftWebSocket.framework/...
或一般而言以任何方式使其工作?
将其添加到您的 podspec (在您的框架中(
spec.framework = 'SwiftWebSocket'
-
您可以在此处找到有关如何配置PODSPEC的更多信息:https://guides.cocoapods.org/syntax/podspec.html