React-native-onesignal: React-native-onesignal 和 ios 13.1

创建于 2019-09-13  ·  12评论  ·  资料来源: OneSignal/react-native-onesignal

描述:

我们正在更新应用程序中的 react-native-onesignal - react-native 版本为 0.55.2。 简而言之,问题是,我们已经尝试根据发送的有关 xcode 11 和 iOS 13 的电子邮件更新 react-native-onesignal sdk(到 3.3.2 和 3.3.3)。但是,当在iOS 13.1 设备(iphone 7)(它是用 xcode 11 构建和运行的)应用程序运行,它会弹出请求发送推送通知的权限(我们接受)但我们总是在控制台中得到以下内容,应用程序获胜' 不注册通知,因为设备没有显示在 Onesignal 仪表板中:

(我不知道如何格式化代码,抱歉)

2019-09-13 14:30:11.707798+0200 app_name[3842:145178] { userSubscriptionEnabled: true, subscriptionEnabled: false, pushToken: '{length=32,bytes=0x0586c0fd0e74336ba3129ece2d44e089...8a9649cae8640ed7}', emailAddress: null, userId: null, hasPrompted: true, notificationsEnabled: false, emailUserId: null, emailSubscribed: false }

.....

2019-09-13 14:30:26.742281+0200 app_name[3842:145201] VERBOSE: HTTP Request (OSRequestRegisterUser) with URL: https://onesignal.com/api/v1/players, with parameters: { "app_id" : "app_id", "net_type" : 0, "test_type" : 1, "ios_bundle" : "dat1.videoplatform.ios.babyapp", "tags" : { "lang" : "da" }, "device_type" : 0, "sdk_type" : "react", "sdk" : "020904", "identifier" : "{length=32,bytes=0x0586c0fd0e74336ba3129ece2d44e089...8a9649cae8640ed7}", "language" : "da-DK", "device_os" : "13.1", "game_version" : "38", "timezone" : 7200, "ad_id" : "3A2693A5-32F0-474C-B4BD-5CC5F40B511A", "notification_types" : 31, "device_model" : "iPhone9,3", "carrier" : "Telenor DK" } 2019-09-13 14:30:26.960947+0200 app_name[3842:145202] VERBOSE: network response (OSRequestRegisterUser): { errors = ( "[\"Identifier invalid format.\"]" ); success = 0; } 2019-09-13 14:30:26.961717+0200 app_name[3842:144941] ERROR: Encountered error during push registration with OneSignal: Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={ errors = ( "[\"Identifier invalid format.\"]" ); success = 0; }}

环境

重现问题的步骤:

  1. 安装 react-native-onesignal 的 3.3.2 或 3.3.3 版本
  2. SDK 在 App.js 中初始化
  3. 在装有 iOS 13.1 的 iphone 7 上运行该应用程序,并在弹出窗口中接受推送通知。

还要别的吗:

我们已经尝试在带有 react-native-onesignal 3.2.4(预更新)、3.3.2 和 3.3.3 的 iOS 12.4 设备上运行,所有这些都在那里工作。 它按预期使用旧的标识符格式。 我们已经在可以运行的 iOS 13.1 iphone 7 上运行了该应用程序的 Live 版本(我们认为它不应该运行)。 我们已经使用 3.3.2 和 3.3.3 运行了更新的应用程序,它们在模拟器上运行得很好。 它可以连接,只是没有按预期获得要求推送权限的弹出窗口。

我们将尝试看看是否可以让设备运行 iOS 13.0 并在那里进行测试,因为模拟器是 13.0,并且可能与 13.1 有所不同。

现在我们不能靠自己走得更远,已经花了几天的时间在圈子里跑。

感谢帮助!

Help Wanted iOS

最有用的评论

@rgomezp我能够通过将CoreGraphics.frameworkWebKit.framework到我在 XCode 中的OneSignalNotificationServiceExtension项目中来实现这一点,正如#861 中所建议的那样。 谢谢你的帮助!

所有12条评论

遇到同样的问题,我们在 react-native 0.59.10

你好,
我们刚刚发布了 3.4.1 版,应该可以解决这个问题。 干杯!

将试一试并返回结果:)

@DanielMerbt

我们更新到 3.4.1 SDK 并尝试在模拟器和 ios 13.1 设备上运行,但我们收到构建错误,因此无法查看原始问题是否已解决。 我们也转向了 Xcode GM 版本,但我们之前使用的 beta 导致了完全相同的构建错误。

尝试在 sim/device 上运行时出现的新错误是:

体系结构 x86_64 的未定义符号:
“_OBJC_CLASS_$_WKWebView”,引用自:
libRCTOneSignal.a(OneSignal-x86_64-master.o)中的objc-class-ref
“_OBJC_CLASS_$_WKWebViewConfiguration”,引用自:
libRCTOneSignal.a(OneSignal-x86_64-master.o)中的objc-class-ref
ld:找不到架构 x86_64 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我想知道 3.4.1 更新中还有什么变化,因为我们除了 react-native-onesignal SDK 版本之外什么都没有改变。

我在尝试使用 SDK 3.4.1 版构建时遇到了同样的问题。
Screen Shot 2019-09-19 at 12 24 50 PM

我们添加了两个 XCode 难以找到的新框架。 您可以尝试从您的 ios 目录运行pod deintegrate && pod install吗?

@rgomezp我运行了这些并尝试再次构建,现在看到与上面相同的输出。

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_WKWebViewConfiguration", referenced from:
      objc-class-ref in libRCTOneSignal.a(OneSignal-arm64-master.o)
  "_OBJC_CLASS_$_WKWebView", referenced from:
      objc-class-ref in libRCTOneSignal.a(OneSignal-arm64-master.o)
  "_CGAffineTransformIdentity", referenced from:
      ___49-[OSInAppMessageViewController animateAppearance]_block_invoke in libRCTOneSignal.a(OneSignal-arm64-master.o)
  "_CGAffineTransformMakeScale", referenced from:
      -[OSInAppMessageViewController addConstraintsForMessage] in libRCTOneSignal.a(OneSignal-arm64-master.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

您可以尝试按照这些说明操作吗?

https://documentation.onesignal.com/docs/react-native-sdk-setup#section -manually-updating-ios-onesignalnativesdk

iOS 原生仓库: https :

编辑:人们通过将缺少的框架直接添加到他们的项目(非 cocoapods)中解决了这个问题: https :

@rgomezp我能够通过将CoreGraphics.frameworkWebKit.framework到我在 XCode 中的OneSignalNotificationServiceExtension项目中来实现这一点,正如#861 中所建议的那样。 谢谢你的帮助!

通过手动添加 Webkit.framework 修复了该问题。 该应用程序运行并且 onesignal 工作:)

很高兴听到

此页面是否有帮助?
0 / 5 - 0 等级