[iOS] アプリをAd Hoc配布可能にする手順について
はじめに
こんにちは。モバイルアプリサービス部の平屋です。
本記事では、Fabric Betaを使用してiOSアプリをAd Hoc配布可能にする手順を紹介します。
Fabricのサポート終了について
Fabricは現在Firebaseへ統合する作業の最中であり、2019年の中ごろまでにサポートが終了します。
本記事で使用するFabric Betaも同様にサービス終了する見込みです。2018/12/17現在、Fabric Betaの代替サービスであるFirebase App Distributionが未提供であるため、本記事ではFabric Betaを使用します。
検証環境
- macOS Mojave 10.14
- Xcode Version 10.0 (10A255)
- CocoaPods 1.5.3
前提条件
- Xcodeプロジェクトは新規で作成する
- マニュアルでsigningする
- CocoaPodsでFabric, Crashlyticsを導入する
- CocoaPodsはXcodeプロジェクトのディレクトリ内にインストールする
目次
- プロジェクトを作成する
- Fabric, Crashlyticsをプロジェクトに追加する
- FabricのRun Scriptをプロジェクトに追加する
- Fabricにアプリを追加する
- Fabric Betaのテスターのグループを作成する
- XcodeのSchemeをSharedに変更する
プロジェクトを作成する
Xcodeで新規プロジェクトを作成します。
- 設定例
- Product Name: AppDistributionSample
- Organization Identifier: com.example
- Bundle Identifier: com.example.AppDistributionSample
https://developer.apple.com/でApp IDとProvisioning Profileを作成します。
- 作成例
- App ID
- Name: AppDistributionSample
- Identifier: XXXXXXXXXX.com.example.AppDistributionSample
- Provisioning Profile
- Type: iOS Distribution (Ad Hoc)
- Profile Name: AppDistributionSample
- App ID
XcodeでTARGET > Generalを開き、以下の操作を行います。
- Signingセクションの「Automatically manage signing」のチェックをはずす
- Signing (Release)セクションのProvisioning Profile > Download Profile > をクリックする
- 先ほど作成したProfileを選択し、「Select Profile」をクリックする
Fabric, Crashlyticsをプロジェクトに追加する
Gemfile, Podfileをプロジェクトディレクトリのルートに追加します。
# Gemfile source 'https://rubygems.org' gem 'cocoapods'
# Podfile platform :ios, '11.0' use_frameworks! target 'AppDistributionSample' do pod 'Fabric' pod 'Crashlytics' end
以下のコマンドを実行します。
$ bundle install --path vendor/bundle
$ bundle exec pod install
FabricのRun Scriptをプロジェクトに追加する
API Key, Build Secretを確認する
Fabricのorganizationページ(https://fabric.io/settings/organizations/xxxxx 形式)を開き、API Key, Build Secretを確認します。
API Key, Build Secretのラベルをクリックすると、それぞれの値が下に表示されます。
Run Scriptをプロジェクトに追加する
XcodeでTARGET > Build Phasesを開いて「+」ボタンをクリックし「New Run Script Phase」を選択します。
Run Script Phaseが追加されるので、以下の操作を行います。
- スクリプトの入力欄に以下を入力する
${PODS_ROOT}/Fabric/run" <API Key> <Build Secret>
- 「Input Files」セクションの「+」ボタンクリックし以下を入力する
$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Fabricにアプリを追加する
Info.plistを更新する
Fabricに関する設定値をInfo.plistに追加します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ... <key>Fabric</key> <dict> <key>APIKey</key> <string>Enter Your API Key Here</string> <key>Kits</key> <array> <dict> <key>KitInfo</key> <dict/> <key>KitName</key> <string>Crashlytics</string> </dict> </array> </dict> ... </dict> </plist>
AppDelegateにコードを追加する
Fabric, Crashlyticsを初期化するコードをAppDelegate
に追加します。
import UIKit // 追加 import Fabric import Crashlytics // @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // 追加 Fabric.with([Crashlytics.self]) // return true } }
アプリをRunする
アプリをRunすると、Run Scriptが走り、Fabricにアプリが追加されます。
アプリが追加されると以下のようなタイトルのメールが配信されます。
- AppDistributionSample (com.example.appdistributionsample on ios) was just successfully added
Fabric Betaのテスターのグループを作成する
アプリ配布対象のテスターのグループを作成します。
Fabricで該当アプリのページ(https://fabric.io/
「Manage Groups」をクリックします。
Group name(例: all
)を入力し、Enterを押します。
「Add Testers...」と書かれたテキストフィールドにテスターのメールアドレスを入力し、「+」ボタンをクリックします。
XcodeのSchemeをSharedに変更する
XcodeのManage Schemes画面を開き、ビルド時に使用するSchemeのSharedにチェックを入れます。
さいごに
iOSアプリをFabric Betaで配布可能にする手順を紹介しました。
次の記事では、fastlaneを導入してアプリを配布する手順を扱います。