読者です 読者をやめる 読者になる 読者になる

Q: Xcode でアーカイブビルドが完了してもオーガナイザのウィンドウに遷移しないのでipa ファイルが作れない問題の解決

A 1: Product -> Edit Scheme -> Archive の設定を確認

"Reveal Archive in Organizer" が有効になってないとオーガナイザは開かない。

A 2: Deployment -> Skip install が Yes になっていたら No にする

なにかしらの自動化ツールの影響でかわっていたり、自分でかえてしまっていたりする。

A 3: コマンドラインから自力で作る

    # バンドル化
    xcodebuild -configuration Release -sdk iphoneos
    # パッケージング
    /usr/bin/xcrun -verbose -sdk iphoneos PackageApplication `pwd`/build/Release-iphoneos/MyApp.app -o `pwd`/build/MyApp.ipa --sign "iPhone Distribution: Omaeno NAME"

xcodebuild すると build/Release-iphoneos/MyApp.app にできてるのでそれを .ipa にする。

xcrun はラッパーで /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication みたいなパスのコマンドを実行している。
PackageApplication を生で扱うと出力先のディレクトリ全消去(上書き)したりする過激なツールなので、実行前にはバックアップしておく(.svn .git とかも消去される)のをおすすめする。
--sign の引数にはXcode のビルド設定でRelease に使っている証明の名称をそのままコピペしておく(デフォルト指定でうまくいく場合もある)。
他の記事では--embed という引数で証明書も渡しているみたいだけど、普段ビルドに使っているマシンでキーチェインに全部登録してるならつけなくてもよさげ。

でも.ipa のファイルフォーマットってPayload/ 以下に .app がそもまま入っているだけのZIP なのでipa 作りたいだけで署名をやり直す必要ってなさそうなんだけどなー。