Вместо:
#import <React/RCTBridgeModule.h>
Обычно вы решаете использовать это в 0.59x версиях:
#if __has_include("RCTBridgeModule.h")
#import "RCTBridgeModule.h"
#else
#import <React/RCTBridgeModule.h>
#endif
Однако из RN > = v0.60x , нам нужно добавить .podspe c в podfile для любой сторонней / пользовательской библиотеки, которая жалуется, что не может найти React / {what.h}. Поэтому, пожалуйста, не добавляйте файл .a в ваш Xcode Linked Framework and Libraries
.
. Чтобы решить эту проблему, мы можем начать делать:
Скопируйте podspec
из другой сторонней библиотеки (например, RNDeviceInfo / et c ..);
Создайте собственный podspec
, заменив несколько элементов (например, s.name , s.source , s.source_files )
s.name = "MyPayPalLib"
s.source = { :git => "https://github.com/my-super-repo/paypal-lib-repo.git", :tag => "v#{s.version}" }
.
Следуйте следующим шагам, следя за тем, чтобы ваша библиотека размещалась на npm / yarn / git (удаленно) или сохранялась локально в директории вашего проекта.
.
A. Если удаленная библиотека:
Добавьте это для отслеживания всех ваших файлов lib: s.source_files = "ios/**/*.{h,m}"
Добавьте новую библиотеку в Podfile: pod 'MyPayPalLib', :path => '../node_modules/MyPayPalLib'
Do pod install
B. Если Локальная библиотека:
- Создайте этот custom.podspe c по тому же пути к пользовательской библиотеке, в противном случае вам потребуется изменить указанный выше путь
s.source
по мере необходимости.
s.source = { :http => 'file:' + __dir__ + '/' }
s.source_files = "customLib/*.{h,m}"
Добавить новую библиотеку в Podfile: pod 'MyPayPalLib', :path => '../localLibFolder/MyPayPalLib'
Сделать pod install
РЕШЕНИЕ:
После исправления ошибки: 'React/RCTBridgeModule.h' file not found in React Native 0.61.2
, объект NativeModules
был пуст.
Итак, после некоторых исследований мы обнаружили проблему: s.source_files
prop имел неправильное значение!
Всегда соблюдайте осторожность при использовании правильного s.source_files
podspe c prop.
ОП использовал: s.source_files = "react-native-paypal-sdk/*.{h,m}"
Однако это должно быть: s.source_files = "ios/**/*.{h,m}"
Это рекомендуемый способ для удаленного хранилища.