我已经阅读了一些关于如何让 XCode 创建通用库的教程和指南。基本上,您添加一个带有 bash 脚本构建阶段的聚合目标来构建单独的目标并将它们组合在一起。
我有自己的小脚本(由于我如何命名目标而起作用),但由于某种原因 lipo 找不到文件;
致命错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:无法打开输入文件:/Users/username/Projects/project/plugins/build/Release-iphoneos/ libproject-plugins.a /Users/username/Projects/project/plugins/build/Release-macos/libproject-plugins.a (没有这样的文件或目录)
然而当我
- 在构建失败后立即运行完全相同的 lipo 命令,一切正常并找到文件。
- 在我的脚本中添加 bash 逻辑以等待文件创建问题仍然存在。
- 用一个简单的替换
lipo
我的脚本中ls
的文件,文件就在那里。
所以我不确定出了什么问题,它似乎不像xcodebuild
只在调用 lipo 之后创建文件(正如我首先想到的那样)。
剧本;
targets=$(xcodebuild -list | sed -n '/Targets/,/^$/p' | grep -v -e 'Targets:\|all\|^$')
target_results=""
for target in $targets; do
xcodebuild ${ACTION} -target $target -configuration ${CONFIGURATION}
target_results="$target_results ${PROJECT_DIR}/build/${CONFIGURATION}-$target/libproject-plugins.a"
done
xcrun lipo -create "$target_results" -o "${PROJECT_DIR}/plugins-universal.a"