7

私の名前はルカです。現在、シェル スクリプトを使用して配布 (アドホックおよびアプリ ストア) 用のアプリを xcode で構築するために、iOS の継続的インテグレーションに取り組んでいます。

これまでのところ、IPA ファイルで良い結果が得られました。私の問題は、App Store で配布されます。スクリプトから .app をビルドするには (いくつかの引数を渡す)、次のようにします。

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc

XCode 4.2 では、アプリの送信は XCode オーガナイザー ウィンドウを使用して行われるため、実行可能ファイルもアーカイブできる必要があります。

したがって、前のコマンド ラインを次のように変更します。

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc      **archive**

残念ながら、「アーカイブ」引数により、xcodebuild が他のもの (PRODUCT_NAME、TARGETED_DEVICE_FAMILY、...) を無視するようになり、出力は XCode の事前定義されたビルド設定を使用してビルドされます。

xcodebuild で引数を渡して有効にしたいのですが、「アーカイブ」アクションがこれを妨げているようです。

私は気が狂います、助けてください:)

ありがとう

4

3 に答える 3

4

xcodebuildのアーカイブアクションには、Xcode 4.2 のバグがあるようです。通常、プロジェクト構成のオーバーライドは、コマンドライン パラメーターとして、またはパラメーターを介して-xcconfig指定できます。

buildアクションはそれらを尊重しますが、archive尊重しません。(おそらくこれは、アーカイブがビルドを内部的に呼び出すメタアクションであるためですが、オプションを内部呼び出しにパススルーしないためです。) この問題を説明する OpenRadarバグがあるため、おそらく Apple に報告されています。

最後に、スクリプトからアーカイブアクションを使用する場合は、xcodebuild の終了コードに依存できないことに注意してください。アーカイブ アクションは、常に 0 の終了コードを生成します (慣例により、成功)。ビルドの失敗を検出するには、出力をスクレイピングする必要があります。

于 2012-02-08T12:28:10.037 に答える
0

私はこれと同じ問題に遭遇しました。私の現在の回避策は、基本的に他の構成を削除することです。そのため、アーカイブは必要な構成を使用するように強制されます。コマンドラインから実行できる解決策ではありませんが、Appleがこの明白な問題を修正することを願っています。

于 2012-06-21T18:07:54.740 に答える