Я переношу проект с 0.59 на 0.63. Я подумал, что было бы проще создать новый проект, используя 0.63, а затем добавить все зависимости, чтобы я мог получать актуальные версии таких вещей, как Podfile и project settings.gradle. Итак, я создал новый проект, используя
react-native init myapp-clean
. Затем я приступил к добавлению зависимостей моего проекта одну за другой, т.е.
yarn add '@react-native-community/slider'
yarn add 'axios'
....
Прочитав об автоматической привязке, я ожидается, что каждая зависимость будет автоматически добавлена в package. json, Podfile и settings.gradle. К моему удивлению, они были добавлены только в пакет. json. После добавления всех зависимостей Podfile не изменился по сравнению с исходным, созданным при инициализации проекта.
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '10.0'
target 'JuvoClean' do
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
target 'JuvoCleanTests' do
inherit! :complete
# Pods for testing
end
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
use_flipper!
post_install do |installer|
flipper_post_install(installer)
end
end
target 'JuvoClean-tvOS' do
# Pods for JuvoClean-tvOS
target 'JuvoClean-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
end
Файл settings.gradle также не изменился:
rootProject.name = 'JuvoClean'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
Конечно возникла проблема, я все равно решил попробовать запустить установку pod, чтобы посмотреть, что произойдет, и, к моему удивлению, он сообщил, что устанавливает все модули, упомянутые в package. json, т.е.
ios$ pod install
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
Adding a custom script phase for Pod RNFBCrashlytics: [RNFB] Crashlytics Configuration
Auto-linking React Native modules for target `myapp-clean`: BVLinearGradient, Interactable, RNFBAnalytics, RNFBApp, RNFBCrashlytics, RNFBMessaging, RNPermissions, react-native-image-picker, react-native-maps, react-native-slider, and tipsi-stripe
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Downloading dependencies
Installing BVLinearGradient (2.5.6)
Installing CocoaAsyncSocket (7.6.4)
...
Installing react-native-slider (3.0.3)
Installing tipsi-stripe (7.5.3)
Generating Pods project
Integrating client project
Pod installation complete! There are 58 dependencies from the Podfile and 64 total pods installed.
После этого я смог создать новый проект как в xcode, так и в Android Studio.
Я предполагаю, что к встроенной интеграции реакции с cocoapods и gradle добавлено несколько новых magi c для автоматической вводить зависимости из пакета. json во время выполнения / компиляции? Я ничего не нашел об этом в документации, но хочу разобраться, прежде чем начинать обновлять свой проект.