次の方法で共有


iOS 拡張機能の始め方

重要

Visual Studio App Center は、2026 年 6 月 30 日まで引き続きサポートされる分析機能と診断機能を除き、2025 年 3 月 31 日に廃止されました。 詳細を参照してください。

アプリケーション拡張機能では、クラッシュ レポートのみがサポートされます。

App Center SDK をコンテナー アプリに追加する方法については、 App Center iOS の概要に関するドキュメントを参照してください。

まず、アプリ拡張機能に対して App Center Crashes を利用するために、App Center iOS SDK の設定を始めましょう。

1.前提条件

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

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

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

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

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

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

別の iOS プロジェクトから既存のアプリ シークレットを使用すると、副作用があります。 App Center では、同じ App Center アプリケーション上のプロジェクトによるフィルター処理はサポートされていません。 たとえば、特定のバージョンのクラッシュを一覧表示すると、このバージョンの両方のプロジェクトのすべてのクラッシュが区別されずに一覧表示されます。 混乱を招く可能性があります。

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

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

App Center SDK は、 CocoapodsCarthage 、またはプロジェクトにバイナリを手動で追加することで、アプリに統合できます。

3.1 Cocoapods による統合

  1. 次の依存関係を podfile に追加して、App Center Crashes 機能をアプリに組み込みます。 これにより、AppCenter と AppCenterCrashes というフレームワークが取り込まれます。

     pod 'AppCenter/Crashes'
    
  2. pod installを実行して、新しく定義されたポッドをインストールし、プロジェクトの.xcworkspaceを開きます。

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

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

3.2 Carthage による統合

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

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

    # 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.framework ファイルと AppCenterCrashes.framework ファイルを Carthage/Build/ フォルダーから Xcode のプロジェクト ナビゲーターにドラッグ アンド ドロップします。 SDK を起動するには 、AppCenter.framework が必要です。 プロジェクトに追加されていない場合、他のモジュールは機能せず、アプリはコンパイルされません。

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

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

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

3.3 Swift Package Manager による統合

  1. Xcode メニューから、[ ファイル] > [Swift パッケージ] > [パッケージ依存関係の追加] をクリックします。
  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 プロジェクトにコンパイル済みバイナリを統合して、アプリ拡張機能の 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)。
    • ここで、Finder (前の手順の場所) から Xcode のプロジェクト ナビゲーターに AppCenter.frameworkAppCenterCrashes.framework をドラッグ アンド ドロップします。 SDK を起動するには 、AppCenter.framework が必要です。 プロジェクトに追加されていない場合、他のモジュールは機能せず、アプリ拡張機能はコンパイルされません。
    • ダイアログが表示され、アプリ拡張機能のターゲットがオンになっていることを確認します。 [完了] をクリックします。

アプリ拡張機能にフレームワークを統合したので、次は SDK を起動し、App Center サービスを利用します。

4. SDK を起動する

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

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

アプリ拡張機能のエントリ ポイントを含むファイルに次の行を挿入します。 たとえば、Today 拡張子のメイン ViewController ファイル内などです。

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

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

アプリ拡張機能のエントリ ポイントに次の行を挿入します。 たとえば、Today 拡張子のメイン ViewController ファイルの viewDidLoad メソッド内などです。

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

現時点では、アプリケーション拡張機能ではクラッシュ レポートのみがサポートされています。

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

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

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

これで、SDKが自動的に収集するクラッシュデータをポータルで視覚化する準備が整いました。おめでとうございます。

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