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์—์„œ ์•ฑ์˜ ๋ผ์ด๋ธŒ ๋ฒ„์ „์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค(์ž‘๋™ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค). ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š” 3.3.2 ๋ฐ 3.3.3์œผ๋กœ ์—…๋ฐ์ดํŠธ๋œ ์•ฑ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋˜๋ฉด ์˜ˆ์ƒ๋Œ€๋กœ ํ‘ธ์‹œ ๊ถŒํ•œ์„ ๋ฌป๋Š” ํŒ์—…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ 13.0์ด๊ณ  13.1๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ iOS 13.0์„ ์‹คํ–‰ํ•˜๋Š” ์žฅ์น˜๋ฅผ ๊ฐ€์ ธ์™€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” ์Šค์Šค๋กœ ๋” ์ด์ƒ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์—†์œผ๋ฉฐ ์ด๋ฏธ ์„œํด์—์„œ ๋ช‡ ์ผ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Help Wanted iOS

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@rgomezp #861์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ XCode์˜ OneSignalNotificationServiceExtension ํ”„๋กœ์ ํŠธ์— CoreGraphics.framework ๋ฐ WebKit.framework ๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ชจ๋“  12 ๋Œ“๊ธ€

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ react-native 0.59.10์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•,
์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฒ„์ „ 3.4.1์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑด๋ฐฐ!

ํ•ด๋ณด๊ณ  ๊ฒฐ๊ณผ๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค :)

@DanielMerbt iOS 13.1์—์„œ ์ž‘๋™ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๊นŒ? ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”!

3.4.1 SDK๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ios 13.1 ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰์„ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์›๋ž˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ Xcode GM ๋ฒ„์ „์œผ๋กœ ์˜ฎ๊ฒผ์ง€๋งŒ ์ด์ „์— ์‚ฌ์šฉํ•œ ๋ฒ ํƒ€์—์„œ๋Š” ๋˜‘๊ฐ™์€ ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

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 ์‚ฌ์šฉ).

react-native-onesignal SDK ๋ฒ„์ „ ์™ธ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— 3.4.1 ์—…๋ฐ์ดํŠธ์—์„œ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

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://github.com/OneSignal/OneSignal-iOS-SDK

ํŽธ์ง‘: ์‚ฌ๋žŒ๋“ค์€ ๋ˆ„๋ฝ๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ”„๋กœ์ ํŠธ(cocoapods๊ฐ€ ์•„๋‹˜)์— ์ง์ ‘ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/geektimecoil/react-native-onesignal/issues/861

@rgomezp #861์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ XCode์˜ OneSignalNotificationServiceExtension ํ”„๋กœ์ ํŠธ์— CoreGraphics.framework ๋ฐ WebKit.framework ๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Webkit.framework๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ์‹คํ–‰๋˜๊ณ  onesignal์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :)

๋“ฃ๊ธฐ ์ข‹์€

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰