いくつかの背景。Xcode プロジェクトがあり、現在 3 つのビルド構成 (AdHoc、Debug、および Release) がありますが、もう 1 つ追加する可能性があります。プロジェクトのアーカイブ ビルドに使用されるビルド構成は、スキームのアーカイブ セクションで定義されます。
Jenkins ジョブの一部として xcodebuild を使用し、-configuration オプションを使用して、使用するビルド構成を指定します。
「クリーン」コマンド (xcodebuild clean blah.blah.blah) は -configuration オプションを尊重することがわかりましたが、アーカイブ コマンドは考慮しません。スキームのアーカイブ セクションで指定されているものは何でも使用します。
したがって、ビルドの設定を AdHoc から Release に変更したい場合は、スキームを変更する必要があります。
スキームファイルを調べて、buildConfiguration = "Adhoc" の出現箇所を buildConfiguration = "Release" に置き換える sed コマンドを思いつきました。
my_build_configuration="Release"
sed -i '' -e 's/buildConfiguration = "[^"]*"/buildConfiguration = "'$my_build_configuration'"/' path/to/file
問題は、これが ArchiveAction アイテムだけでなく、すべてのアイテム (ビルド、実行、テストなど) に適用されることです。可能であれば、アーカイブ アクションを具体的に対象にしたいのですが、どうすればよいかわかりません。これはsedを使用しています。
ここに私が検索したいものがあります:
<ArchiveAction
buildConfiguration = "Adhoc"
次に、二重引用符内の値だけを置き換えたいと思います。AdHoc を Release に変更すると、次のようになります。
<ArchiveAction
buildConfiguration = "Release"
どこから始めればよいかよくわかりません