.ipa ファイルを自動生成する

.ipa ファイルを作るにはいくつか方法があります。

  • Xcode で作成
  • xcrun コマンド
  • shenzhen コマンド
  • TestFlight を利用

など。Xocde6 beta5 で ipa ファイルを作成しようとしたところ、Archive は問題なく通るのですが、その後 Export しようとすると「権限ないよ」と言われ作ることができませんでした。Xcode の不具合か弊社の環境周りに問題があるのか原因は調査中。。。ただ ipa ファイルの作成は他にも方法はあるので、とりあえず別の方法で作成しました。ここでは xcrun コマンドによる方法を紹介します。

xcrun コマンドによる .ipa ファイル作成

対象のプロジェクトのディレクトリ配下で、以下のスクリプトを実行することで ipa ファイルが作成されます。

#!/bin/sh

# -----ビルド〜ipaファイル作成-----

#SDK
SDK="iphoneos8.0"

# Debug or Release
CONFIGURATION="Debug"

# Xcodeのプロジェクト名
PROJ_FILE_PATH="Sample.xcodeproj"

# ターゲット名
TARGET_NAME="Sample"

# プロダクト名
PRODUCT_NAME="SampleApp"

# app出力先
APP_DIR="app"

# 出力先ipa
IPA_DIR="build"

# プロビジョニングプロファイル
PROVISIONING_PATH="~/Library/MobileDevice/Provisioning\ Profiles/{プロファイル名}.mobileprovision"

# 出力先ディレクトリ作成
rm -rf "${APP_DIR}"
rm -rf "${IPA_DIR}"
mkdir "${APP_DIR}"
mkdir "${IPA_DIR}"

# クリーン
xcodebuild clean -project "${PROJ_FILE_PATH}"

# ビルド
xcodebuild -project "${PROJ_FILE_PATH}" -sdk "${SDK}" -configuration "${CONFIGURATION}" -target "${TARGET_NAME}" install DSTROOT="${APP_DIR}"

# ipaファイル作成
xcrun -sdk "${SDK}" PackageApplication "${PWD}/${APP_DIR}/Applications/${PRODUCT_NAME}.app" -o "${PWD}/${IPA_DIR}/${PRODUCT_NAME}.ipa" -embed "${PROVISIONING_PATH}"

上記のスクリプトでは build ディレクトリが作成され、そこに SampleApp.ipa が書き出されています。SDK はビルド対象のバージョンを指定してください。ここでは BaseSDK 8.0 でビルドしたかったため 8.0 を指定しています。

 

※ 追記

shenzhen コマンドでの作成は以下にまとめています。

shenzhen コマンドで .ipa ファイルを作成する