iOS の使用を開始する

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替手段の詳細については、こちらを参照してください。

App Center SDK ではモジュールアーキテクチャが使用されるため、サービスの一部またはすべてを使用できます。

App Center によって収集されたデータに関する情報は、 App Center SDK によって収集されたデータ一般的なデータ保護規則FAQ ページで確認できます。 また、FAQ には、App Storeプライバシー構成に対して提供する必要がある回答が含まれています。

App Center Analytics と App Center のクラッシュを使用するようにアプリで App Center iOS SDK を設定し始めましょう。 App Center Distribute をアプリに追加するには、 App Center の配布に関するドキュメントを参照してください。

1.前提条件

App Center SDK を使用するには、次の要件を満たす必要があります。

  • iOS プロジェクトは、macOS バージョン 10.14.4 以降の Xcode 13 以降で設定されています。
  • ios 11.0 以降で実行されているデバイスを対象としています。
  • クラッシュ レポート機能を提供する他のライブラリは使用していません (App Center のクラッシュの場合のみ)。
  • CocoaPods を使用して App Center を統合する場合は、CocoaPods バージョン 1.10 以降が必要です。

App Center SDK の分析とクラッシュは、XCFramework または SwiftPM を介して Mac Catalyst と互換性があります。

2. App Center ポータルでアプリを作成してアプリ シークレットを取得する

App Center ポータルでアプリを既に作成している場合は、この手順をスキップできます。

  1. appcenter.ms に向かいます。
  2. サインアップまたはログインし、ポータルの右上隅にある [ 新規 追加] という青いボタンをクリックし、ドロップダウン メニューから [ 新しいアプリの追加 ] を選択します。
  3. アプリの名前と説明 (省略可能) を入力します。
  4. OS として [iOS ] を選択し、プラットフォームとして Objective-C/Swift を選択します。
  5. 右下にある [ 新しいアプリの追加] というボタンをクリックします。

アプリを作成したら、App Center ポータルの [設定] ページでアプリ シークレットを取得できます。 [設定] ページの右上隅にある 3 つの垂直ドットをクリックし、[アプリ シークレット] を選択Copy app secretして取得します。

3. App Center SDK モジュールを追加する

App Center SDK for iOS は 、CocoapodsCarthageSwift Package Manager を使用してアプリに追加することも、バイナリをプロジェクトに手動で追加することもできます。

注意

App Center の 4.0.0 バージョンでは、破壊的変更が導入されました。 App Center SDK 4.0.0 以降への移行に関するセクションに従って、App Center を以前のバージョンから移行します。

3.1 Cocoapods による統合

注意

ARM64 シミュレーター (Apple Silicon Mac で実行されている Xcode から起動した場合) は CocoaPods を介してサポートされていません。他の統合方法を使用して動作することを検討してください。

  1. 次の依存関係を に追加して podfile 、App Center Analytics と App Center のクラッシュをアプリに含めます。 このアクションは、AppCenter、AppCenterAnalytics、および AppCenterCrashes というフレームワークを取り込みます。 代わりに、アプリで必要なサービスを指定できます。 各サービスには独自の subspec があり、それらはすべて AppCenter に依存します。 自動的にプルされます。

     # Use the following line to use App Center Analytics and Crashes.x
     pod 'AppCenter'
    
     # Use the following lines if you want to specify which service you want to use.
     pod 'AppCenter/Analytics'
     pod 'AppCenter/Crashes'
     pod 'AppCenter/Distribute'
    
  2. を実行 pod install して新しく定義したポッドをインストールし、プロジェクトの .xcworkspaceを開きます。

注意

の実行中に のような[!] Unable to find a specification for `AppCenter` エラーが表示された場合は、 を実行pod repo updateして Cocoapods リポジトリから最新のポッドを取得し、 を実行pod installpod installします。

アプリケーションにフレームワークを統合したので、次は SDK を開始し、App Center サービスを利用します。

3.2 カルタゴ経由の統合

依存関係を構築し、バイナリ フレームワークを提供する分散型依存関係マネージャーである Carthage バージョン 0.30 以降を使用して、Xcode プロジェクトに App Center SDK を統合する手順を次に示します。

注意

Xcode 12 では、Carthage 統合がすぐには機能しません。 動作させるには、このカルタゴの指示を参照してください

  1. 次の依存関係を に追加して Cartfile 、App Center を含めます。 これらの依存関係は、すべてのフレームワークでプルされます。 その後、アプリで使用するフレームワークのみをリンクできます。

    # Use the following line to get the latest version of App Center
    github "microsoft/appcenter-sdk-apple"
    
    # Use the following line to get the specific version of App Center
    github "microsoft/appcenter-sdk-apple" ~> X.X.X
    
  2. を実行 carthage update して、 Carthage/Checkouts フォルダーに依存関係をフェッチします。 次に、各フレームワークをビルドします。

  3. アプリケーション ターゲットの [全般設定] タブ 開きます。 AppCenter.frameworkAppCenterAnalytics.frameworkAppCenterCrashes.framework ファイルを Carthage/Build/iOS フォルダーから Xcode の Project Navigator にドラッグ アンド ドロップします。 SDK を起動するには、 AppCenter.framework が必要です。 プロジェクトに追加されていない場合、他のモジュールは機能せず、アプリはコンパイルされません。

  4. ダイアログが表示され、アプリターゲットがオンになっていることを確認します。 [完了] をクリックします。

    Note

    ビルド フェーズで を使用carthage copy-frameworksする場合は、静的フレームワークとして出荷されるため、そこに App Center SDK を追加しないでください。

アプリケーションにフレームワークを統合したので、次は SDK を開始し、App Center サービスを利用します。

3.3 Swift パッケージ マネージャーによる統合

  1. [Xcode] メニューの [ ファイル] > [Swift Packages] [パッケージ > の依存関係の追加] の順にクリックします。
  2. 表示されるダイアログで、リポジトリの URL を入力します。 https://github.com/microsoft/appcenter-sdk-apple.git
  3. [ バージョン] で、[ 次のメジャーまで ] を選択し、既定のオプションを選択します。
  4. [ パッケージ製品 ] 列で必要なモジュールを選択します。

アプリケーションにフレームワークを統合したので、次は SDK を開始し、App Center サービスを利用します。

注意

SwiftPM 経由で App Center を統合していて、アプリの拡張機能ターゲットでもそれを使用する場合は、必ず構成で指定 DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC=YES してください。 これは、モジュールを複数のターゲットにリンクする際の SwiftPM 制限を回避するために必要です。

3.4 バイナリをプロジェクトにコピーして統合する

Xcode プロジェクトにコンパイルされたバイナリを統合して、iOS アプリの App Center Analytics と App Center のクラッシュを設定する手順を次に示します。

注意

App Center SDK では、 の使用 XCframeworkがサポートされています。 XCframeworks をプロジェクトに統合する場合は、リリース ページから AppCenter-SDK-Apple-XCFramework.zip をダウンロードして解凍します。 結果のフォルダーの内容はプラットフォーム固有ではなく、モジュールごとに XCframeworks が含まれます。 これらは、以下に説明するように、通常のフレームワークと同じ方法で統合できます。

  1. zip ファイルとして提供されている App Center SDK フレームワークをダウンロードします。

  2. ファイルを解凍すると、 AppCenter-SDK-Apple という名前のフォルダーが表示されます。このフォルダーには、各プラットフォーム フォルダーの App Center サービスごとに異なるフレームワークが含まれています。 呼び出される AppCenter フレームワークは、異なるモジュール間で共有されるコードが含まれているので、プロジェクトで必要です。

  3. [省略可能]サード パーティ製ライブラリのサブディレクトリを作成します。

    • ベスト プラクティスとして、サード パーティ製ライブラリは通常、 Vendor と呼ばれるサブディレクトリにあります。 プロジェクトがライブラリのサブディレクトリで編成されていない場合は、ここで Vendor サブディレクトリを作成します。
    • Xcode プロジェクト内に Vendor というグループを作成して、ディスク上のファイル構造を模倣します。
  4. Finder で解凍した AppCenter-SDK-Apple フォルダーを開き、目的の場所にあるプロジェクトのフォルダーにフォルダーをコピーします。 フォルダーには、App Center SDK でサポートされている他のプラットフォームのサブフォルダーにフレームワークが含まれているため、不要なサブフォルダーを削除する必要がある場合があります。

  5. Xcode のプロジェクトに SDK フレームワークを追加します。

    • [プロジェクト ナビゲーター] が表示されていることを確認します (⌘+1)。
    • ここで、AppCenter.framework、AppCenterAnalytics.frameworkAppCenterCrashes.framework を Finder から (前の手順の場所にある) & Xcode のプロジェクト ナビゲーターにドラッグします。 SDK を起動するには、 AppCenter.framework が必要です。 プロジェクトに追加されていない場合、他のモジュールは機能せず、アプリはコンパイルされません。
    • ダイアログが表示され、アプリターゲットがオンになっていることを確認します。 [完了] をクリックします。

アプリケーションにフレームワークを統合したので、次は SDK を開始し、App Center サービスを利用します。

4. SDK を起動する

App Center を使用するには、使用するモジュールをオプトインします。 既定では、モジュールは起動されません。SDK の起動時に各モジュールを呼び出す必要があります。

以下の手順は、使用しているライフサイクルによって若干異なります。 Xcode 12 以降では、"Swift UI App" (Xcode 12 で既定で選択) と "UI Kit AppDelegate" の 2 つのライフサイクルのいずれかを選択できます。 拡張機能用に開発している場合は、「拡張機能の概要」 ページを参照してください。

4.1 import ステートメントを追加する

プロジェクトの AppDelegate ファイル (UI Kit AppDelegate ライフサイクルの場合) または <ProjectName>App.swift ファイル (Swift UI アプリライフサイクルの場合) を開き、次の import ステートメントを追加します。

@import AppCenter;
@import AppCenterAnalytics;
@import AppCenterCrashes;
import AppCenter
import AppCenterAnalytics
import AppCenterCrashes

4.2 メソッドを追加するstart:withServices:

UI Kit AppDelegate

デリゲート メソッドに初期化コードを didFinishLaunchingWithOptions 追加します。

[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])

Swift UI アプリのライフサイクル

App Center SDK が Swift UI で正しく動作することを確認するには、UI が読み込まれた後に初期化します。 これを実現する最も簡単な方法は、UIApplicationDelegate を使用することです。

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
          AppCenter.start(withAppSecret: "{Your App Secret}", services:[
            Crashes.self, Analytics.self, Distribute.self])
        return true
    }
}

次に、 で structを使用UIApplicationDelegateAdaptorします。

@main
struct YourAppName: App {

  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Catalyst アプリケーションがある場合は、iOS と macOS の両方のアプリ シークレットを同時に渡すことができます。

AppCenter.start(withAppSecret:"ios={Your iOS App Secret};macos={Your macOS App Secret}", services: [Analytics.self, Crashes.self])

警告

ソース コードにアプリ シークレットを埋め込むことはお勧めしません。

App Center サービスを個別に開始する必要がある場合は、次の手順を実行する必要があります。

  1. アプリ シークレットを構成または開始します。
  2. コードを複数回呼び出すことができる場合は、App Center が既に構成されているかどうかをチェックします。
  3. アプリ シークレットを使用せずに、必要なサービスを開始します。
[MSACAppCenter configureWithAppSecret:@"{Your App Secret}"];
if ([MSACAppCenter isConfigured]) {
   [MSACAppCenter startService:[MSACAnalytics class]];
   [MSACAppCenter startService:[MSACCrashes class]];
}
AppCenter.configure(withAppSecret: "{Your App Secret}")
if AppCenter.isConfigured {
    AppCenter.startService(Analytics.self)
    AppCenter.startService(Crashes.self)
}

4.3 プレースホルダーをアプリ シークレットに置き換える

テキストは、必ずアプリケーションの実際の値に置き換えてください {Your App Secret} 。 アプリ シークレットは、App Center ポータルの [はじめに] ページまたは [設定] ページにあります。

[はじめに] ページには、上記のコード サンプルとアプリ シークレットが含まれています。サンプル全体をコピーして貼り付けることができます。

上記の例では、 (start(withAppSecret:services:)Swift の場合) メソッドをstart:withServices使用し、App Center Analytics と App Center のクラッシュの両方を含める方法を示しています。

2 つのサービスのいずれかを使用しない場合は、上記のメソッド呼び出しから対応するパラメーターを削除します。

start メソッドで各モジュールをパラメーターとして明示的に指定しない限り、その App Center サービスを使用することはできません。 また、 start:withServices (start(withAppSecret:services:) Swift の場合) API は、アプリのライフサイクルで 1 回だけ使用できます。他のすべての呼び出しでは、コンソールに警告が記録され、最初の呼び出しに含まれるモジュールのみが使用できるようになります。

たとえば、 - App Center Analytics にオンボードする場合は、次のように (start(withAppSecret:services:) swift の場合) API 呼び出しを変更start:withServicesする必要があります。

[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self])

これで、SDK によって自動的に収集される分析データとクラッシュ データをポータルで視覚化するように設定されています。

両方のサービスのより高度な機能をカスタマイズして使用する方法については、 App Center Analytics のドキュメントApp Center のクラッシュに 関するドキュメントを参照してください。

アプリ内更新プログラムの使用を開始する方法については、 App Center の配布に関するドキュメントを参照してください。