React-native-onesignal: OneSignalNotificationServiceExtensionはsharedApplicationビルドの問題を引き起こします

作成日 2019年09月10日  ·  12コメント  ·  ソース: OneSignal/react-native-onesignal

説明:
ターゲットOneSignalNotificationServiceExtensionを追加すると、アプリ拡張機能で特定のものを使用できないため、アプリをビルドできなくなります...この場合、エラーは特にsharedApplicationに関するものです(実際にはRCTRedBox.mで問題として表示されます) 。 拡張機能を追加するまで、react-native-onesignalを使用しても、アプリは正常にビルドされます。

環境
react-native-onesignal:3.3.3
反応ネイティブ:0.59.9

SDKがyarnを介して追加され、react-nativeリンクreact-native-onesignal

問題を再現する手順:

私以外のアプリで複製を試みる時間がありませんでした...私のアプリで(おそらく他の人ですか?):

ヤーン経由でSDKをインストールする
リンクパッケージ
ポッドのインストール
https://documentation.onesignal.com/docs/react-native-sdk-setup#section-usageの指示に従って拡張機能を追加し
構築を試みます

他に何か:

説明のすべて

Need More Information

最も参考になるコメント

これとまったく同じ問題が発生し、

この問題は、アプリのターゲット内にサービスのターゲットを追加したときに発生します。

これは間違っています:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

これは正しいです:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
 end
 target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
 end

このスニペットは、アプリのサブターゲットではなく、独自のトップレベルターゲットである必要があります。

修正したら、 pod installもう一度実行します。

全てのコメント12件

完全なエラーを含めていただけますか? またはスクリーンショット?

更新:この問題を修正するバージョン3.4.0をリリースしました。 そうでない場合は、コメントしてください。再開します。 乾杯

こんにちは、 @ rgomezp 。 現在、3.4.1でこのエラーが発生しています。

node_modules / react-native / React / DevSupport / RCTDevLoadingView.m:77:42:「sharedApplication」は使用できません:iOS(App Extension)では使用できません-代わりに、必要に応じてビューコントローラーベースのソリューションを使用してください。

これがあなたの図書館に当てはまるかどうかはわかりませんが、お知らせします

そう。

  1. OneSignalNotificationServiceExtensionないプロジェクトは正常にビルドされます。
  2. デフォルトでコンテンツを含むOneSignalNotificationServiceExtensionを追加しました(Onesignalインポートなし)
  3. Onesignalをpodfileに追加しました:
target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignal', '>= 2.9.3', '< 3.0'
end

そしてpod installを立ち上げました

  1. 次に、プロジェクトを構築しようとすると、次のようになります。

node_modules / react-native / React / DevSupport / RCTDevLoadingView.m:77:42:「sharedApplication」は使用できません:iOS(App Extension)では使用できません-代わりに、必要に応じてビューコントローラーベースのソリューションを使用してください。

System:
    OS: macOS 10.14.6
    CPU: (6) x64 Intel(R) Core(TM) i5-8500B CPU @ 3.00GHz
    Memory: 11.75 GB / 32.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 10.16.1 - ~/.nvm/versions/node/v10.16.1/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.1/bin/npm
  SDKs:
    iOS SDK:
      Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
    Android SDK:
      API Levels: 23, 25, 27, 28, 29
      Build Tools: 25.0.2, 25.0.3, 28.0.3, 29.0.1, 29.0.2
      System Images: android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5791312
    Xcode: 11.0/11A419c - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6
    react-native: 0.60.5 => 0.60.5

@indapublic
役立つかもしれないこのスタックオーバーフローを見てください。 提案された解決策のいずれかがあなたに役立つ場合は、ここにコメントしてください。チケットを閉じて、問題が発生する可能性のある他の人を助けることができます。
https://stackoverflow.com/questions/34225213/uiapplication-sharedapplication-not-available
また
https://stackoverflow.com/questions/32031071/error-sharedapplication-is-unavailable-not-available-on-ios-app-extension

ありがとう、@ rgomezp。 ポッドファイルが間違っていることがわかりました。 昨日、ターゲット「OneSignalNotificationServiceExtension」を間違ったセクションに移動しました。 すべて正常に動作します。 ありがとう、ごめんなさい。 この問題を解決できます

@indapublic
ポッドファイルが機能していないときにどのように見えるかを示していただけますか? 彼らが同じ間違いをした場合、これは将来人々を助けるでしょう

target 'app' do
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

まだココアポッドの経験はあまりありませんが、拡張機能はアプリケーションに依存していると考えられていました

これとまったく同じ問題が発生し、

この問題は、アプリのターゲット内にサービスのターゲットを追加したときに発生します。

これは間違っています:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
  target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
  end
end

これは正しいです:

target 'app' do
  rn_path = '../node_modules/react-native'
  ....
 end
 target 'OneSignalNotificationServiceExtension' do
    pod 'OneSignal', '>= 2.9.3', '< 3.0'
 end

このスニペットは、アプリのサブターゲットではなく、独自のトップレベルターゲットである必要があります。

修正したら、 pod installもう一度実行します。

おかげで、これは私にとってもそれを修正しました。 私は他の答えが反対を示唆しているという印象を受けました。

このページは役に立ちましたか?
0 / 5 - 0 評価