如何解决迁移到 xcframwork Xcode 12.5,dyld:库未加载 环境问题解决方案
环境
- MacBook Pro(13 英寸,2017 年,两个 Thunderbolt 3 端口)
- 大 sur 11.3.1
- Xcode 12.5
- Apple Swift 5.4 版 (swiftlang-1205.0.26.9 clang-1205.0.19.55)
- 目标:x86_64-apple-darwin20.4.0
问题
在 Xcode 12.4 之前,我们使用 this workaround 为我们的项目获取框架,这些框架是包的形式(黄色公文包图标)。此外,我需要为我的每个目标手工编写一个 Carthage copy File
脚本(在构建阶段下),这很烦人且容易出错。
几天前我阅读了 Carthage 官方文档,它建议使用 xcframework
。从这些步骤来看,似乎不再需要烦人的 copy file
步骤,我决定试一试。
我完全遵循了 migration steps。我还更改了框架搜索路径,使其从 $(PROJECT_DIR)/YOUR_PROJECT/Carthage/Build/iOS
指向 $(PROJECT_DIR)/YOUR_PROJECT/Carthage/Build
。该应用程序刚刚在模拟器中运行,但现在振作起来还为时过早,每当我尝试在 iPhone 中运行它时它就会崩溃。在调试器控制台中它抱怨
dyld: Library not loaded: @rpath/Auth0.framework/Auth0
Referenced from: /private/var/containers/Bundle/Application/9575D8AA-BD35-447B-ACC3-F8545CDB62EE/FIT dev.app/FIT dev
Reason: image not found
dyld: launch,loading dependent libraries
DYLD_LIBRARY_PATH=/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libmainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDdisupport.framework/libViewDebuggerSupport.dylib
解决方案
最后,我在 2 年前遇到了这个 Medium post,它建议 embed & sign
拖放到项目中的框架。通过将某些框架的 Embed
状态从 Do not embed
更改为 Embed & Sign
(从选项卡 General/Frameworks,Libraries and Embedded Content
),我对我的项目做了同样的事情。
宾果游戏!项目在模拟器和真机上运行,UI测试也照常运行。
Carthage 官方文档中的 migration steps 根本没有提到这一步。另外,我找不到任何解决类似问题的帖子。所以我只想分享我的迁移步骤,希望这可能对其他人有所帮助
- 严格按照 migration steps 操作(如果您有多个目标,这里的技巧是将所有 xcframeworks 放到文件导航器中的
/Frameworks
组下,这样您就可以将 xcframeworks 链接到您的所有一枪瞄准)
解决方法
我已经回答了我的问题,请看问题,谢谢:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。