Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
204
Help us understand the problem. What is going on with this article?
@k_kinukawa

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

More than 5 years have passed since last update.

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

204
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
204
Help us understand the problem. What is going on with this article?