Descrição:
Adicionar o OneSignalNotificationServiceExtension de destino faz com que meu aplicativo não consiga construir, devido à impossibilidade de usar certas coisas em extensões de aplicativo ... neste caso, o erro é especificamente sobre sharedApplication (ele realmente aparece como um problema em RCTRedBox.m) . O aplicativo constrói bem, mesmo com sinal de reação nativo, até eu adicionar a extensão.
Ambiente
sinal-reativo-nativo: 3.3.3
reagente nativo: 0,59,9
SDK adicionado via yarn e, em seguida, link react-native react-native-oneignal
Etapas para reproduzir o problema:
Não tive tempo de tentar reproduzir em um aplicativo diferente do meu ... No meu aplicativo (presumivelmente em outros?):
Instale o SDK via yarn
Pacote de links
instalação de pod
Adicione a extensão seguindo as instruções de https://documentation.onesignal.com/docs/react-native-sdk-setup#section -usage
Tentativa de construir
Algo mais:
Tudo na descrição
Você poderia incluir o erro completo? Ou uma captura de tela?
Atualização: lançamos a versão 3.4.0 que deve corrigir esse problema. Caso contrário, comente e reabrirei. Saúde
Olá, @rgomezp . Eu tenho este erro com 3.4.1 no momento.
node_modules / react-native / React / DevSupport / RCTDevLoadingView.m: 77: 42: 'sharedApplication' não está disponível: não disponível no iOS (extensão de aplicativo) - Use soluções baseadas em controlador de visualização quando apropriado.
Não tenho certeza se isso se aplica à sua biblioteca, mas vou informá-lo
Então.
OneSignalNotificationServiceExtension
foi criado com sucesso.OneSignalNotificationServiceExtension
com conteúdo por padrão (sem importações Onesignal)target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
e lançou pod install
node_modules / react-native / React / DevSupport / RCTDevLoadingView.m: 77: 42: 'sharedApplication' não está disponível: não disponível no iOS (extensão de aplicativo) - Use soluções baseadas em controlador de visualização quando apropriado.
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 ,
Dê uma olhada neste estouro de pilha que pode ajudar. Se alguma das soluções propostas funcionar para você, comente aqui para que possamos fechar o tíquete e ajudar qualquer outra pessoa que possa ter o problema:
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
Obrigado, @rgomezp. Descobri que meu podfile estava errado. Mudei o destino "OneSignalNotificationServiceExtension" na seção errada ontem. Tudo funciona bem. Obrigado e desculpe. Eu posso fechar este problema
@indapublic ,
Você poderia mostrar como ficava o seu podfile quando não estava funcionando? Isso ajudará as pessoas no futuro se cometerem o mesmo erro
target 'app' do
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
end
Não tenho muita experiência com cocoapods ainda, mas as extensões eram dependentes do aplicativo
Passei exatamente pelo mesmo problema e, como @indapublic , adicionei a extensão ao meu Podfile incorretamente. Só queria acrescentar alguma clareza.
Esse problema surge quando você adiciona o destino do serviço dentro do destino do seu aplicativo.
Isto está errado:
target 'app' do
rn_path = '../node_modules/react-native'
....
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
end
Isto está correto:
target 'app' do
rn_path = '../node_modules/react-native'
....
end
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.9.3', '< 3.0'
end
Este snippet precisa ser seu próprio destino de nível superior e não um sub-destino de seu aplicativo.
Depois de corrigido, execute pod install
novamente.
Obrigado, isso consertou para mim também. Tive a impressão de que outras respostas sugeriam o contrário.
Comentários muito úteis
Passei exatamente pelo mesmo problema e, como @indapublic , adicionei a extensão ao meu Podfile incorretamente. Só queria acrescentar alguma clareza.
Esse problema surge quando você adiciona o destino do serviço dentro do destino do seu aplicativo.
Isto está errado:
Isto está correto:
Este snippet precisa ser seu próprio destino de nível superior e não um sub-destino de seu aplicativo.
Depois de corrigido, execute
pod install
novamente.