macOS 拡張機能の概要

重要

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

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

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

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

App Center のクラッシュを使用するようにアプリ拡張機能で App Center macOS SDK を設定し始めましょう。

1.前提条件

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

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

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

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

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

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

注意

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

注意

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

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

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

3.1 Cocoapods による統合

  1. 次の依存関係を に podfile 追加して、App Center のクラッシュをアプリに含めます。 これにより、AppCenter と AppCenterCrashes というフレームワークが取り込まれます。

     pod 'AppCenter/Crashes'
    
  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 を統合する手順を次に示します。

  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 の 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 プロジェクトでコンパイル済みバイナリを統合して、アプリ拡張機能の 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 から AppCenter.frameworkAppCenterCrashes.framework を Xcode の Project Navigator にドラッグ アンド ドロップします。 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 拡張子の viewDidLoad メイン ViewController ファイルの メソッド内などです。

[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 のクラッシュ に関するドキュメントを参照してください。