4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

github.ioにapple-app-site-associationを公開してUniversalLinksを検証する

Last updated at Posted at 2023-03-13

はじめに

iOS14以降でUniversal Linksの実装を行う場合、Apple CDNがapple-app-site-association1 (以下AASA)を参照できるようにファイルを公開しておく必要があります。
しかし、業務のステージング環境ではIP制限などによって外部から参照出来ない状況となっていることも多いですよね。

Universal Linksの起動確認のみを行いたい場合にわざわざステージング環境の外部公開の手続き・作業を行うのもコストが掛かりすぎるため、GitHub PagesでAASAを公開してUniversal Linksの起動確認を行ってみました。
その手順をまとめておきます。

GitHub Pagesにapple-app-site-association(AASA)を配置する

GitHub Pagesの作成

まずは下記を参考にGitHub Pagesサイトを作成し、{username}.github.ioのドメインを取得しましょう。

疎通確認のためにリポジトリの最上位のディレクトリに index.html を置いておき、 {username}.github.io でアクセス出来るか確認してみましょう。

続いて、.well-known ディレクトリを作成し、AASAを配置します。
AASAは下記のようなJSONフォーマットで配置します。

{
  "applinks": {
    "details": [
      {
        "appIDs": [ 
          "ABCDEFGHIJ.jp.co.myapp"
        ],
        "components": [
          {
            "/": "/*",
            "comment": "Any comments"
          }
        ]
      }
    ]
  }
}

AASAに最低限記載する項目

appIDs

        "appIDs": [ 
          "ABCDEFGHIJ.jp.co.myapp"
        ],

appIDsにはDevelopment team ID2とBundle identifierを連結したAppIDを記載します。
検証AppであればEnterpriseのアカウントのTeam IDである必要があります。

components

        "components": [
          {
            "/": "/*",
            "comment": "Any comments"
          }
        ]

Appを起動させたいパスを記載します。
{username}.github.io (ドメインそのまま)で起動させたい場合には /* を許可するよう指定します。

.nojekyll を忘れずに

ただし、上記のファイルのみだと .well-known/ 配下のファイルが 404 となってしまいAASAが参照できません。

リポジトリに最上位に .nojekyll を配置しておく必要がありました。

最終的にこのようにファイルを配置しておきます。

スクリーンショット 2023-03-13 20.09.34.png
スクリーンショット 2023-03-13 20.09.43.png

なお、この状態にしてすぐにドメインへアクセスしてもUniversal Linksは発火しません。
ここまでの作業を行った上で、数十分〜数時間程度待つ必要があります。
夜にやっておいて翌日に確認するのが確実かもしれませんね。

AppのEntitlementの修正

あとはiOSプロジェクトのEntitlementに指定したいドメインを記載します。
指定するドメインに ?mode=developerを付与することにより、開発用プロファイルでビルドしたAppでもUnversal Linksを使用することが出来るようになります。

  <key>com.apple.developer.associated-domains</key>
  <array>
    <string>applinks:username.github.io?mode=developer</string>
  </array>

参考にしたサイトはこちら

あとがき

サーバーサイドの環境が自由に変更出来ない場合でも、github.ioのみで無事Universal Linksの起動確認が出来ました。
反映待ちの時間が不定などちょっと不便さがありますが、急ぎ出ない場合などはこの方法でも十分かと思います。

  1. https://developer.apple.com/documentation/xcode/supporting-associated-domains

  2. https://developer.apple.com/jp/help/account/manage-your-team/locate-your-team-id/

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?