anz blog

UniversalLinksがストア版だと動かなかった

2019-03-27 #Swift

ざっくりまとめ。

  • AppStoreから落としてきたやつだとUnivesalLinksが動かない
    • Developだと問題なく動いている
  • production.entitlementsが更新されていなかった
  • ちゃんと確認しましょう!

です。

環境

  • Xcode v10.1

問題

ようやく(?) Universal Links に対応したアプデをかけよう!っていう話になって
実装してリリースしたのだけれど、App Store から落としてきたやつだとどうもせ以上に動作していないということが発覚。
動作していないとは、該当Hostにあたるリンクを踏んでも普通にSafariでページ遷移しちゃうし、
そのページをひっぱっても上の方に アプリで開く みたいのが出ないっていう感じでした。

調査

開発中はもちろん動作することを確認していたので、再度developでやってみるとやっぱりちゃんと動作する。。
なんだろう?? Team ID とかでも間違ってるとか?なんとかいろいろ見直しても間違いがない。

一旦無効にして再度有効にしたら〜〜とかおもって、無効にしたときにたまたま diff みたら、、
develop.entitlements には差分としてファイルが表示されているけど、
develop があるということはもちろんリリース用のもあるということなのだけれど、
そっちは差分ファイルとして表示されない。。

ということで、リリース用の production.entitlements を見てみると、
見事に Universal Links の設定が書かれていない 😇

対応

対応は単純で、production.entitlements にも Universal Links の設置を追加するだけです!

なぜこのようなことが起きてしまったのか 🤔

Universal Links を有効にするときに Xcode > Targets > Capabilities で Associated Domains を有効にしてそっちに該当 Host を追記していくのですが、
この作業をしたときに development.entitlements の方は自動で設定したものが追記されていったのだけれど、production.entitlements の方には設定が反映がされていないようでした。

まさかそんなことになっているとは思っていなかったので(もちろん両方に反映されているんだろうと)見落としたっていうところです。

Bitrise で QA 用として AdHoc 版も出しているので、そちらで気づくべきなのですけれど、、、
なぜか AdHoc ビルドのときも develop.entitlements を参照するような設定になっていて、こっちでも気づけなかったのが水際防衛失敗に繋がってしまいました。

ということで、
entitlements 系の設定をいじるような何かをしたときは、ちゃんと全部確認しましょう!!!💪

ちゃんと設定で configuration ごとにどの entitlements を参照するべきなのか指定しているので、
Xcode のほうも気をきかせて全部同期とって更新してほしいですけどね!!(不満(笑)