描述:
我们正在更新应用程序中的 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;
}}
环境
重现问题的步骤:
还要别的吗:
我们已经尝试在带有 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 有所不同。
现在我们不能靠自己走得更远,已经花了几天的时间在圈子里跑。
感谢帮助!
遇到同样的问题,我们在 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 版构建时遇到了同样的问题。
我们添加了两个 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.framework
和WebKit.framework
到我在 XCode 中的OneSignalNotificationServiceExtension
项目中来实现这一点,正如#861 中所建议的那样。 谢谢你的帮助!
通过手动添加 Webkit.framework 修复了该问题。 该应用程序运行并且 onesignal 工作:)
很高兴听到
最有用的评论
@rgomezp我能够通过将
CoreGraphics.framework
和WebKit.framework
到我在 XCode 中的OneSignalNotificationServiceExtension
项目中来实现这一点,正如#861 中所建议的那样。 谢谢你的帮助!