脚本
我的项目(代码库为iOS / watchOS / tvOS共享)具有ENABLE_BITCODE = YES
的构建设置,并利用了尚未支持bitcode的基础库,尽管引用了App Thinning中的Apple文档
Bitcode是默认值,但可选。对于watchOS和tvOS应用程序,需要bitcode。如果您提供bitcode,应用程序包中的所有应用程序和框架(项目中的所有目标)都需要包含bitcode
我目前正在将这些基础图书馆与迦太基整合。
问题
为了有一个干净的构建过程,我尝试向各个所有者提交一些拉取请求以启用bitcode,但由于其代码库的复杂性,这些代码库适用于多个操作系统/体系结构,我的拉取请求仍然在待定:所以,为了能够构建我自己的项目,我仍然需要手动更改其构建设置。
题
如何将Carthage进程短路以将特定构建设置(在本例中为ENABLE_BITCODE = YES
)注入相关库中?
我找到了一个解决方案,通过使shell脚本能够擦除bitcode的禁用,以防有人面对或好奇解决类似的问题,脚本是这样的:
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 $'\0' folder; do
sed -i '' 's/ENABLE_BITCODE = NO;//g' $folder/project.pbxproj
done
fi
done
carthage build --platform ios
基本上脚本的机制是:
pbxproj
xcodeproj