XCode でユニバーサル ライブラリを作成する方法について、いくつかのチュートリアルとガイドを読みました。基本的には、bash スクリプト ビルド フェーズで集約ターゲットを追加して、個別のターゲットをビルドし、それらをまとめて lipo します。
私は自分の小さなスクリプトを持っています (ターゲットに名前を付けた方法で動作します) が、何らかの理由で 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"