![[iOS] アプリをAd Hoc配布可能にする手順について](https://devio2023-media.developers.io/wp-content/uploads/2015/12/ios.png)
[iOS] アプリをAd Hoc配布可能にする手順について
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは。モバイルアプリサービス部の平屋です。
本記事では、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を導入してアプリを配布する手順を扱います。














