【发布时间】:2022-08-03 00:12:03
【问题描述】:
我正在开发一个 iOS 项目。我正在使用仅适用于设备而不适用于模拟器的框架(UnityFramework)。我想在模拟器上运行时排除框架以方便测试,否则应用程序将无法编译。
我已按照this StackOverflow post(似乎已过时)和this Apple documentation 的说明对框架进行了弱链接,以便在为模拟器构建时不包含它,但在为模拟器构建时仍然出现相同的错误:没有找到框架。
我不确定我是否遗漏了一些需要从模拟器构建中排除此框架的内容,或者我的配置是否有问题。我尝试在“其他链接器标志”中同时使用 -weak_framework 和 -ObjC -weak_framework。我使用的是 Xcode 13.3。
我的构建设置:
Frameworks, Libraries, and Embedded Content: UnityFramework.framework - Embed & Sign
Build Settings - Other Linker Flags - All marked with -weak_framework UnityFramework
Build Phases - Link Binary with Libraries - UnityFramework.framework - Optional
这是我得到的错误的 sn-p:
Ld .../Library/Developer/Xcode/DerivedData/app-gygzddvoumbadmatpojfllhgdkag/Build/Products/Debug-iphonesimulator/AppDevelopment.app/AppDevelopment normal(在项目\'App\'的目标\'AppDevelopment\'中) cd .../项目/应用程序文件夹
-Xlinker .../Library/Developer/Xcode/DerivedData/app-gygzddvoumbadmatpojfllhgdkag/Build/Intermediates.noindex/app.build/Debug-iphonesimulator/appDevelopment.build/Objects-normal/x86_64/appDevelopment.swiftmodule -weak_framework UnityFramework -Xlinker -sectcreate -Xlinker __TEXT -Xlinker
ld:找不到框架 UnityFramework