为模拟器构建应用程序时排除 *.a 文件
Posted
技术标签:
【中文标题】为模拟器构建应用程序时排除 *.a 文件【英文标题】:Exclude *.a file when building the app for simulator 【发布时间】:2021-07-20 12:39:20 【问题描述】:目前,我在项目中使用的其中一个库存在问题,它根本不允许我为 ios 模拟器进行构建。
收到以下错误消息: 为 iOS 模拟器构建,但链接库 '!@#$%^&.a' 是为 iOS 构建的。
在我的课堂上,我有以下代码:
#if (TARGET_IPHONE_SIMULATOR==0)
void !@#$%^&_init(void);
#endif
我尝试在为 iPhone 模拟器构建应用程序时排除该文件,方法是将其添加到 Build Settings > Build Options > Excluded Source File Names > Any iOS Simulator SDK
我还尝试排除以下架构:arm64、arm64e 和 armv7。
将 Build Active Architecture Only 设置为 YES,对我没有任何作用,也没有验证构建产品或验证工作空间。
实际上,上述解决方案都不适合我,所以我不得不在这里问这个问题。
【问题讨论】:
【参考方案1】:作为一种解决方法,您应该能够在文件/项目设置下将构建系统更改为“旧版构建系统”。 正确的解决方案是将您的库打包为 XCFramework。
【讨论】:
这个对我也不起作用,我试过了 尝试“旧版构建系统”或创建 XCFramework 或两者兼而有之? 尝试遗留构建系统以上是关于为模拟器构建应用程序时排除 *.a 文件的主要内容,如果未能解决你的问题,请参考以下文章
为 iOS 构建,但在为 iOS 模拟器构建的目标文件中链接,用于架构 arm64
由于 CoreData 无法创建构建:应用程序中没有核心数据时 API 滥用,并且应用程序为所有模拟器构建