注目の記事

[iOS] iOS エンジニア以外でもリリースできる!iOS アプリのリリース手順のまとめ [2015年11月版]

2015.11.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、モバイルアプリサービス部の荒川です。

最近は、お客様の端末でソースコードをダウンロードして、アプリをリリースして頂く機会が増えてきました。iOS アプリのリリースは Android と比較すると非常に煩雑です。

Apple の開発者用アカウント管理や設定、Xcode でのリリース用バイナリの書き出しは、慣れている方でも(公式のUIがたまに変わるので)すぐにできるとは限りません。セキュリティを考慮すると、自社以外の関係者にリリースをお願いすることは、好ましくありません。NDAを締結しても、事故が起きるリスクがあります。

この記事では、上記の問題を解決するために、iOS 開発者以外の方でも Xcode から App Store へリリースできる手順を紹介します。

対象読者としては、

  • 初めて App Store へバイナリを提出する方
  • リリース担当者から引き継ぎをお願いされた方
  • 特定の開発者しかリリースが行えない状態のプロジェクト関係者
  • Xcode で iOS アプリの開発をした事がない方

を想定とします。

また、Apple へ提出したバイナリを審査・配布・管理できる「iTunes Connect」の紹介は、この記事では行いません。予めご了承下さい。Xcode から App Store へバイナリを提出するまでの過程を紹介します。

前提として、

  • 既に Apple Developer - Member Center の登録が済んでいる
  • Apple Developer Center で App ID や Provisioning Profile は作成済み

とします。

リリースに必要なもの

  • Apple 開発者用アカウント
  • Xcode(App Store からインストール, 過去のバージョンはこちら(要ログイン)よりダウンロード可能)
  • Mac 毎の開発者証明書
  • Production(リリース用) の Provisioning Profile

事前準備(一度でもリリース申請をしたことがある Mac 端末であればスキップ可)

Apple IDの登録

Apple Developer のアカウントを取得

登録した Apple ID をチームメンバーへ追加

Apple Developer [People] に招待し、Admin権限を付与します。

参考 : [Apple 公式] iOSチーム管理ガイド

参考 : iOSDeveloperProgram - 1から始めるiOSチーム開発:Apple Developer Programにメンバーを招待する - Qiita

開発者証明書の登録

リリースするための Mac が、チームの開発者用端末として登録されていることを保証します。

参考 : よく分かる!iOS アプリ開発に必要な証明書ファイルの作成方法

参考 : よく分かる!iOS アプリ開発に必要な証明書ファイルの作成方法 2015年版

Production の Provisioning Profile を取得する

以下のようにすると、一括でインストールが行えます。

  1. Xcodeを開いて 「Command + ,」
  2. Accountsタブを選択
  3. 登録した Apple ID でログイン
  4. 右下に表示されているチーム名をダブルクリック
  5. 下記画像の手順を行う

ios_release_build_01

開発者証明書が Mac の「キーチェーンアクセス」に入っていればリリースビルドができます。 Spotlight「Control + Space」または「Mac メニュー画面右上の虫眼鏡アイコン」で「keychain」と打てば確認できます。

ビルド環境構築

ソースコードの取得

各プロジェクトによって決められた、リポジトリやファイルサーバーからリリース用のソースコードを取得してください。

ビルド環境の構築(OSSのインストール)

プロジェクトによって様々ですが、ビルド手順は担当のエンジニアに確認をして下さい。弊社で担当している案件の場合は、 GitHub の README に以下のようにまとめていることが多いです。

## 開発環境
- OS X Yosemite (10.10.x) 以降
- Xcode 7.1 以上

## セットアップ
Homebrewをインストールしていない場合は、先にインストールする。インストール方法については[公式サイト](http://brew.sh/)を参照。

### CocoaPodsのインストール
Bundler をインストールしていない場合は、先に下記コマンドでインストールする。

$ sudo gem install bundler

利用する CocoaPods のバージョンを固定するため、Bundler で CocoaPods をインストール。

$ bundle install --path vendor/bundle

### OSSライブラリのインストール
CocoaPods でインストール。

$ bundle exec pod install

プロジェクトを開く際には `XXXApp.xcworkspace` を Xcode で開く。

## 規約
- iOS コーディング規約(リンク)

## プロジェクト構成
- 必要があれば記入

リリース用バイナリの作成

開発環境毎にスキームを設定している場合は変更が必要です。スキームが複数ない場合は不要です。

ios_release_build_02

ターゲットをiOS Device(または接続中の実機)に変更

ios_release_build_03

Xcode メニューの「Product」→「Archive」を選択

ios_release_build_04

作成されたバイナリをApp Storeへ提出する

ios_release_build_05

以降暗号化や広告に関する確認事項が出てくる場合があります。 必要に応じて設定を行ってください。

iTunes Connect で提出されたバイナリを確認

AppStore で表示される情報を登録・変更を行ってリリース準備完了となります。

Try & Error

よくあるエラーケースをまとめます。

複数の Mac でそれぞれ証明書が存在する

Your account already has a valid iOS Distribution certificate

ios_release_build_06

対処法

新しい Mac の証明書で Provisioning Profile を作り直すか、下記の参考サイトのように、p12ファイルを共有する方法があります。

参考 : iPhoneアプリ開発雑記帳 : 複数のMacで開発する際の証明書

iTunes Connect で事前にアプリ登録が済んでいない

Unable to validate your application.

ios_release_build_07

対処法

iTunes Connect で新しいバージョンのアプリ情報を登録しましょう。

古いバージョンの Xcode を使っていて、申請で弾かれる

Unable to validate your application.

ios_release_build_07

対処法

Xcode 付属のツール 「Application Loader」 を使ってアップロードしましょう。

ios_release_build_09

Xcodeのメニューから [Xcode] → [Open Developer Tool] → [Application Loader]

参考 : ついんむーんぶろぐ : the application you have selected does not exist

まとめ

リリースするのに複雑な Xcode の操作を、担当者・お客様に理解しやすいように記事にまとめました。

「iOS リリース」などでググるとたくさん情報が出ますが、古い記事も多かったので書きました。また Xcode のバージョンが新しくなれば更新版を書くかもしれません。

今後リリースする時の参考になれば幸いです。