macOS SDK のトラブルシューティング
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
セットアップ中の問題
- コンソールで、"App Center SDK が正常に構成されました" というメッセージが表示された Assert ログを探します。 これにより、SDK が正常に構成されていることを確認します。
- Cocoapods を使用して macOS アプリに App Center を統合し、 というメッセージでエラーが発生した場合は
CocoaPods - Unable to find a specification for AppCenter
、 を実行pod repo update
してローカル Cocoapods リポジトリを更新してから、もう一度実行pod install
します。 - SDK バイナリを手動で統合する場合は、プロジェクトでモジュールが有効になっていることを確認します。
分析データはポータルに表示されません。
SDK モジュールが正しく統合されていることを確認します。
メソッド呼び出しと共に正しいアプリ シークレットが含まれていることを
start:withServices:
確認します。 正確なstart:withServices:
コードをコピーするには、ポータルでアプリを開き、はじめに ページに移動します。バックエンドに送信されたログを表示する場合は、アプリケーションでログ レベルを Verbose に変更すると、SDK によって コンソールにログが出力されます。 SDK の開始前に次の呼び出しを挿入します。
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
ログに [App Center SDK が正常に構成されました] が (INFO ログ レベルで) 表示されていることを確認し、HTTPS 要求ログが表示された場合はチェックします。
デバイスがオンラインで、アプリがインターネットにアクセスできることを確認します。
注意
アプリがアプリ サンドボックスを使用している場合は、アプリがインターネットにアクセスできるように、受信 (サーバー) 接続と送信 (クライアント) 接続を許可する機能を設定する必要があります。 Xcode 9 では既定でアプリ サンドボックスが有効になりますが、着信接続と送信接続の機能を明示的に設定する必要があります。
プロジェクト ナビゲーターでプロジェクトを選択し、[ 機能 ] タブを選択し、アプリでサンドボックスを使用している場合は、受信接続と送信接続の機能を追加します。
ログがポータルに表示されるまでに数分かかる場合があります。 その場合はしばらく待ちます。
App Center バックエンドがデータを受信したかどうかをチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、イベントが表示されます。
クラッシュはポータルに表示されません。
SDK モジュールが正しく統合されていることを確認します。
メソッド呼び出しと共に正しいアプリ シークレットが含まれていることを
start:withServices:
確認します。 正確なstart:withServices:
コードをコピーするには、ポータルでアプリを開き、はじめに ページに移動します。クラッシュ後にアプリを再起動します。 App Center のクラッシュ は、アプリの再起動後にのみクラッシュ ログを転送します。 また、デバッガーにアタッチされている場合、SDK はクラッシュ ログを転送しません。 アプリをクラッシュさせたときにデバッガーがアタッチされていないことを確認します。
バックエンドに送信されたログを表示する場合は、アプリケーションでログ レベルを Verbose に変更すると、SDK によって コンソールにログが出力されます。 SDK の開始前に次の呼び出しを挿入します。
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
ログに [App Center SDK が正常に構成されました] が (INFO ログ レベルで) 表示されていることを確認し、HTTPS 要求ログが表示された場合はチェックします。
クラッシュ レポート機能を提供する他のライブラリは使用しないでください。 アプリに統合できるクラッシュ レポート SDK は 1 つだけです。
デバイスがオンラインで、アプリがインターネットにアクセスできることを確認します。
注意
アプリがアプリ サンドボックスを使用している場合は、アプリがインターネットにアクセスできるように、受信 (サーバー) 接続と送信 (クライアント) 接続を許可する機能を設定する必要があります。 Xcode 9 では既定でアプリ サンドボックスが有効になりますが、着信接続と送信接続の機能を明示的に設定する必要があります。
プロジェクト ナビゲーターでプロジェクトを選択し、[ 機能 ] タブを選択し、アプリでサンドボックスを使用している場合は、受信接続と送信接続を有効にします。
場合によっては、ログがポータルに表示されるまで数分かかる場合があります。 その場合はしばらく待ちます。
SDK が次のアプリの起動時にクラッシュを検出した場合にチェックする場合は、API を呼び出して、アプリが最後のセッションでクラッシュしたかどうかをチェックし、アラートを表示できます。 または、クラッシュ
didSucceedSendingErrorReport
コールバックを拡張して、サーバーに正常に送信されたかどうかを確認することもできます。App Center バックエンドがクラッシュを受け取ったかどうかをチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、クラッシュが表示されます。
App Center シークレット値を保護する
app_secret
はアプリの識別子であり、トラフィックがどのアプリに適用されるかを知る必要があり、既存のデータを取得または編集するために使用することはできません。 app_secret
が公開されている場合、最も大きなリスクは不適切なデータをアプリに送信することですが、データのセキュリティには影響しません。
機密データを取得するには、クライアント側で生成されるアプリ/ユーザー トークンを指定する必要があります。 クライアント側のデータを完全にセキュリティで保護する方法はありません。
環境変数を使用してアプリ シークレットをコードに挿入することで、アプリのセキュリティを向上させることができます。 そうすることで、シークレットはコードに表示されません。