View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

テクニカルドキュメント

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<Root>内の41個のシンボルのうち1番目のシンボル

最新ドキュメント

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち2番目のシンボル

TN3155:ユニバーサルリンクのデバッグ

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち3番目のシンボル

TN3138:App Storeレシートの署名証明書の変更

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち4番目のシンボル

TN3154:SwiftUI Navigation Split Viewの採用

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち5番目のシンボル

TN3153:iOS 17、macOS 14、watchOS 10のEventKit API変更の採用

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち6番目のシンボル

TN3152:最新のカレンダーアクセスレベルへの移行

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち7番目のシンボル

TN3151:適切なネットワークAPIの選択

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち8番目のシンボル

TN3149:連絡先の変更履歴イベントのフェッチ

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち9番目のシンボル

TN3150:データレスファイルのための準備

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち10番目のシンボル

TN3117:Appleシリコンでのアーキテクチャのビルドエラーの解決

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち11番目のシンボル

TN3147:最新の公証ツールへの移行

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち12番目のシンボル

TN3145:HDRビデオのメタデータ

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち13番目のシンボル

TN3133:Metalレンダラのパッケージ化

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち14番目のシンボル

TN3137:MacのキーチェーンAPIと実装

目的のシンボルに移動するには、上矢印、下矢印、左矢印、または右矢印キーを押します
<root>内の41個のシンボルのうち15番目のシンボル

TN3136:AVAudioConverter - サンプルレート変換の実行

41個が見つかりました。Tabキーを使って戻ることもできます。

ナビゲータが準備できました
記事

TN3155:ユニバーサルリンクのデバッグ

ユニバーサルリンクがアプリではなくSafariで開かれる原因を調べる方法を紹介します。

概要ページ内リンク

ユニバーサルリンクでは、applinks(関連ドメインサービスの1つ)を使用して、SafariまたはWebサイトを経由することなく、アプリ内のコンテンツに直接リンクすることができます。アプリがインストールされている場合は、アプリでユニバーサルリンクが開きます。インストールされていない場合は、デフォルトのWebブラウザでリンクが開き、サイトで残りの処理を行うことができます。ユニバーサルリンクおよびコードでユニバーサルリンクをサポートする方法について十分に把握していない場合は、「関連ドメインをサポートする」および「コンテンツへのリンクをアプリとWebサイトに許可する」を参照してください。

本ドキュメントでは、以下の方法について概要を説明します。

  • ユニバーサルリンクをテストする

  • 正しいapplinksドメインを選択する

  • サイトでユニバーサルリンクを使用する

  • apple-app-site-association(AASA)ファイルを検証する

  • sysdiagnoseを使用してデバッグする

  • Appleのコンテンツ配信ネットワーク(CDN)を理解する

ユニバーサルリンクの動作をテストするページ内リンク

ユニバーサルリンクの動作をテストするには、リンクをメモアプリに貼り付けて、リンクを長押しするか(iOSの場合)、Controlキーを押しながらクリックして(macOSの場合)、リンク先への移動方法に関するオプションを確認します。ユニバーサルリンクが正しく設定されていれば、アプリで開くオプションとSafariで開くオプションの両方が表示されます。ここで選択したオプションが、今後このドメインからユニバーサルリンクのリンク先に移動する際のデフォルトのデバイス動作となります。このデフォルトの選択を変更するには、同じ手順を繰り返して別のオプションを選択します。

注

Safariのアドレスバーに直接URLを入力しても、アプリが開くことはありません。Safariでは、この操作はダイレクトナビゲーションとして処理されます。ユーザーがドメインに直接移動してからそのドメインにとどまっている間は、サイトにはアプリを開くためのバナーが表示されます。

iOSの場合、次の手順に従って、「デベロッパ」の設定にある関連ドメイン診断テストを使用して、ユニバーサルリンクをさらにテストすることができます。

  1. 「設定」で「デベロッパモード」をオンにします。ヘルプが必要な場合は、「デバイスでデベロッパモードを有効にする」を参照してください。

  2. 「設定」>「デベロッパ」と選択し、「ユニバーサルリンク」セクションまでスクロールし、「関連ドメインの開発」をオンにします。

  3. 「診断」を開き、完全なURLを入力します。インストールされているアプリに対してこのリンクが有効であるかどうかのフィードバックが表示されます。

ユニバーサルリンクが無効である場合、applinksが正しく設定されていない可能性があります。

applinksの設定とルールを理解するページ内リンク

Xcodeの「Signing and Capabilities(署名と機能)」タブを使用して、アプリにapplinksを含む「Associated Domains(関連ドメイン)」機能があることを確認できます。次の形式を使用します。

applinks:<fully qualified domain>

よくある問題の原因として、AASAファイルが適切な場所にホストされていないドメインがapplinksで使用されている場合があります。

ドメインとAASAファイルのパスが一致していることを確認してください。ルートドメインと、ワイルドカードを使用するすべてのサブドメインを一致させるには、AASAファイルを次の場所にホストする必要があります。

https://example.com/.well-known/apple-app-site-association

これは、ルートドメインapplinks:example.comと、ワイルドカードを使用したapplinks:*.example.comに一致するサブドメインにのみ有効です。一方、applinks:www.example.comまたはapplinks:foo.example.comなどの特定のサブドメインは有効ではありません。

特定のサブドメインを一致させるには、AASAファイルを次の場所にホストする必要があります。

https://www.example.com/.well-known/apple-app-site-association

これは、applinks:www.example.comにのみ有効です。applinks内の各サブドメインには、それぞれ一致する固有のAASAファイルパスが必要です。

サイトでユニバーサルリンクを使用するページ内リンク

すでにSafariで閲覧している場合にユニバーサルリンクを使用してアプリを開くには、別のサブドメインを使用します。これが必要になる理由として、アンケートに回答する場合やサインインを実行する場合などがあります。ユニバーサルリンクのドメインが前のナビゲーションと同じである場合、Safariでは、ユーザーがブラウザでのナビゲーションを継続する意向であると推測します。詳しくは、「コンテンツへのリンクをアプリとWebサイトに許可する」を確認してください。

サブドメインを使用する場合の例として、applinks:example.comをルートドメインに持つアプリと次を含むAASAについて考えます。

 "components" : [
 {
 "/" : "/login/*",
 "comment" : "/login/で始まるパスを持つすべてのURLが一致します。"
 }]

Safariでユーザーがサイトを閲覧中に、https://example.com/loginへのリンクが貼られたログインボタンを選択した場合、リンクはアプリで開きません。パスが上記のコンポーネントと一致していても、ドメインが変更されていないため、Safariはブラウザでのナビゲーションを続行します。

これを回避するには、次の手順を実行します。

  • Xcodeの「Signing and Capabilities(署名と機能)」タブで、applinks:foo.example.comなどのサブドメインを関連ドメインに追加します。

  • 次の場所にAASAをホストします。

https://foo.example.com/.well-known/apple-app-site-association
  • ログインボタンに次のリンクを設定します。

https://foo.example.com/login

別のサブドメインを使用することで、リンクがSafariでナビゲーションとして処理されず、アプリで開くようにすることができます。

AASAをホストして検証するページ内リンク

それでもユニバーサルリンクがアプリで開かない場合は、HTTPレスポンスヘッダとAASAコンテンツを詳しく確認します。これを行うには、ターミナルで以下を使用して、HTTPレスポンスヘッダとAASA JSONコンテンツを出力します。

% curl -v https://{domain}/.well-known/apple-app-site-association

301または302 HTTPレスポンスステータスコードが表示されたら、サイトはHTTPリダイレクトを実行しているということですが、AASAファイルをホストしている場合、HTTPリダイレクトはサポートされません。リダイレクトせずにファイルに直接到達できる必要があります。

ルートドメインにAASAをホストし、サブドメインへのリダイレクトを行う代わりに、applinksに含まれる各ドメインとサブドメインにAASAをホストします。例えば、applinks:www.example.comというサブドメインとapplinks:*.example.comというワイルドカードがある場合、次の場所にサブドメイン用のAASAファイルを1つホストし、

https://www.example.com/.well-known/apple-app-site-association

次の場所にワイルドカード用のAASAファイルを1つホストします。

https://example.com/.well-known/apple-app-site-association

注

別のアプリからユニバーサルリンクを開く場合は、リダイレクトは可能ですが、推奨されていません。ユーザーがタップしたリンクそのものがユニバーサルリンクではなく、ユニバーサルリンクにリダイレクトされる場合、ユーザーはSafari経由でアプリに誘導されます。

403または404 HTTPエラーが表示された場合、サイトがアクセスを拒否しています。一般的に、この事象は、AASAファイルのパスがすべてのIPアドレスからアクセスできるかたちでは公開されていないか、その他の何らかの理由でサイトがブロックされている場合に発生します。Webサイトの設定で、地理的位置やIPアドレスを問わず、.well-knownディレクトリにあるAASAファイルへの直接アクセスが許可されていることを確認してください。特定のIPアドレスと範囲は、保証できないために公開されません。

AASAファイルの形式を確認します。「関連ドメインをサポートする」に示されているようなappIDs配列とcomponents配列、または文字列型のappIDフィールドと配列型のpathsフィールド(古い形式と一致)が含まれている必要があります。これらの形式は一致させる必要があります。混在していると、ユニバーサルリンクは機能しません。推奨される形式は次の通りです。

 "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ], 
 "components": [ { 
    "/": "/test/*", 
    "comment": "/test/で始まるすべてのURLが一致します。" 
    },
    { 
    "/": "/path/1/*", 
    "exclude": true,
    "comment": "/path/1/で始まるすべてのURLが一致し、そのURLをユニバーサルリンクとして開かないようにシステムに命令します。" 
    }]

古い形式は次の通りです。

"appID": "ABCDE12345.com.example.app",
 "paths": [ "/test/*", NOT "/path/1/*"]

AASAが有効な形式であり、パターンが正しく一致することを確認するには、Macに組み込まれているswcutilツールを使用します。ターミナルでsudo swcutilを実行すると、swcutil dlやswcutil verifyなどの使用可能なコマンドが表示されます。

ターミナルでこれらのコマンドを使用するには、次の手順を実行します。

  • sudo swcutil dl -d <domain>を実行して、AASA JSONを正常にダウンロードできることを確認します。

  • sudo swcutil verify -d <domain> -j <path-to-JSON> [-u <URL>]を実行して、ダウンロードした.json AASAファイルの内容を確認します。-dを使用してドメインが一致していることを確認し、-uを使用してURLパスパターンがJSONと一致していることを確認します。両方が一致していれば、確認メッセージが表示されます。

例えば、applinks:example.comを含むアプリと上記のAASAにswcutil verifyを使用すると、次のようになります。ここで、「s」はサービス、「a」はアプリID、「d」はドメインを表しています。

% sudo swcutil verify -d example.com -j ./example.json -u https://example.com/test
{ s = applinks, a = ABCD123.com.example.app, d = example.com }:
Pattern "https://example.com/test" matched.

AASAにパターン/testが含まれているため、JSONのパターンは一致し、検証に成功します。パス/path/1については、AASAで除外するように設定されているため、除外を確認する次のメッセージが表示されます。

Pattern "https://example.com/path/1" blocked match.

除外されていないURLパスにこのメッセージが表示された場合は、AASAが一致していません。詳しくは、「sysdiagnoseを使用してデバッグする」のセクションを参照してください。

sysdiagnoseを使用してデバッグするページ内リンク

「AASAをホストして検証する」のセクションの手順でswcutilからの出力に無効なユニバーサルリンクが表示された場合は、「Profiles and Logs(プロファイルとログ)」で各プラットフォーム用にリンクされている手順に従い、アプリがインストールされたデバイスでsysdiagnoseを取得します。sysdiagnoseを開いてから、swcutil_show.txtファイルを開きます。App IDを検索して、applinksの情報(次の例を参照)を確認します。

Service:              applinks
App ID:               1234abcd.com.example
Domain:               example.com
User Approval:        unspecified
Site/Fmwk Approval:   approved
Last Checked:         2023-08-24 10:09:00 +0000
Next Check:           2023-08-18 21:00:19 +0000

User Approval:ユーザーがリンクをアプリまたはSafariのどちらで開くことにしたかを示しています。詳しくは、「ユニバーサルリンクの動作をテストする」を参照してください。

Site/Fmwk Approval:Appleが管理するコンテンツ配信ネットワーク(CDN)でユニバーサルリンクが承認され、パターンが一致したかどうかを示しています。「approved」である場合、ユニバーサルリンクは正常に機能しています。

「unspecified」または「denied」である場合、すべてのIPアドレスへのフルアクセスが許可されていること、またドメインが関連ドメインに含まれていることを確認してください。詳しくは、「AppleのCDNを理解する」を確認してください。

Last Check/Next Check:AppleのCDNがサイトにAASAを要求した最後の日時と次にAASAを確認する日時を示しています。

AppleのCDNを理解するページ内リンク

アプリがデバイスにインストールされると、AppleのCDNはAASAファイルを要求します。CDNがファイルをキャッシュできるように、ファイルをホストするドメインは、すべてのIPアドレスと範囲で利用でき、リダイレクトされず、かつアクセスポリシーによってブロックされていない必要があります。

テストの際に、Xcodeでパブリックなインターネットから到達できないサーバを使用してアプリを実行する場合、またはAppleのCDNがキャッシュできる速度よりも速い速度で変更をテストする場合は、「関連するドメインエンタイトルメント」に説明されている別のデベロッパモードを使用してください。こうすることで、AppleのCDNをバイパスし、AASAをドメインから直接取得できます。

重要

iOS 14以降では、AppleのCDNがAASAファイルを取得してキャッシュします。アプリがインストールされると、デバイスはただちにCDNからファイルをダウンロードします。アプリのインストール後、デバイスはおよそ1週間に一度アップデートを確認します。AASAファイルの新しいバージョンをダウンロードするには、アプリを再インストールします。CDNを直接無効にすることはできません。

改訂履歴ページ内リンク

  • 2023-09-05 初版発行。

関連項目ページ内リンク

最新ドキュメントページ内リンク

TN3138:App Storeレシートの署名証明書の変更
アプリのローカルレシート検証が、SHA-256アルゴリズムの使用を義務付ける中間証明書に対応していることを確認しましょう。
TN3154:SwiftUI Navigation Split Viewの採用
Navigation Split Viewを使用すると、旧バージョンのOSとの互換性を維持しながら、SwiftUIアプリで2列や3列のナビゲーションを実現できます。
TN3153:iOS 17、macOS 14、watchOS 10のEventKit API変更の採用
EventKit APIの最新の変更に合わせて既存のアプリをテストしましょう。
TN3152:最新のカレンダーアクセスレベルへの移行
新しいカレンダーアクセスレベルに合わせてアプリをアップデートするためのガイドラインを確認しましょう。
TN3151:適切なネットワークAPIの選択
最適なネットワークAPIを選ぶ方法を確認しましょう。
TN3149:連絡先の変更履歴イベントのフェッチ
連絡先データベースに加えられた最近の変更をフェッチして処理する方法を確認しましょう。
TN3150:データレスファイルのための準備
データレスファイルについて理解し、システムがデータレスファイルを実体化する際のパフォーマンスへの影響を最小限に抑える方法を確認しましょう。
TN3117:Appleシリコンでのアーキテクチャのビルドエラーの解決
アプリのアーキテクチャのビルド設定をアップデートして、AppleシリコンにmacOS、iOS、watchOS、およびtvOSアプリをビルドできるようにしましょう。
TN3147:最新の公証ツールへの移行
公証ワークフローを非推奨のaltoolからnotarytoolに移行しましょう。
TN3145:HDRビデオのメタデータ
Dolby Vision™(ドルビービジョン)プロファイル8.4の再生での「Ambient Viewing Environment」メタデータの使用方法と要件について紹介します。
TN3133:Metalレンダラのパッケージ化
SwiftパッケージでMetalレンダラを配信しましょう。
TN3137:MacのキーチェーンAPIと実装
macOSのキーチェーンが、その他のAppleプラットフォームのキーチェーンとどのように違うのかについて説明します。
TN3136:AVAudioConverter - サンプルレート変換の実行
AVAudioConverterを使って、PCMオーディオバッファ間のサンプルレート変換を行いましょう。
TN3135:watchOSでの低レベルネットワークの使用
watchOSでサポートされている、低レベルネットワークのユースケースについて説明します。
TN3128:通話中のFaceTimeを必要とせずにSharePlayを開始する方法
通話中のFaceTimeを必要とせずに、共有シートまたはグループアクティビティ共有コントローラを使用して、アプリから直接SharePlayを開始する方法を確認しましょう。
TN3134:Network Extensionプロバイダの導入
Network Extensionプロバイダを導入する際のプラットフォーム、パッケージ化、OSバージョン、デバイス構成について確認しましょう。
TN3132:iOS 16のEventKitとEventKitUIの変更点
iOS 16のEventKitとEventKitUI APIの変更点に関してアプリをテストしましょう。
TN3130:macOS Ventura 13のEventKitの変更点
macOS Ventura 13のEventKit APIの変更点に関してアプリをテストしましょう。
TN3129:Xcode Cloudのヘルパツールやその他のビルド環境に起因するビルド時のエラーの解決
誤った設定のビルド環境でヘルパツールを実行することで起こる、Xcode Cloudのビルドエラーのよくある原因を確認しましょう。
TN3125:コード署名の仕組み:プロビジョニングプロファイル
プロビジョニングプロファイルを使用して、サードパーティのコードをAppleプラットフォーム上で実行する方法を説明します。
TN3126:コード署名の仕組み:ハッシュ
コード署名に含まれるハッシュが、コード実行ページ、リソース、メタデータの改ざんをどのように防いでいるのかを説明します。
TN3127:コード署名の仕組み:要件
コード署名要件を使用して、コードのアイデンティティをmacOSが定義する方法について説明します。
TN3122:App Storeを使用したレシート検証での0以外エラーコード失敗の理由
App Storeを使用したレシートの検証に失敗する原因となることが多い設定について確認しましょう。
TN3113:匿名リスナーを使用したXPCコードのテストとデバッグ
匿名XPCリスナーを使用して、XPCのテストとデバッグを簡略化しましょう。
TN3121:AVCaptureVideoDataOutputのピクセル形式の選択
アプリに最適な出力ピクセル形式を選択する方法を確認しましょう。
TN3123:ストーリーボードのリファクタリング
1つのストーリーボードを複数のストーリーボードにリファクタリングする戦略とテクニックについて説明します。
TN3120:Network Extensionパケットトンネルプロバイダに関して想定されるユースケース
Network Extensionパケットトンネルプロバイダに関して想定されるユースケースとサポートされていないユースケースについて説明します。
TN3106:UINavigationBarの外観のカスタマイズ
UINavigationBarAppearanceを採用して、iOS 13以降でナビゲーションバーの背景色に一貫性を持たせましょう。
TN3105:UIKitステータスバーのスタイルのカスタマイズ
アプリのユーザーインターフェイスに調和するようにデバイスのステータスバーのスタイルを設定しましょう。
TN3118:アプリの起動画面のデバッグ
アプリの起動画面が表示されない理由や更新されない理由を理解しましょう。
TN3107:「Appleでサインイン」レスポンスエラーの解決
「Appleでサインイン」クライアント、またはそのサーバインフラストラクチャが受信したエラーを診断し、一般的なエラーコードの根本的な原因を究明して、考えられる解決策を検討します。
TN3115:Bluetoothの状態復元機能によるアプリの再起動ルール
Bluetoothの状態復元機能によってiOSアプリが再起動される条件について説明します。
TN3111:iOS Wi-Fi APIの概要
iOSで利用可能な各種Wi-Fi APIと想定されるユースケースを確認しましょう。
TN3110:一般的なXcodeアーカイブの問題の解決
一般的なXcodeアーカイブの問題の原因となることが多い設定について確認しましょう。
TN3109:アーカイブに関してよくある問題の解決
アプリのアーカイブ中に発生するよくある問題に対処しましょう。
TN3108:Swiftコードのインターフェイスの表示
Swift実装ファイルのインターフェイスファイルへの移動方法について説明します。
TN3104:Apple ProResでの録画
AVCaptureSessionを構成して、Apple ProResでビデオを取り込みましょう。
TN3103:Web上のApple Payのトラブルシューティングガイド
Web上のApple Payの導入に関するトラブルシューティングガイド。
TN3102:アプリでのHTTP/3の使用
iOS 15で新しいHTTP/3へのサポートを始めましょう。
現在のページは「TN3155:ユニバーサルリンクのデバッグ」です。

Developer Footer

  • 日本語ドキュメント
  • テクニカルドキュメント
  • TN3155:ユニバーサルリンクのデバッグ
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン