説明:
ターゲット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の指示に従って拡張機能を追加し
構築を試みます
他に何か:
説明のすべて
完全なエラーを含めていただけますか? またはスクリーンショット?
更新:この問題を修正するバージョン3.4.0をリリースしました。 そうでない場合は、コメントしてください。再開します。 乾杯
こんにちは、 @ rgomezp 。 現在、3.4.1でこのエラーが発生しています。
node_modules / react-native / React / DevSupport / RCTDevLoadingView.m:77:42:「sharedApplication」は使用できません:iOS(App Extension)では使用できません-代わりに、必要に応じてビューコントローラーベースのソリューションを使用してください。
これがあなたの図書館に当てはまるかどうかはわかりませんが、お知らせします
そう。
OneSignalNotificationServiceExtension
ないプロジェクトは正常にビルドされます。OneSignalNotificationServiceExtension
を追加しました(Onesignalインポートなし)target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
そしてpod install
を立ち上げました
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
もう一度実行します。
おかげで、これは私にとってもそれを修正しました。 私は他の答えが反対を示唆しているという印象を受けました。
最も参考になるコメント
これとまったく同じ問題が発生し、
この問題は、アプリのターゲット内にサービスのターゲットを追加したときに発生します。
これは間違っています:
これは正しいです:
このスニペットは、アプリのサブターゲットではなく、独自のトップレベルターゲットである必要があります。
修正したら、
pod install
もう一度実行します。