iOS 上的 Flutter OneSignal 设置具有多种风格

问题描述 投票:0回答:1

我正在使用 Flutter 风格来管理多个应用程序的相同代码库。到目前为止,味道还不错。但是,我有 为 iOS 的每种风格设置 OneSignal 很困难。 假设我有风味 1 和风味 2。

我遵循了 OneSignal 的文档 https://documentation.onesignal.com/docs/flutter-sdk-setup 。它确实适用于主要风味(即风味1),但不适用于其他风味 味道(味道2)。

我尝试过的。

对于风味1。

  1. 我添加了名为“OneSignalNotificationServiceExtension”的新目标。
  2. 我将此目标的捆绑 ID 指定为“com.myapp.flavor1.OneSignalNotificationServiceExtension”
  3. 我根据文档更新了NotificationService.m 文件。
  4. 我也更新了 podfile。

到目前为止,这适用于flavor1。

但是为了味道2。

  1. 我添加了名为“OneSignalNotificationServiceExtension”的新目标。它不允许我添加,因为目标名称已被占用。
  2. 我添加了名称“FlavorTwoOneSignalNotificationServiceExtension”。
  3. 我将此目标的捆绑 ID 指定为“com.myapp.flavor2.FlavorTwoOneSignalNotificationServiceExtension”
  4. 我根据文档更新了NotificationService.m 文件。

当我从 Xcode 运行应用程序时。我在 FlavorTwoOneSignalNotificationServiceExtension 下收到错误“没有这样的模块‘OneSignalExtension’”。

有人可以指出我在这里做错了什么吗?

谢谢

flutter onesignal
1个回答
0
投票

假设您有 3 种不同的口味。具体如下:

com.company.mobile --> 产品

com.company.mobile.dev --> dev

com.company.mobile.uat --> uat

应用程序的产品包标识符配置应如下。

Runner Product Bundle Identifier configuration

然后,应通过 onesignal 仪表板为项目创建 3 个不同的应用程序,如下所示。由于您的项目安装了一个风味,因此每个风味应使用不同的信号键。

onesignal dashboard

最后,在 Xcode--Targets 部分中,您应该转到之前创建的 OneSignalNotificationServiceExtension 目标,并从构建设置选项卡创建名为 BUNDLE_ID 的用户定义值。然后,您应该在与

$(BUNDLE_ID).OneSignalNotificationServiceExtension
相同的选项卡中的“产品包标识符”字段中输入该值。下面给出一个例子:

Onesignal extension configurations

最后你可以像这样使用它:

try {
  var token = FlavorConfigurationsKeys.oneSignalAppToken;
  OneSignal.initialize(token);
} catch (e) {
...
}
© www.soinside.com 2019 - 2024. All rights reserved.