React-native-onesignal: OneSignalNotificationServiceExtension causa problemas de compilação de sharedApplication

Criado em 10 set. 2019  ·  12Comentários  ·  Fonte: OneSignal/react-native-onesignal

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

Need More Information

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:

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.

Todos 12 comentários

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.

  1. O projeto sem OneSignalNotificationServiceExtension foi criado com sucesso.
  2. Adicionado OneSignalNotificationServiceExtension com conteúdo por padrão (sem importações Onesignal)
  3. Adicionado Onesignal ao podfile:
target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignal', '>= 2.9.3', '< 3.0'
end

e lançou pod install

  1. Então, tentando construir o projeto e vamos receber:

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.

Esta página foi útil?
0 / 5 - 0 avaliações