React-native-onesignal: libRCTOneSignal.a рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдЧре░ 2018  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: OneSignal/react-native-onesignal

рд╡рд┐рд╡рд░рдг:
рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдПрд╕рдбреАрдХреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ - https://documentation.onesignal.com/docs/react-native-sdk-setup

рдореИрдВрдиреЗ npm рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рд╣реИ react-native link рдФрд░ рд╕рд╛рде рд╣реА pod install ред рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд╣реЛ рдЧрдпрд╛ред

рдлрд┐рд░ рдореИрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВред рдЬрдм рдореИрдВ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдкрд╣реБрдБрдЪрддрд╛ рд╣реВрдБ рдЬрд╣рд╛рдБ рдореБрдЭреЗ Link Binary with Libararies рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ libRCTOneSignal.a рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдЙрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ рдЬреЛ Xcode рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

screen shot 2018-08-16 at 12 55 02 pm

рдпрд╣рд╛рдБ рдореЗрд░реА рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЦреЛрдЬ рдкреГрд╖реНрда рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ:
screen shot 2018-08-16 at 12 55 26 pm

рдЕрдм рдореИрдВрдиреЗ libreact-native-onesignal.a рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рд▓рд┐рдВрдХрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

ld: library not found for -lreact-native-onesignal
clang: error: linker command failed with exit code 1 (use -v to see invocation)

рд╡рд╛рддрд╛рд╡рд░рдг

  1. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА рдПрдХ рд╕рдВрдХреЗрдд - 3.2.6
  2. рдЖрд░рдПрди - 0.55.4
  3. рдПрдХреНрд╕рдХреЛрдб - 9.2
Help Wanted dependencies iOS

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

react-native link рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: DI рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ RCTOneSignal рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Libraries рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдлрд┐рд░ рдореИрдВ libRCTOneSignal.a рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк react-native link рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рд▓рд┐рдВрдХ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)

рд╕рднреА 26 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

react-native link рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: DI рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ RCTOneSignal рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Libraries рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдлрд┐рд░ рдореИрдВ libRCTOneSignal.a рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк react-native link рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рд▓рд┐рдВрдХ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)

рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛?

рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ RCTOneSignal рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП

@nickyhajal @abdul-elah-js @steverob рдХреНрдпрд╛ рдХреЛрдИ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ RCTOneSignal рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Libraries рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП?

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рднреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

@pacozaa рдЖрдк рдпрд╣рд╛рдВ рдлреЗрд╕рдмреБрдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://facebook.github.io/react-native/docs/linking-libraries-ios

node_modules/react-native-onesignal/ios рдЦреЛрд▓реЗрдВ, рдлрд┐рд░ RCTOneSignal.xcodeproj рдХреЛ XCode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлреЛрд▓реНрдбрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░реЗрдВ, рдлрд┐рд░ libRCTOneSignal.a рд╕рд░реНрдЪ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

screenshot at nov 30 16-21-30

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рд▓рд╛рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдХреЛрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВред

@rgomezp рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? libRCTOneSignal.a рдПрдХреНрд╕рдХреЛрдб 12 рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдХреЛрдб 11.7 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

@рд╢реНрд░реА рдЕрд▓реЗрдЦрд┐рди ,
ios рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдХрд░ pod deintegrate && pod install рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП Xcode 12 рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдкреЙрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ред

рд╣рд╛рдЙрдбреА,
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдк рдореЗрдВ рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ Xcode 12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ _not_ Cocoapods рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдкреЙрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ Xcode 12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдФрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред :(

рд▓рд┐рдм рдХреЛ рдкреЙрдбреНрд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЯрд╛рд░рдЧреЗрдЯ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреГрдкрдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдХрд┐ ASAP ЁЯЩП

@rgomezp рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЙрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдХреЛрдХреЛрдкреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ OneSignal рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ 0.59 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

react-native-onesignal рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рд╣реИрдВред рдпрд╣рд╛рдБ рдкреЙрдб рдЙрджрд╛рд╣рд░рдг рд╣реИ:

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'



target 'example' do
  # Comment the next line if you don't want to use dynamic frameworks
  # Pods for example
  pod 'Branch', '0.28.1'
  pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'
  pod 'React', :path => '../node_modules/react-native/'
end

target 'exampleDev' do
  # Comment the next line if you don't want to use dynamic frameworks
  # Pods for exampleDev
  pod 'Branch', '0.28.1'
  pod 'React', :path => '../node_modules/react-native/'
  pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'
end

target 'OneSignalNotificationServiceExtension' do
  # Comment the next line if you don't want to use dynamic frameworks
  pod 'OneSignal', '>= 2.14.2', '< 3.0'
  # Pods for OneSignalNotificationServiceExtension
end

target 'DevOneSignalNotificationServiceExtension' do
  # Comment the next line if you don't want to use dynamic frameworks
  pod 'OneSignal', '>= 2.14.2', '< 3.0'
  # Pods for DevOneSignalNotificationServiceExtension
end

@rgomezp рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ?

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ 0.59 (рдХреЛрдИ рдХреЛрдХреЛрдкреЛрдбреНрд╕ рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдпрд╣ рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг XCode 12 рдкрд░ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ

@rgomezp рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ?

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ 0.59 (рдХреЛрдИ рдХреЛрдХреЛрдкреЛрдбреНрд╕ рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдпрд╣ рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг XCode 12 рдкрд░ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ

рдореЗрд░рд╛ рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА 0.59 рдФрд░ Xcode 12 рдкрд┐рдЫрд▓реЗ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рдореИрдВ рд╡рд░реНрдгрд┐рдд рддреНрд░реБрдЯрд┐ рд╣реИред рдЕрджреНрдпрддрди рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡-рд╡рдирд╕рд┐рдЧреНрдирд▓ 3.9.2 . рдХреЛ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛

clang: error: no such file or directory: '/Users/leonardo/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a' Command Ld failed with a nonzero exit code

image

рдЕрджреНрдпрддрди 1:
рдЕрдЧрд░ рдореИрдВ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдРрдк рдмрдирд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдореИрдВ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ (рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде)

рдЕрдкрдбреЗрдЯ 2:
рдореИрдВ рднреМрддрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреА рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдкрдбреЗрдЯ 3:
рдореИрдВ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди onesignal рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╣рдорддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╕реВрдЪрдирд╛рдПрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 3.9.2 рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди xcode рдХреЛ 11.7 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдирд╛ рдФрд░ ios рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмреИрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рд╕рдорд╕реНрдпрд╛ xcode 12+ . рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ

рдореИрдВрдиреЗ XCode рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреИрд╕рд╛ рдХрд┐ @Tebrynn рдиреЗ рдХрд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдиреБрдЕрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ Cocoapods рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдерд╛ред
рдореИрдВрдиреЗ рдЕрднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ (https://documentation.onesignal.com/docs/react-native-sdk-setup)ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп?

рдореИрдВрдиреЗ рдЕрднреА Xcode12 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдмрд┐рд▓реНрдб рдкрд░ рднреА рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХреНрд╕рдХреЛрдб 12 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ libRCTOneSignal.a рдирд╣реАрдВ рдвреВрдВрдврдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВред
рдореИрдВрдиреЗ OneSignal рдХреЗ рд▓рд┐рдП arm64 рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд▓реЗрдЦ рдкрдврд╝реЗред рдореИрдВрдиреЗ рдЕрдм рддрдХ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд┐рд╕реНрдордд рдХреЗ рдЗрдиреНрд╣реЗрдВ рдЖрдЬрдорд╛рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдКрдВрдЧрд╛ред

рд╡рд╣реА рдореБрджреНрджрд╛, рдПрдХреНрд╕рдХреЛрдб 12.4 рдФрд░ рдЖрд░рдПрди 0.59.10ред

рдпрд╣рд╛рдБ рд╡рд╣реА рдореБрджреНрджрд╛ред

рд╣рд╛рдЙрдбреА,
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдиреНрдпреБрдЕрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд┐рд╕реА рддрд░рд╣ рдЯреВрдЯ рдЧрдПред рд╣рдореЗрдВ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдФрд░ рдЦреБрджрд╛рдИ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдмреАрдЪ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, Cocoapods рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди?

рд╣реИрд▓реЛ, рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡-рд╡рдирд╕рд┐рдЧреНрдирд▓ рд╕рдВрд╕реНрдХрд░рдг 4.0.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░ RCTOneSignal.xcodeproj рдореЗрдВ рдирд┐рд╣рд┐рдд рдмрд╛рдЗрдирд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ OneSignal рдХреЛ NotificationServiceExtension рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП Cocoapods рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЖрдк рдЕрдкрдиреЗ рдкреЙрдбрдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдлрд┐рд░ рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реЗрд╡рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрди рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

import UserNotifications

import OneSignal

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var receivedRequest: UNNotificationRequest!
    var bestAttemptContent: UNMutableNotificationContent?

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: <strong i="10">@escaping</strong> (UNNotificationContent) -> Void) {
        self.receivedRequest = request;
        self.contentHandler = contentHandler
        bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

        if let bestAttemptContent = bestAttemptContent {
            OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: self.bestAttemptContent)
            contentHandler(bestAttemptContent)
        }
    }

    override func serviceExtensionTimeWillExpire() {
        // Called just before the extension will be terminated by the system.
        // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
        if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
            OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
            contentHandler(bestAttemptContent)
        }
    }

}

рдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпрджрд┐ рдЖрдк Objective-C . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

#import <OneSignal/OneSignal.h>

#import "NotificationService.h"

<strong i="14">@interface</strong> NotificationService ()

<strong i="15">@property</strong> (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
<strong i="16">@property</strong> (nonatomic, strong) UNNotificationRequest *receivedRequest;
<strong i="17">@property</strong> (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;

<strong i="18">@end</strong>

<strong i="19">@implementation</strong> NotificationService

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
    self.receivedRequest = request;
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    [OneSignal didReceiveNotificationExtensionRequest:self.receivedRequest withMutableNotificationContent:self.bestAttemptContent];

    // DEBUGGING: Uncomment the 2 lines below and comment out the one above to ensure this extension is excuting
    //            Note, this extension only runs when mutable-content is set
    //            Setting an attachment or action buttons automatically adds this
    // NSLog(@"Running NotificationServiceExtension");
    // self.bestAttemptContent.body = [@"[Modified] " stringByAppendingString:self.bestAttemptContent.body];

    self.contentHandler(self.bestAttemptContent);
}

- (void)serviceExtensionTimeWillExpire {
    // Called just before the extension will be terminated by the system.
    // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.

    [OneSignal serviceExtensionTimeWillExpireRequest:self.receivedRequest withMutableNotificationContent:self.bestAttemptContent];

    self.contentHandler(self.bestAttemptContent);
}

<strong i="20">@end</strong>

рдкреВрд░рд╛ рд╕реЗрдЯрдЕрдк рдЧрд╛рдЗрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

cfmitrah picture cfmitrah  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

phantom1299 picture phantom1299  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mtt87 picture mtt87  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rfmejia picture rfmejia  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Luckygirlllll picture Luckygirlllll  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ