La description:
L'ajout de la cible OneSignalNotificationServiceExtension empêche mon application de créer, car elle ne peut pas utiliser certaines choses dans les extensions d'application... dans ce cas, l'erreur concerne spécifiquement l'application partagée (elle apparaît en fait comme un problème dans RCTRedBox.m) . L'application se construit bien, même avec react-native-onesignal, jusqu'à ce que j'ajoute l'extension.
Environnement
réagir-natif-un-signal: 3.3.3
natif réactif : 0,59,9
SDK ajouté via fil, puis lien react-native react-native-onesignal
Étapes pour reproduire le problème :
Je n'ai pas eu le temps d'essayer de reproduire dans une autre application que la mienne... Sur mon application (donc vraisemblablement d'autres ?) :
Installer le SDK via le fil
Paquet de lien
pod installer
Ajoutez l'extension en suivant les instructions de https://documentation.onesignal.com/docs/react-native-sdk-setup#section -usage
Tenter de construire
Rien d'autre:
Tout dans le descriptif
Pourriez-vous s'il vous plaît inclure l'erreur complète? Ou une capture d'écran ?
Mise à jour : nous avons publié la version 3.4.0 qui devrait résoudre ce problème. Sinon, commentez et je rouvrirai. À votre santé
Salut, @rgomezp . J'ai cette erreur avec 3.4.1 pour le moment.
node_modules/react-native/React/DevSupport/RCTDevLoadingView.m:77:42 : 'sharedApplication' n'est pas disponible : non disponible sur iOS (App Extension) - Utilisez plutôt des solutions basées sur le contrôleur de vue, le cas échéant.
Je ne sais pas si cela s'applique à votre bibliothèque, mais je vous informerai
Donc.
OneSignalNotificationServiceExtension
est construit avec succès.OneSignalNotificationServiceExtension
avec le contenu par défaut (sans les importations Onesignal)target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
et lancé pod install
node_modules/react-native/React/DevSupport/RCTDevLoadingView.m:77:42 : 'sharedApplication' n'est pas disponible : non disponible sur iOS (App Extension) - Utilisez plutôt des solutions basées sur le contrôleur de vue, le cas échéant.
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 ,
Jetez un œil à ce débordement de pile qui peut vous aider. Si l'une des solutions proposées fonctionne pour vous, veuillez commenter ici afin que nous puissions fermer le ticket et aider toute autre personne susceptible de rencontrer le problème :
https://stackoverflow.com/questions/34225213/uiapplication-sharedapplication-not-available
ou
https://stackoverflow.com/questions/32031071/error-sharedapplication-is-unavailable-not-available-on-ios-app-extension
Merci @rgomezp. J'ai trouvé que mon podfile était faux. J'ai déplacé la cible "OneSignalNotificationServiceExtension" dans la mauvaise section hier. Tout fonctionne bien. Merci et désolé. je peux clore ce sujet
@indapublic ,
Pourriez-vous montrer à quoi ressemblait votre fichier pod lorsqu'il ne fonctionnait pas ? Cela aidera les gens à l'avenir s'ils font la même erreur
target 'app' do
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
end
Je n'ai pas encore beaucoup d'expérience avec les cocopodes, je pensais que les extensions dépendaient de l'application
J'ai rencontré exactement le même problème et, comme @indapublic , j'avais incorrectement ajouté l'extension à mon fichier Podfile. Je voulais juste ajouter un peu de clarté.
Ce problème survient lorsque vous ajoutez la cible du service dans la cible de votre application.
C'est faux:
target 'app' do
rn_path = '../node_modules/react-native'
....
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
end
C'est correct:
target 'app' do
rn_path = '../node_modules/react-native'
....
end
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
Cet extrait doit être sa propre cible de niveau supérieur et non une sous-cible de votre application.
Une fois corrigé, exécutez à nouveau pod install
.
Merci, c'est réglé pour moi aussi. J'avais l'impression que d'autres réponses suggéraient le contraire.
Commentaire le plus utile
J'ai rencontré exactement le même problème et, comme @indapublic , j'avais incorrectement ajouté l'extension à mon fichier Podfile. Je voulais juste ajouter un peu de clarté.
Ce problème survient lorsque vous ajoutez la cible du service dans la cible de votre application.
C'est faux:
C'est correct:
Cet extrait doit être sa propre cible de niveau supérieur et non une sous-cible de votre application.
Une fois corrigé, exécutez à nouveau
pod install
.