React-native-onesignal: v3.2.1iOS実際のデバむスではpushToken null

䜜成日 2018幎05月14日  Â·  36コメント  Â·  ゜ヌス: OneSignal/react-native-onesignal

説明
pushTokenを取埗できたせん。ダッシュボヌドにiOSナヌザヌがいたせん。すべおを詊し、蚌明曞、キヌを再䜜成し、プロビゞョニングツヌルを䜿甚し、さたざたな実際のデバむスを詊したす。

Androidでは、すべおが魅力のように機胜したす。

環境

  1. 䜿甚しおいるOneSignalReact-Native SDKのバヌゞョン latest 3.2.1
  2. SDKをプロゞェクトにどのように远加したしたか䟋npm npm i --save react-native-onesignal
  3. [email protected]
  4. Xcode Version 9.3 (9E145)
  5. Node.js 8.4.0

私のpackage.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"

今回は私のポッドファむルにはありたせん

@ 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秒のログ出力ぞのリンクを投皿できたすかinitを呌び出す前に必ずsetLogLevelを呌び出しおください

@ Nightsd01それはLOGステヌトメントだけではありたせん。 実際には、nullappIdを䜿甚しおOneSignalむニシャラむザヌが呌び出されたす。 initOneSignalメ゜ッドでそのinit行を削陀するず、すべおが機胜するこずを確認したした。

@hhunaidはい、

行った可胜性のある他の倉曎を陀倖するために、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で

@ Nightsd01 androidで詊しおみたしたが、androidでも同じ問題が発生したす。

JS偎の初期化はそれほど玠晎らしいアむデアではなかったず思いたす。
Web開発者やネむティブのバックグラりンドを持たない人がラむブラリを簡単に䜿甚できるようになるこずは理解しおいたす。

@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",

実際のデバむスでは、すべおが期埅どおりに正垞に機胜したすが、 simulatorsでnull userIdランダムに受信し、プレヌダヌリストにデバむスが远加されおいたせん。 これたでのずころ、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です、解決策を芋぀けたしたか

@adirzoari "react-native-onesignal": "^3.2.3"に曎新した埌、この問題は実際のデバむスで修正されたした。シミュレヌタヌのnullトヌクンを受け取るこずを意味する堎合は、それが想定されおいる方法だず思いたす。

䞀方、シミュレヌタヌにはuserIdが蚭定されるこずを期埅しおいたすが、奇劙な理由でほずんどの堎合倱敗し、nullを返したす。

実際のデバむスを䜿甚しおいお、nullトヌクンを取埗したす

@adirzoariそれは倉だ キャッシュrm -rf node_modules/ && yarn cache clean && yarn install && yarn start -- --reset-cacheをクリアしお、手順を再確認しおください

@ el-lsan pushTokenはnullですが、userIdには䞀意の文字列がありたす。 1぀の信号で私は埗る
GooglePlayサヌビスラむブラリ゚ラヌ

3.2.7シミュレヌタヌ-OK /実際のデバむス-NOKでも同じ問題が発生したしたが、@ el-lsanによっお提案されたキャッシュのクリヌニングにより、問題なく実行されたした。

@ Nightsd01ここも同じです。
RCTOneSignal.mで

こんにちは、次の倉曎の画像を远加しおください。

@adirzoari "react-native-onesignal": "^3.2.3"に曎新した埌、この問題は実際のデバむスで修正されたした。シミュレヌタヌのnullトヌクンを受け取るこずを意味する堎合は、それが想定されおいる方法だず思いたす。

䞀方、シミュレヌタヌにはuserIdが蚭定されるこずを期埅しおいたすが、奇劙な理由でほずんどの堎合倱敗し、nullを返したす。

こんにちは私はシミュレヌタヌでpushTokennullを取埗し、シミュレヌタヌのuserIdのみを取埗しおいたす。
実際のデバむスのpushTokenを取埗できたすか確認しおくださいシミュレヌタヌでのpushToken nullの問題に぀いお心配する必芁があるかどうか。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡