ios - 在旧 Xcode 的旧项目中使用新 Xcode 中构建的框架
问题描述
我有我的项目在 Xcode 10.1 和 Swift 3 中,我使用了 20 多个框架,直到几天前,当一些框架决定他们需要为 iOS 13 的关键错误发布修复程序时,一切都很好。所以当我更新我的 pod 和运行它说的我的项目
could not reparse object file in bitcode bundle: 'Invalid bitcode version (Producer: '1001.0.46.4.0_0' Reader: '1000.11.45.5_0')', using libLTO version 'LLVM version 10.0.0, (clang-1000.11.45.5)' for architecture arm64
好的,这意味着他们在更新的 Xcode 中构建他们的项目,然后我正在研究(我猜他们正在使用最后一个 10.3),然后我尝试在我的主要目标上将 bitcode 设置为 false,但猜测什么错误是相同的..
好的,所以我下载了他们的演示项目,这个关于 bitcode 的修复工作有效,所以我不确定我的项目有什么问题,为什么这个 bitcode = NO 不起作用。我只在我的主要目标上禁用了位码,我需要在其他地方或其他地方设置它吗?
不确定这是否相关,但我有 2 个 Xcode 并行 10.1 和 10.3
我这几天有这个问题。
我正在使用的这个应用程序是 Appboy-iOS-SDK。
解决方案
我们在使用 Braze (Appboy) SDK 时遇到过类似的问题。
经过调查,我们发现此问题仅影响使用 Xcode 11 或更高版本构建的应用程序,因此无需更新 SDK,除非您计划使用 Xcode 11 构建和提交您的应用程序,即使在 iOS 之后也不需要13号发布。我们将 SDK 保留在旧版本,在这里没有发现任何问题。
如果您想更新,仍然使用 Xcode 10.x,您需要通过关闭位码来解决不匹配问题。为了取得成功,您需要在项目/工作区的配置和 Appboy-iOS-SDK 的配置中禁用它。如果您使用 Cocoapods 来管理依赖项,最好将其添加到您的 Podfile 中,这样它就不会在YES
每次运行时重置pod install
:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == 'Appboy-iOS-SDK'
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
end
综上所述,我认为答案是仅在您升级构建机器以使用 Xcode 11 时进行此升级。
推荐阅读
- maven - Maven 将参数从插件传递到其他插件
- swift - 加载共享库时出错:libFoundation.so:无法打开共享对象文件:没有这样的文件或目录
- java - 在 Java 中使用带有多个映射的 Stream
- memory - DMA(PLX PEX 8733)运行一段时间后出现奇怪的src addr是否正常?
- appveyor - 限制 AppVeyor 作业/AppVeyor 作业中程序的总时间(部分)
- javascript - 触发组件之间的过渡
- wordpress - 重力表格 - 将填写的字段发送到谷歌标签管理器
- php - repeatcell 请求未更新 Google 表格中的单元格属性
- java - 使用 OneToMany 的 Spring Boot JPA 自定义查询
- powershell - 如何在 Powershell 中输出正则表达式匹配中的所有字符串?