Categories
REACT NATIVE

Tôi đã update React Native như thế nào?

Vừa rồi mình đã update một dự án nhỏ lên bản mới nhất của React Native là 0.62. Những thông tin trong bản update sẽ được note ở đây https://reactnative.dev/blog/2020/03/26/version-0.62

Đại khái sẽ có một số điểm đáng chú ý sau:

  • Flipper: Một tool debug mới dành cho React Native
  • Tính năng mới cho dark mode
  • react-native-tvos

Vậy làm sao để anh em lên React Native bản mới nhất nào?

Ban đầu mình thử dùng lệnh sau

npx react-native upgrade

Cơ mà nó chỉ update mỗi react-native và react trong package.json

Nên mình đành phải check bằng tool: https://react-native-community.github.io/upgrade-helper/?from=0.61.2&to=0.62.0

Dành những sự tôn trọng nhất cho những developer phát triển React Native.

Khi check thì sẽ có quá nhiều thứ thay đổi nên mình nghĩ là mình nên làm theo nó

Mình có tách hẳn branch ra một nhánh để nâng cấp:

Tuy nhiên trong quá trình update sẽ có thể say ra các lỗi sau:

  • Chưa update thư viện trong package.json:
  • Chưa cài đặt Flipper cho iOS:

Và đây là những link mà mình search trong quá trình gặp lỗi:

Khi các bạn update react-native thì cũng nên chạy

npm update

Để nó update những package khác nữa

Và nên config thêm đoạn code cho Flipper trong Podfile nữa nhé

# Post Install processing for Flipper
def flipper_post_install(installer)
  installer.pods_project.targets.each do |target|
    if target.name == 'YogaKit'
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.1'
      end
    end
  end
  file_name = Dir.glob("*.xcodeproj")[0]
  app_project = Xcodeproj::Project.open(file_name)
  app_project.native_targets.each do |target|
    target.build_configurations.each do |config|
      cflags = config.build_settings['OTHER_CFLAGS'] || '$(inherited) '
      unless cflags.include? '-DFB_SONARKIT_ENABLED=1'
        puts 'Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS...'
        cflags << '-DFB_SONARKIT_ENABLED=1'
      end
      config.build_settings['OTHER_CFLAGS'] = cflags
    end
    app_project.save
  end
  installer.pods_project.save
end

Và trong project nên tạo thêm file swift để nó tạo ra file Bridging-Header

Leave a Reply

Your email address will not be published. Required fields are marked *