如何从开发、测试、暂存和生产环境发送 APNS 推送通知?



我正在开发一个带有Flutter和firebase_messaging插件的应用程序。 后端通过 Firebase 云消息 (FCM( 发送推送通知。 如何构建不同风格的应用程序,这些应用程序只能从其相应的后端接收推送通知?

  • 开发人员(每个工程师一个(
  • 测试
  • 分期

Android:经过大量搜索,我得出的结论是,FCM访问控制粒度是每个项目的。 因此,这应该有效:

  1. 为每种风格创建一个 Firebase 项目。
  2. 将一个具有唯一软件包名称的"Android 应用"添加到每个 Firebase 项目com.company.app.flavor
  3. 使用 build.gradle 配置特定规格和适当的applicationIdSuffix值,以便应用二进制文件最终具有与 Firebase 项目"Android 应用"条目相同的包名称。

iOS:如何使用APNS为iOS完成同样的事情?

  • 我找到了 7 年前的答案,现在没有意义了。
  • 我是否可以在 iOS 上遵循与 Android 相同的策略,为每种口味构建具有唯一捆绑 ID 的应用程序? 这是否需要在App Store Connect中为每个捆绑ID输入应用程序?
  • 有一篇关于iOS风格的文章,但它缺少一些信息,也没有提到设置捆绑ID或捆绑ID后缀。

我发现、实现并测试了解决方案:使用单独的捆绑 ID,就像使用 Android 一样。 例如:com.company.appname.dev和 com.company.appname.prod'。

Salvatore Giordano的博客文章Flavoring Flutter解释了如何为每种口味设置XCode方案。 即使您不使用 Flutter,这篇文章也很有用。

以下是我的测试步骤:

  1. 创建 Firebase 项目:appname-dev
    • 安卓应用:com.company.app.dev
    • iOS 应用程序:com.company.app.dev
    • APNS 密钥:<团队密钥>
  2. 创建了另一个 Firebase 项目:appname-prod
    • 安卓应用:com.company.app.prod
    • 苹果应用:com.company.app.prod
    • APNS 密钥:<同一团队密钥>
  3. 创建了 iOS 应用程序的开发风格,使用捆绑 IDcom.company.app.dev和显示"dev"的图标。
  4. 创建了 iOS 应用的 prod 风格,使用捆绑 IDcom.company.app.prod和显示"prod"的图标。
  5. 在我的手机上安装了该应用程序的两种版本。 启动它们并确保每个都初始化了 Firebase 云消息代码并请求显示通知的权限。
  6. 使用 Firebase 控制台向这两个应用发送测试消息。
  7. 从我的手机中删除了开发应用程序。
  8. 使用 Firebase 控制台向这两个应用发送测试消息。 已确认手机的锁定屏幕中仅显示生产应用的消息。 未显示开发人员应用的消息。 这确认了 APNS 正确分离了应用的开发和生产风格。

相关内容

  • 没有找到相关文章

最新更新