1. ホーム
  2. xcode

[解決済み】Xcodeのコマンドラインからの "Build and Archive "について

2022-03-24 18:27:30

質問

Xcode 3.2では、Buildメニューに"Build and Archive"という素晴らしい新機能があり、Ad Hoc配布に適した.ipaファイルが生成されます。 また、Organizerを開き、"Archived Applications,"そして"Submit Application to iTunesConnect.".を実行することも可能です。

コマンドラインから(ビルドスクリプトの一部として) "Build and Archive" を使用する方法はありますか? 次のように考えます。 xcodebuild が何らかの形で関与していると思われますが man のページには何も書かれていないようです。

アップデイト Michael Grinich氏から明確な説明を求められたので、以下に、コマンドラインビルドでできないこと、Xcodeのオーガナイザーを使ってビルドとアーカイブを行った後にしかできないことを説明します。

  1. アプリケーションの共有..."をクリックすると、IPAをベータテスターと共有することができます。 Guillaumeが以下で指摘しているように、Xcodeのマジックによって、このIPAファイルは、ベータテスターがインストールする必要がある、別途配布された.mobileprovisionファイルを必要としません。どんなコマンドラインスクリプトでも、それはできません。 例えば、Arrix社のスクリプト(5月1日に提出)は、この要件を満たしていません。
  2. さらに重要なのは、ベータテストの後に "アプリケーションを iTunes Connect に送信" をクリックすると、テストしたバイナリとまったく同じビルドを、リビルドせずに Apple に送信することができることです。アプリの署名はビルドプロセスの一部であるため、コマンドラインからは不可能です。アドホックベータテスト用のビットに署名するか、App Store に提出するために署名するかはできますが、両方はできません。 コマンドラインでビルドされた IPA を携帯電話でベータテストし、その後 Apple に直接提出することはできません。

この2つの機能はXcodeのGUIで素晴らしく機能し、コマンドラインからは再現できないのです。

解決するには?

コマンドラインからビルドとアーカイブのプロセスを自動化する方法を見つけました。 ブログ記事 を実現する方法を説明します。

使用するコマンドは xcrun :

/usr/bin/xcrun -sdk iphoneos PackageApplication \
-v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" \
-o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" \
--sign "${DEVELOPER_NAME}" \
--embed "${PROVISONING_PROFILE}"

の中に詳細が記載されています。 記事 . ご不明な点がございましたら、遠慮なくご質問ください。