LoginSignup
211
202

More than 5 years have passed since last update.

iPhoneアプリをmakeコマンド一発でビルドしてDeployGateで自動配布する方法

Last updated at Posted at 2014-02-27

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の場合、

Makefile
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という項目をコピペします。

hoge.mobileprovision
<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と組み合わせると更に便利そうですね!

211
202
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
211
202