React-native-onesignal: (v3.2.1) (iOS) ์‹ค์ œ ์žฅ์น˜์˜ pushToken null

์— ๋งŒ๋“  2018๋…„ 05์›” 14์ผ  ยท  36์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: OneSignal/react-native-onesignal

์„ค๋ช…:
pushToken์„ ์–ป์„ ์ˆ˜ ์—†๊ณ  ๋Œ€์‹œ๋ณด๋“œ์— iOS ์‚ฌ์šฉ์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ , ์ธ์ฆ์„œ, ํ‚ค๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ , ํ”„๋กœ๋น„์ €๋‹ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ์‹ค์ œ ์žฅ์น˜์—์„œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

  1. ์‚ฌ์šฉ ์ค‘์ธ OneSignal React-Native SDK ๋ฒ„์ „: latest 3.2.1
  2. ํ”„๋กœ์ ํŠธ์— SDK๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐฉ๋ฒ•(์˜ˆ: npm) npm i --save react-native-onesignal
  3. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ@0.55.3
  4. Xcode Version 9.3 (9E145)
  5. Node.js 8.4.0

๋‚ด ํŒจํ‚ค์ง€.json

package json rbtse 2018-05-14 11-59-05

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„:

  1. onesignal.com์—์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ณ€ํ˜• ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
  2. ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์˜ˆ์ œ ํด๋”์—์„œ js ์ฝ”๋“œ ์ถ”๊ฐ€
  3. ์‹ค์ œ ์žฅ์น˜์—์„œ ํ…Œ์ŠคํŠธ(iphone x with ios 11, iphone 6s with ios 10)

js ์ฝ”๋“œ

export default class App extends Component {
  componentWillMount() {
    OneSignal.setLogLevel(7, 0);
    OneSignal.init('here my ONESIGNAL APP ID - I checked it twenty times', { kOSSettingsKeyAutoPrompt: true });
    OneSignal.setSubscription(true);
    OneSignal.enableSound(true);
    OneSignal.enableVibrate(true);
    OneSignal.inFocusDisplaying(2);

    OneSignal.getPermissionSubscriptionState((response) => {
      console.log('Received permission subscription state: ', response);
    });
  }

getPermissionSubscriptionState ๋กœ๋ถ€ํ„ฐ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

{
  emailAddress:null
  emailSubscribed:false
  emailUserId:null
  hasPrompted:true
  notificationsEnabled:true
  pushToken:null
  subscriptionEnabled:false
  userId:null
  userSubscriptionEnabled:true
}

๋ฌผ๋ก  ๋Œ€์‹œ๋ณด๋“œ์—๋Š” ios ์‚ฌ์šฉ์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ xcode์— ๋กœ๊ทธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Called init with app ID: (null)
2018-05-14 11:21:03.636571+0300 rbtse[15320:6135130] Called init with app ID: xxxxxx-ea78-4b29-8b91-xxxxxxxxx (I changed app id)
2018-05-14 11:21:03.636758+0300 rbtse[15320:6135130] DEBUG: Downloading iOS parameters for this application
2018-05-14 11:21:03.642023+0300 rbtse[15320:6135181] VERBOSE: getNotificationTypes:mSubscriptionStatus: -1
2018-05-14 11:21:03.643531+0300 rbtse[15320:6135130] VERBOSE: registerForPushNotifications Called:waitingForApnsResponse: 1
2018-05-14 11:21:03.690752+0300 rbtse[15320:6135130] VERBOSE: oneSignalApplicationWillResignActive
2018-05-14 11:21:03.986984+0300 rbtse[15320:6135181] VERBOSE: network response (OSRequestGetIosParams): {
    fba = 1;
}
2018-05-14 11:21:05.778574+0300 rbtse[15320:6135130] VERBOSE: oneSignalApplicationDidBecomeActive
2018-05-14 11:21:05.778918+0300 rbtse[15320:6135130] VERBOSE: getNotificationTypes:mSubscriptionStatus: -1
2018-05-14 11:21:05.792324+0300 rbtse[15320:6135130] VERBOSE: updateNotificationTypes called: 15
2018-05-14 11:21:05.792388+0300 rbtse[15320:6135130] VERBOSE: startedRegister: 1

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

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ @dooboolab @hhunaid @408dev @el-lsan @neo125874 @Jarred-Sumner

์ƒˆ ์—…๋ฐ์ดํŠธ(3.2.3) ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ(๋˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ)๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ธฐ๊บผ์ด ์กฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค https://github.com/geektimecoil/react-native-onesignal/issues/502
๊ทธ๋ž˜์„œ https://github.com/geektimecoil/react-native-onesignal/tree/3.1.4 ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ด์ œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

react native debugger - connected port 8081 2018-05-14 12-24-59

users rbtse onesignal 2018-05-14 12-27-59

๊ทธ๋ž˜์„œ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š”, ์ตœ์‹  ๋ฒ„์ „์˜ react-native-onesignal(3.2.2)์„ ์„ค์น˜ํ•˜๊ณ  react-native link react-native-onesignal ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  RCTOneSignal์ด ์ด์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ์—์„œ ์ข…์†์„ฑ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

alt text

pushToken ๋ฐ userId ๋Š” ์‹ค์ œ ์žฅ์น˜์—์„œ๋„ null์ž…๋‹ˆ๋‹ค(๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ์—์„œ).
image

[email protected]:
  version "3.2.2"
  resolved "https://registry.yarnpkg.com/react-native-onesignal/-/react-native-onesignal-3.2.2.tgz#d1ae1e95cc301b940120de29a29ae90f478c9a97"
  dependencies:
    invariant "^2.2.2"

(์ด๋ฒˆ์—๋Š” ๋‚ด podfile์— ์—†์Œ)

@Jarred-Sumner ์žฅ์น˜์—์„œ ์•ฑ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ถŒํ•œ์„ ์ˆ˜๋ฝํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ?

๋˜ํ•œ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์„ค์ • > ๊ธฐ๋Šฅ์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๊นŒ?

@Jarred-Sumner ์žฅ์น˜์—์„œ ์•ฑ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ถŒํ•œ์„ ์ˆ˜๋ฝํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ?

์˜ˆ

๋˜ํ•œ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์„ค์ • > ๊ธฐ๋Šฅ์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ
image
image

v3.1.4 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์ด์ œ pushToken ๋ฐ userId ๋ณด๋ƒ…๋‹ˆ๋‹ค.

@Jarred-Sumner ์ด ๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ ๋” ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ID๋Š” null์ด์ง€๋งŒ ํ‘ธ์‹œ ์•Œ๋ฆผ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋“ค์€ ์•ˆ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

๋˜ํ•œ init๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— 3.2.2๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  JS๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  OneSignal.setLogLevel(6, 0) ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฝ˜์†”์— ์ธ์‡„๋œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌธ์ œ๋Š” 3.2.2์—์„œ ์ง€์†๋ฉ๋‹ˆ๋‹ค.
๋กœ๊ทธ ์ˆ˜์ค€์„ ์„ค์ •ํ•˜๋ฉด ๋‹ค์Œ ์ถœ๋ ฅ์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

์•ฑ ID๋กœ init ํ˜ธ์ถœ: (null)
(๊ทธ๋Ÿฐ ๋‹ค์Œ ๋กœ๊ทธ์˜ ์•„๋ž˜ ์–ด๋”˜๊ฐ€์—)
์•ฑ ID๋กœ init ํ˜ธ์ถœ: (my-app-id)

๊ทธ๋Ÿฌ๋‚˜ userId๋Š” ์—ฌ์ „ํžˆ null์ž…๋‹ˆ๋‹ค. ๋„์›€์ด๋œ๋‹ค๋ฉด CocoaPods๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค.

@hhunaid ์ฒ˜์Œ์—๋Š” ์•ฑ ID๊ฐ€ null์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค(ํ˜ผ๋™์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ ๋ฒˆ์งธ ๋กœ๊ทธ ๋ฌธ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Œ).

๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ iOS ์žฅ์น˜์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๊ถŒํ•œ์„ ์ˆ˜๋ฝํ•  ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉ์ž ID๊ฐ€ null์ด ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ํ•ด๋‹น ๋กœ๊ทธ ์ˆ˜์ค€์œผ๋กœ Xcode์˜ ์ตœ์†Œ 15์ดˆ ๋กœ๊ทธ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (์ดˆ๊ธฐํ™”๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— setLogLevel์„ ํ˜ธ์ถœํ•ด์•ผ ํ•จ)

@Nightsd01 LOG ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ null appId๊ฐ€ ์žˆ๋Š” OneSignal ์ด๋‹ˆ์…œ๋ผ์ด์ €์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ initOneSignal ๋ฉ”์†Œ๋“œ์—์„œ ์ดˆ๊ธฐํ™” ๋ผ์ธ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

@hhunaid ์˜ˆ, ์ดˆ๊ธฐํ™”์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์€ null ์•ฑ ID๋กœ ์ˆ˜ํ–‰๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ž˜ํผ SDK์˜ ์ž‘์—… ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์„ ์ œ๊ฑฐํ•˜๋ฉด "๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค"...?

๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐฐ์ œํ•˜๊ธฐ ์œ„ํ•ด initOneSignal์˜ ์ฃผ์„์„ ๋‹ค์‹œ ์ œ๊ฑฐํ•˜์—ฌ ์ž‘๋™์ด ์ค‘์ง€๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ...?

์‚ฌ์šฉ ์ค‘์ธ ์ข…์†์„ฑ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก package.json ๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์–ธ๊ธ‰๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ผœ๊ณ  ๋„๊ธฐ๋ฅผ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์ด์ œ๋Š” ๊ทธ๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ฒ”์ธ์ด๋ผ๊ณ  ์ž์‹  ์žˆ๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋‚ด ์•ฑ์—์„œ๋Š”.
์ด๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ ํšจํ•œ playerId๊ฐ€ ์ œ๊ณต๋˜๊ณ  ๋‚ด ์žฅ์น˜๊ฐ€ OneSignal ๋Œ€์‹œ๋ณด๋“œ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. PushToken์€ ํ•ญ์ƒ null์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์— ์Šคํฌ๋ฆฐ์ƒท์„ ๋ถ™์—ฌ๋„ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.
screen shot 2018-05-16 at 3 55 07 am

๋‚ด package.json์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    "abortcontroller-polyfill": "^1.1.9",
    "immutability-helper": "^2.7.0",
    "mobx": "^4.2.1",
    "mobx-react": "^5.1.2",
    "moment": "^2.22.1",
    "react": "^16.3.2",
    "react-native": "^0.55.4",
    "react-native-amplitude-analytics": "^0.1.15",
    "react-native-animatable": "^1.2.4",
    "react-native-audio-recorder-player": "^1.0.15",
    "react-native-iap": "^1.0.1",
    "react-native-image-picker": "^0.26.10",
    "react-native-linear-gradient": "^2.4.0",
    "react-native-loading-spinner-overlay": "^0.5.2",
    "react-native-localization": "^1.0.7",
    "react-native-marquee": "^0.3.1",
    "react-native-modalbox": "^1.4.2",
    "react-native-onesignal": "^3.2.2",
    "react-native-permissions": "^1.1.1",
    "react-native-pinch-zoom-view": "^0.1.6",
    "react-native-sentry": "^0.36.0",
    "react-native-status-bar-height": "^2.0.0",
    "react-native-swiper": "^1.5.13",
    "react-navigation": "^2.0.1",
    "serializr": "^1.2.0"

@dooboolab JS ์ดˆ๊ธฐํ™”๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋งž์Šต๋‹ˆ๊นŒ?

ํ”„๋กœ์ ํŠธ์—์„œ OneSignal.init() ํ˜ธ์ถœํ•˜๋Š” ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ‰์ƒ ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ _์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ณ  ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋ฅผ _ํ›จ์”ฌ_ ๋นจ๋ฆฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tavriaforever ์•ˆ๋…•ํ•˜์„ธ์š”, ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๋ฐ onesignal.init('app id') ํ˜ธ์ถœ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ, ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

    "react": "16.3.1",
    "react-native": "0.55.3",
    "react-native-onesignal": "^3.2.0",

@Nightsd01
RootStackNavigator๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ๋ฃจํŠธ index.tsx ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

class App extends React.Component {
  public componentDidMount() {
    OneSignal.init('****');
    OneSignal.addEventListener('received', this.onReceived);
    OneSignal.addEventListener('opened', this.onOpened);
    OneSignal.addEventListener('ids', this.onIds);
    OneSignal.enableVibrate(true);
    OneSignal.enableSound(true);

.....
public render() {
    return (
      <Provider
        store={ appStore }
        user={ userStore }
        player={ playerStore }
      >
        <View style={styles.container}>
          <RootStackNavigator />
        </View>
      </Provider>
    );

์—ฌ์ „ํžˆ null ํ† ํฐ์„ ๋ฐ›๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@Nightsd01 ์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.
RCTOneSignal.m์—์„œ appId:nil ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@Nightsd01 ๋ฐฉ๊ธˆ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

JS ์ธก ์ดˆ๊ธฐํ™”๋Š” ๊ทธ๋ ‡๊ฒŒ ์ข‹์€ ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹ˆ์—ˆ๋‚˜ ๋ด…๋‹ˆ๋‹ค.
์›น ๊ฐœ๋ฐœ์ž๋‚˜ ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

@hhunaid ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‚˜์š”?

@dooboolab @408dev ์˜ˆ, ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋‹น๋ถ„๊ฐ„ 3.1.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‚ฌ๊ณผ. JS init๋Š” 3.1.4์—์„œ ์ง€์›๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ฐ€์ด๋“œ ์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ์— ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@hhunaid ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฐ˜์‘ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์ผ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์›์ธ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณง ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ - ์ด ๋ฌธ์ œ๋Š” ์ƒˆ๋กœ์šด PR(#512)์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ 1~2์‹œ๊ฐ„ ๋‚ด์— ์ด ๊ธฐ๋Šฅ์ด ๋ณ‘ํ•ฉ๋˜๊ณ  ์ƒˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ @dooboolab @hhunaid @408dev @el-lsan @neo125874 @Jarred-Sumner

์ƒˆ ์—…๋ฐ์ดํŠธ(3.2.3) ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ(๋˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ)๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ธฐ๊บผ์ด ์กฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@Nightsd01
๋‚˜๋Š” ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋‹ค

  "react": "16.3.1",
  "react-native": "0.55.3",
  "react-native-onesignal": "^3.2.3",

๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒํ•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ์ˆ˜์‹  ๋ฉ”์‹ ์ €๋กœ ๋ฒŒ๊ธˆ์„ ์ž‘๋™ ์‹ค์ œ ์žฅ์น˜์— null userId ๋ฌด์ž‘์œ„์— simulators ๋‚˜๋Š” ๋‚ด ์„ ์ˆ˜ ๋ชฉ๋ก์— ์ถ”๊ฐ€๋˜๋Š” ๋ชจ๋“  ์žฅ์น˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! (์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋Š” >50๋ฒˆ์ฒ˜๋Ÿผ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ๋‹จ 2๋ฒˆ๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค! )
rm -rf node_modules/ && yarn cache clean && yarn install && yarn start -- --reset-cache ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ์„ ์ฒญ์†Œํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ OneSignal.getPermissionSubscriptionState ์—์„œ ์˜ˆ์ƒ๋˜๋Š” ์ƒํƒœ๋ฅผ ์–ป์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

{ userSubscriptionEnabled: true,
  subscriptionEnabled: false,
  pushToken: null,
  emailAddress: null,
  userId: null,
  hasPrompted: true,
  notificationsEnabled: true,
  emailUserId: null,
  emailSubscribed: false }

@el-lsan ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์•„๋‹Œ Apple์˜ ์ œํ•œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. APNS ํ‘ธ์‹œ ํ† ํฐ์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  OneSignal์— ๋“ฑ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ OneSignal์„ ์‚ฌ์šฉํ•˜๋“  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋“  ์‹ค์ œ iOS ์žฅ์น˜์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@Nightsd01
์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ๋‚ด ๋งˆ์ง€๋ง‰ ๊ฒŒ์‹œ๋ฌผ์€ ๊ทธ๋ ‡๊ฒŒ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ํ‘ธ์‹œ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์žฅ์น˜๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ OneSignal.init('ONESIGNAL_APP_ID'); ์ดํ›„์— ๋‹ค์Œ ์Šคํฌ๋ฆฐ์ƒท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Ios Simulator Unsupported ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๊ตฌ๋…ํ•œ ์‚ฌ์šฉ์ž์— ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์žฅ์น˜๊ฐ€ ๋‚˜์—ด๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

image

๋‚˜์—ด๋œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•œ OneSignal.getPermissionSubscriptionState์˜ ์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ดˆ๊ธฐํ™”๊ฐ€ ์‹คํŒจํ•˜๊ณ  https://onesignal.com/apps/ONESIGNAL_APP_ID/players ์•„๋ž˜์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@el-lsan ํ‘ธ์‹œ ํ† ํฐ์ด null์ธ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ์…จ์Šต๋‹ˆ๊นŒ?

"react-native-onesignal": "^3.2.3" ์—…๋ฐ์ดํŠธํ•œ ํ›„ @adirzoari ๋ฌธ์ œ๋Š” ์‹ค์ œ ์žฅ์น˜์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ null ํ† ํฐ์„ ์ˆ˜์‹ ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— userId ๊ฐ€ ์„ค์ •๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด์ƒํ•œ ์ด์œ ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์‹คํŒจํ•˜๊ณ  null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค!

์‹ค์ œ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  null ํ† ํฐ์„ ์–ป์Šต๋‹ˆ๋‹ค.

@adirzoari ์ด์ƒํ•ด! rm -rf node_modules/ && yarn cache clean && yarn install && yarn start -- --reset-cache ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ํ™•์ธ

@el-lsan pushToken์€ null์ด์ง€๋งŒ userId์—๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•˜๋‚˜์˜ ์‹ ํ˜ธ์—์„œ
Google Play ์„œ๋น„์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜ค๋ฅ˜

3.2.7(์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ - OK/์‹ค์ œ ์žฅ์น˜ - NOK)์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ @el-lsan์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

@Nightsd01 ์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.
RCTOneSignal.m์—์„œ appId:nil ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‹ค์Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

"react-native-onesignal": "^3.2.3" ์—…๋ฐ์ดํŠธํ•œ ํ›„ @adirzoari ๋ฌธ์ œ๋Š” ์‹ค์ œ ์žฅ์น˜์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ null ํ† ํฐ์„ ์ˆ˜์‹ ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— userId ๊ฐ€ ์„ค์ •๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด์ƒํ•œ ์ด์œ ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์‹คํŒจํ•˜๊ณ  null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ pushToken:null ์„ ์–ป๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•œ userId๋งŒ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์‹ค์ œ ์žฅ์น˜์— ๋Œ€ํ•œ pushToken์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค(์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ pushToken null ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€).

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