在 Carthage 依赖项上禁用位码
Bitcode disabled on Carthage dependencies
场景
我的项目(为 iOS/watchOS/tvOS 共享的代码库)具有 ENABLE_BITCODE = YES
的构建设置,并利用了尚不支持位码的基础库,尽管在 App Thinning[ 中引用了 Apple 文档=14=]
Bitcode is the default, but optional. For watchOS and tvOS apps,
bitcode is required. If you provide bitcode, all apps and frameworks
in the app bundle (all targets in the project) need to include bitcode
我目前正在将这些基础库与 Carthage 集成。
问题
为了有一个干净的构建过程,我尝试向各自的所有者提交一些拉取请求以启用位码,但是由于他们的代码库的复杂性,它们适用于多个操作 systems/architectures ,我的拉取请求仍处于待定状态:因此,为了能够构建我自己的项目,我仍然必须手动更改它们的构建设置。
问题
如何缩短 Carthage 进程以将特定构建设置(在本例中 ENABLE_BITCODE = YES
)注入相关库?
我找到了一个解决方案,制作了一个 shell 脚本,可以清除位码的禁用,以防有人面临或想解决类似的问题,脚本是这样的:
carthage update --platform ios
for D in ./Carthage/Checkouts/*; do
if [ -d "${D}" ]; then
find $D -type d -name \*.xcodeproj -print0 |
while IFS= read -r -d $'[=10=]' folder; do
sed -i '' 's/ENABLE_BITCODE = NO;//g' $folder/project.pbxproj
done
fi
done
carthage build --platform ios
基本上脚本的机制是:
- 正在下载所有依赖项
- 对于每个依赖项,找到
pbxproj
生活在xcodeproj
中并切断字符串ENABLE_BITCODE = NO
- 最终构建依赖项以生成 .
framework
要添加到 Andrea 的答案中,请确保使用 --no-use-binaries
构建迦太基,因为依赖项可能在其已发布的框架中禁用了位码,该位码将在没有 --no-use-binaries
的情况下使用。
场景
我的项目(为 iOS/watchOS/tvOS 共享的代码库)具有 ENABLE_BITCODE = YES
的构建设置,并利用了尚不支持位码的基础库,尽管在 App Thinning[ 中引用了 Apple 文档=14=]
Bitcode is the default, but optional. For watchOS and tvOS apps, bitcode is required. If you provide bitcode, all apps and frameworks in the app bundle (all targets in the project) need to include bitcode
我目前正在将这些基础库与 Carthage 集成。
问题
为了有一个干净的构建过程,我尝试向各自的所有者提交一些拉取请求以启用位码,但是由于他们的代码库的复杂性,它们适用于多个操作 systems/architectures ,我的拉取请求仍处于待定状态:因此,为了能够构建我自己的项目,我仍然必须手动更改它们的构建设置。
问题
如何缩短 Carthage 进程以将特定构建设置(在本例中 ENABLE_BITCODE = YES
)注入相关库?
我找到了一个解决方案,制作了一个 shell 脚本,可以清除位码的禁用,以防有人面临或想解决类似的问题,脚本是这样的:
carthage update --platform ios
for D in ./Carthage/Checkouts/*; do
if [ -d "${D}" ]; then
find $D -type d -name \*.xcodeproj -print0 |
while IFS= read -r -d $'[=10=]' folder; do
sed -i '' 's/ENABLE_BITCODE = NO;//g' $folder/project.pbxproj
done
fi
done
carthage build --platform ios
基本上脚本的机制是:
- 正在下载所有依赖项
- 对于每个依赖项,找到
pbxproj
生活在xcodeproj
中并切断字符串ENABLE_BITCODE = NO
- 最终构建依赖项以生成 .
framework
要添加到 Andrea 的答案中,请确保使用 --no-use-binaries
构建迦太基,因为依赖项可能在其已发布的框架中禁用了位码,该位码将在没有 --no-use-binaries
的情况下使用。