🐾

AppDistributionで配信すると、プッシュ通知を受け取れない問題

2023/01/08に公開

現象

開発版アプリをFirebaseのAppDistributionで配信すると、プッシュ通知を受け取ることができない。(Xcodeから直インストールした場合は、受け取れていました)

原因

配信したアプリが開発版でなく、製品版のAPNs証明書を参照していた。

詳細

Distribute Appするときに、App Store Connect, Ad Hoc, Enterprise, Developmentを選択しますが、この際に、Ad Hocを選択して.ipaファイルを作成していました。

App Distributionの配信方法を調べると、Ad Hocを選択すると書かれている記事しか見たことがなく、何も考えずに選択していました。
Ad Hocを選択して、Distribute Appすると、aps-environmentがproductionになります。

productionの場合、本番用として作成したAPNs証明書を参照するのですが、今回配信したかった開発版アプリは、一般公開する予定がないため、開発用(Sandbox)のAPNs証明書しか作成していませんでした。そのため、本番用として配信されたアプリではプッシュ通知を受け取ることができなかったと推察します。

ドキュメント

(2023/01/12 補足)
上記の状況とは逆に、製品版APNs証明書しか設定していないアプリをDevelopmentでDistributeAppして配信した場合、通知を受け取ることができませんでした。(開発版のAPNs証明書を参照するため)

解決策

  1. AdHoc用のAPNs証明書を作成する
  2. Distribute Appするときに、Developmentを選択する。

この案件の場合、プッシュ通知は他社管理のサービスから送信していたので、方法1だとコミュニケーションコストが発生します。(証明書を渡したりなどなど)

方法2の場合はteam内のメンバーにしか配信できないのですが、今回の場合は問題無さそうだったので、こちらを選択しました。

GitHubで編集を提案
カラビナテクノロジー デベロッパーブログ

Discussion