3

現在、iOS の継続的インテグレーションのために、独立したサーバーで Jenkins を使用しています。Jenkins は、アドホック デバイスからアプリをダウンロードできるように、HTML リンクをビルド、テスト、および作成します (継続的デリバリー)。

App Store のリリースを作成するときはいつでも、必要なビルドのコードを取得し、それからビルドを作成します。これには問題があります。コードは同じですが、2 つの異なるマシンが関係しているため、バイナリが同じであるとは限りません。

通常、継続的インテグレーションではリリースは非イベントであるべきだと読みます。これは日常のビルドではうまくいきますが、継続的インテグレーション環境で App Store をリリースするための最良のアプローチは何ですか?

4

1 に答える 1

1

Jenkins に新しいジョブを追加することになりました.xcodearchive。そのジョブはパイプラインに属し、最後に実行されるタスクです。アーカイブの構築に使用されるコマンドは次のとおりです。

xcodebuild -scheme ${JK_SCHEMA_NAME} -archivePath ${JK_OUTPUT_DIR}/${JK_ARCHIVE_NAME} clean archive "CODE_SIGN_IDENTITY=${JK_CODE_SIGN_IDENTITY}" "GCC_PREPROCESSOR_DEFINITIONS=${GCC_PREPROCESSOR_DEFINITIONS} ${JK_GCC_PREPROCESSOR_DEFINITIONS}" "PROVISIONING_PROFILE=${JK_PROVISIONING_PROFILE_UDID}"

このようにして、コミットからストアの最終バイナリまでアプリを配信するフローが完全に自動化されていることを確認できます (または、少なくとも人間の操作は必要ありません)。バージョン番号が正しく設定されており、ストアにアップロードされた最終的なアーカイブを変更する可能性のあるソース コードまたはコンパイル オプションに変更がないこと。

于 2014-05-26T17:22:50.070 に答える