我正在努力让一个使用 XCFramework 的框架工作。我已经构建了 arm64/armv7 和单独的 x86_64 框架,就好像它们是普通的 cocoapods 一样,然后我xcodebuild -create-xcframework
将它们合并到一个运行良好的 xcframework 中。当我之后尝试使用框架时,虽然我得到了这个运行时错误
dyld: dyld cache load error: shared cache file open() failed
dyld: Symbol not found: _$s6Lottie13AnimationViewC18backgroundBehaviorAA0a10BackgroundE0OvpWvd
Referenced from: /Users/user/Library/Developer/CoreSimulator/Devices/BE671B8B-97A0-4449-BBC6-C1DFD857138D/data/Containers/Bundle/Application/04DFC623-E380-45C6-A28F-0C36142F031E/MyFramework_Example.app/Frameworks/MyFramework.framework/MyFramework
Expected in: /Users/user/Library/Developer/CoreSimulator/Devices/BE671B8B-97A0-4449-BBC6-C1DFD857138D/data/Containers/Bundle/Application/04DFC623-E380-45C6-A28F-0C36142F031E/MyFramework_Example.app/Frameworks/Lottie.framework/Lottie
in /Users/user/Library/Developer/CoreSimulator/Devices/BE671B8B-97A0-4449-BBC6-C1DFD857138D/data/Containers/Bundle/Application/04DFC623-E380-45C6-A28F-0C36142F031E/MyFramework_Example.app/Frameworks/MyFramework.framework/MyFramework
我已经搜索了很多 dyld 类型错误,但它们似乎都不是这种类型,并且有似乎不适用于我的场景的解决方案。
xcframework 通过 cocoapods 放入我的项目中,并在 podspec 中定义了它的依赖关系。正如您从错误中看到的那样,它试图使用来自我的依赖项之一的 lottie 框架中的符号,但似乎找不到它,这很奇怪。我已经确定 lottie 框架确实被拉入了我的项目(如果我从源代码而不是 xcframework 构建它,它就可以工作)。所以不知道为什么它在链接框架时遇到问题。
如果您需要任何更具体的信息来提供帮助,请告诉我