Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AppStore申請を一式まるっと自動化する

16,565 views

Published on

potatotips#17 の発表資料です。

Published in: Software
  • Be the first to comment

AppStore申請を一式まるっと自動化する

  1. 1. AppStore申請を 一式まるっと自動化する デジタルサーカス(株)長谷川智希
  2. 2. 長谷川智希 とも き @tomzoh
 とむぞう 開発系趣味 その他趣味 iOSアプリ開発, Webサイト開発 レンタルカートレース, 電子工作(mbed), … TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO
  3. 3. デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発
 
 ・ 自社サービス (PHP, Drupal, CakePHP) (iOS, Android)
 
 (http://appbuilder.jp) Twitter: @tomzoh
  4. 4. Twitter: @tomzoh
  5. 5. 今日のテーマ: AppStore申請を 一式まるっと自動化する
  6. 6. AppBuilder • WebベースのiOSネイティブアプリ作成ツール • [申請]ボタン → デジタルサーカス審査 → AppStore申請 • オープン当初は全部手動で申請していた。
 → 今はほぼ自動化出来た。
  7. 7. AppStore申請ステップ step1 ビルド ソースコードをコンパイルして申請⽤用バイナリを作る。 step2 アプリ作成 iTunes Connectでアプリを登録。 step3 メタデータ登録 説明⽂文、アイコン、スクリーンショット、レーティングなどを登録。 step4 バイナリアップロード 申請⽤用バイナリをアップロードする。 step5 申請 「審査⽤用に提出」ボタンを押して質問に答える。 ○ △ △ ○ ○ △ ○ △コマンド実⾏行行や設定ファイルだけでOK。 プログラム(的なもの)を書く必要がある。
  8. 8. 使えるツール • iTunes Connectにメタデータやバイナリを登録する。 • バージョンの作成、申請なども一部可能。 • 一部機能は内部的にiTMSTranspoterを使用。 deliver KrauseFx氏によるCLIコマンド • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール • Xcodeプロジェクトをビルドして.appを作成する。 • .appから.ipaを作成する。 Xcode付属のCLIコマンドxcodebuild / xcrun ○ △ ○
  9. 9. $ xcodebuild -workspace AppBuilder.xcworkspace -scheme AppBuilder -sdk iphoneos -configuration Release CODE_SIGN_IDENTIFY="iOS Distribution: Digital Circus, Inc." PROVISIONING_PROFILE=“50d57162-…-5364e9325e42” clean archive -archivePath build/AppStore • Xcodeプロジェクトをビルドして.appを作成する。 • .appから.ipaを作成する。 Xcode付属のCLIコマンドxcodebuild / xcrun
  10. 10. • Xcodeプロジェクトをビルドして.appを作成する。 • .appから.ipaを作成する。 Xcode付属のCLIコマンドxcodebuild / xcrun $ xcrun -sdk iphoneos PackageApplication /path/to/app/AppBuilder.app -o AppBuilder.ipa
  11. 11. • Xcodeプロジェクトをビルドして.appを作成する。 • .appから.ipaを作成する。 Xcode付属のCLIコマンドxcodebuild / xcrun 使えるツール • iTunes Connectにメタデータやバイナリを登録する。 • バージョンの作成、申請なども一部可能。 • 一部機能は内部的にiTMSTranspoterを使用。 deliver KrauseFx氏によるCLIコマンド • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール
  12. 12. $ sudo gem install deliver $ deliver • iTunes Connectにメタデータやバイナリを登録する。 • バージョンの作成、申請なども一部可能。 • 一部機能は内部的にiTMSTranspoterを使用。 deliver KrauseFx氏によるCLIコマンド
  13. 13. deliver KrauseFx氏によるCLIコマンド . ├── Deliverfile ├── app.ipa ├── appstore-icon.png ├── metadata │   └── ja-JP │   ├── description.txt │   ├── keywords.txt │   ├── privacy_url.txt │   ├── software_url.txt │   ├── support_url.txt │   └── title.txt ├── ratings-config.json └── screenshots └── ja-JP ├── iPhone4-1.png ├── iPhone4-2.png ├── iPhone4-3.png ├── iPhone5-1.png ├── iPhone5-2.png └── iPhone5-3.png
  14. 14. deliver KrauseFx氏によるCLIコマンド . ├── Deliverfile ├── app.ipa ├── appstore-icon.png ├── metadata │   └── ja-JP │   ├── description.txt │   ├── keywords.txt │   ├── privacy_url.txt │   ├── software_url.txt │   ├── support_url.txt │   └── title.txt ├── ratings-config.json └── screenshots └── ja-JP ├── iPhone4-1.png ├── iPhone4-2.png ├── iPhone4-3.png ├── iPhone5-1.png ├── iPhone5-2.png └── iPhone5-3.png ipa "./app.ipa" version "2.5.3" price_tier 0 app_icon './appstore-icon.png' copyright '2015 Digital Circus Inc.’ primary_category 'Lifestyle' secondary_category 'Travel' automatic_release true ratings_config_path './ratings-config.json' app_review_information({ first_name: "Tomoki", last_name: "HASEGAWA", phone_number: "(+)81-3-5775-4406", email_address: "foo@example.com", }) app_identifier “com.dgcircus.foo.bar” email "foo@example.com"
  15. 15. deliver KrauseFx氏によるCLIコマンド • iTunes Connectにメタデータやバイナリを登録する。 • バージョンの作成、申請なども一部可能。 • 一部機能は内部的にiTMSTranspoterを使用。 • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール • Xcodeプロジェクトをビルドして.appを作成する。 • .appから.ipaを作成する。 Xcode付属のCLIコマンドxcodebuild / xcrun 使えるツール
  16. 16. • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール <tr> <td>[コマンド]</td> <td>[第1引数(ターゲット)]</td> <td>[第2引数(バリュー)]</td> </tr> 基本 構文
  17. 17. • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール <tr> <td>[コマンド]</td> <td>[第1引数(ターゲット)]</td> <td>[第2引数(バリュー)]</td> </tr> 基本 構文 <tr> <td>open</td> <td>/WebObjects/iTunesConnect.woa</td> <td></td> </tr> URLを 開く
  18. 18. • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール <tr> <td>[コマンド]</td> <td>[第1引数(ターゲット)]</td> <td>[第2引数(バリュー)]</td> </tr> 基本 構文 <tr> <td>open</td> <td>/WebObjects/iTunesConnect.woa</td> <td></td> </tr> URLを 開く <tr> <td>type</td> <td>id=accountname</td> <td>foo@dgcircus.com</td> </tr> 文字を 入力
  19. 19. • WebのUIテスト自動化によく使用される。 • HTMLで手順を記述する。 selenium Webブラウザを外から操作するためのツール <tr> <td>[コマンド]</td> <td>[第1引数(ターゲット)]</td> <td>[第2引数(バリュー)]</td> </tr> 基本 構文 <tr> <td>open</td> <td>/WebObjects/iTunesConnect.woa</td> <td></td> </tr> URLを 開く <tr> <td>type</td> <td>id=accountname</td> <td>foo@dgcircus.com</td> </tr> 文字を 入力 <tr> <td>click</td> <td>link=サインイン</td> <td></td> </tr> リンクを クリック
  20. 20. ソースコードをコンパイルして申請⽤用バイナリを作る。 iTunes Connectでアプリを登録。 説明⽂文、アイコン、スクリーンショット、レーティングなどを登録。 申請⽤用バイナリをアップロードする。 「審査⽤用に提出」ボタンを押して質問に答える。 AppStore申請 step1 ビルド step2 アプリ作成 step3 メタデータ登録 step4 バイナリアップロード step5 申請 xcodebuild / xcrun selenium deliver selenium deliverselenium 既存 自作コマンド実⾏行行や設定ファイルだけでOK。 プログラム(的なもの)を書く必要がある。
  21. 21. ソースコードをコンパイルして申請⽤用バイナリを作る。 iTunes Connectでアプリを登録。 説明⽂文、アイコン、スクリーンショット、レーティングなどを登録。 申請⽤用バイナリをアップロードする。 「審査⽤用に提出」ボタンを押して質問に答える。 AppStore申請 step1 ビルド step2 アプリ作成 step3 メタデータ登録 step4 バイナリアップロード step5 申請 xcodebuild / xcrun selenium deliver selenium deliverselenium 初回価格設定だけdeliverでできない 既存 自作コマンド実⾏行行や設定ファイルだけでOK。 プログラム(的なもの)を書く必要がある。
  22. 22. ソースコードをコンパイルして申請⽤用バイナリを作る。 iTunes Connectでアプリを登録。 説明⽂文、アイコン、スクリーンショット、レーティングなどを登録。 申請⽤用バイナリをアップロードする。 「審査⽤用に提出」ボタンを押して質問に答える。 AppStore申請 step1 ビルド step2 アプリ作成 step3 メタデータ登録 step4 バイナリアップロード step5 申請 xcodebuild / xcrun selenium deliver selenium deliverselenium 初回価格設定だけdeliverでできない 本当はdeliverでできるはずだけど現状エラーになる 既存 自作コマンド実⾏行行や設定ファイルだけでOK。 プログラム(的なもの)を書く必要がある。
  23. 23. デモ step1 ビルド step2 アプリ作成 step3 メタデータ登録 step4 バイナリアップロード step5 申請
  24. 24. まとめ • アプリビルドからAppStore申請まで自動化可能。 • ビルドとパッケージ作成は署名も含めてXcode付属の CLIコマンドで。 • iTunes ConnectメタデータはdeliverでだいたいOK。 • ツールの 間をSeleniumで埋める。
  25. 25. 補足1 • Xcode付属ツールのiTMSTranspoterを使うことでも iTunes Connectへのメタデータ設定、バイナリアップ ロードは可能。 • XMLでメタデータを定義する。 • AppStoreから現在設定されているメタデータを取得すること もできる。 • アイコン設定とかバージョン作成は出来ない。 • deliverはApple Test Flightへのデプロイも可能。
  26. 26. 補足2 • NOMADというCLIツール集もある。 • CUPERTINO … UDIDメンテナンス • HUSTON … PUSH通知送信 • DUBAI … Passbook生成 • VENICE … IAPレシートベリファイ & デコード • SHENZHEN … ビルド(IPA作成), デプロイ
  27. 27. ありがとうございました。 @tomzoh JOIN US !!!
 PHP, Drupal, スマホ… デジタルサーカス(株)

×