2014/04/23追記
別記事にshenzhenでipaファイル作成する方法を書きました。
↑のほうが簡単です。
DeployGateでiOSアプリを配布できるようになりましたが、配布の度にGUIからちまちまアーカイブするのはだるいです。
だるくて仕事やる気がなくなりSNSをダラダラ眺めていたら、make adhocだけで.ipaをサッと作るという記事が流れてきたのでDeployGateで配布するところまで出来るようにしてみました。
まず、AdHoc配布用にプロビジョニングプロファイルを作成します。
iOS Developer CenterのCertificates, Identifiers & Profilesから、
[Provisioning Profiles] > [Distribution]でAd Hocのプロビジョニングプロファイルを作成してください。
作成したらダウンロードします。
ダウンロードしたhoge.mobileprovisionは、~/Library/MobileDevice/Provisioning\ Profiles/に放り込んでおきます。
次に、Makefileを作成します。
Makefileの作り方は参考にしたページほぼそのままです。
自分の場合、こんな感じになりました。
プロジェクト名がhogeの場合、
default:
xcodebuild -sdk iphoneos -target hoge -configuration Release build
adhoc:
if [ -a build]; then rm -R build; fi;
xcodebuild -sdk iphoneos -target hoge -configuration Release clean build CODE_SIGN_IDENTITY="iPhone Distribution" PROVISIONING_PROFILE="12345678-FFFF-0000-9999-012345678901"
xcrun -sdk iphoneos PackageApplication build/Release-iphoneos/hoge.app -o $(PWD)/build/hoge.ipa --embed hoge.mobileprovision
dgate push k_kinukawa build/hoge.ipa
になります。
PROVISIONING_PROFILE=に続く文字列は、hoge.mobileprovisionをテキストエディタで開き、UUIDという項目をコピペします。
<key>UUID</key>
<string>12345678-FFFF-0000-9999-012345678901</string>
UUIDを指定した.mobileprovisionが~/Library/MobileDevice/Provisioning\ Profiles/に存在しないと、ビルド時にエラーが出ます。
Check dependencies
Code Sign error: No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “12345678-FFFF-0000-9999-012345678901”, however, no such provisioning profile was found.
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.0'
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
make: *** [adhoc] Error 65
最後の一行でDeployGateにipaファイルを投げています。
DeployGateでプロジェクトは作成しておいてください。
dgateコマンドをインストールしておく必要があります。
#macの場合
$curl https://deploygate.com/install.sh | /bin/sh
これでmake adhocすればビルド後にアーカイブ、DeployGateへ送信して自動配布、までが1コマンドで実行できるようになりました。
$ make adhoc
if [ -a build]; then rm -R build; fi;
/bin/sh: line 0: [: missing `]'
xcodebuild -sdk iphoneos -target hoge -configuration Release clean build CODE_SIGN_IDENTITY="iPhone Distribution" PROVISIONING_PROFILE="12345678-FFFF-0000-9999-012345678901"
Build settings from command line:
CODE_SIGN_IDENTITY = iPhone Distribution
PROVISIONING_PROFILE = 12345678-FFFF-0000-9999-012345678901
SDKROOT = iphoneos7.0
=== CLEAN TARGET hoge OF PROJECT hoge WITH CONFIGURATION Release ===
....
....
....
** BUILD SUCCEEDED **
xcrun -sdk iphoneos PackageApplication build/Release-iphoneos/hoge.app -o /Users/kenji.kinukawa/hoge/build/hoge.ipa --embed hoge.mobileprovision
dgate push k_kinukawa build/hoge.ipa
Push app file successful!
Name : hoge
Owner : k_kinukawa
Package : com.kkinukawa.hoge
Revision : 3
URL : https://deploygate.com/users/k_kinukawa/apps/com.kkinukawa.hoge?key=****************************************
jenkinsと組み合わせると更に便利そうですね!