Как обновить с React ^ 0.14.8 и React-native ^ 0.24.1 до React 15.0.2 и React-native 0.26.3

#ios #react-native

#iOS #react-native

Вопрос:

У меня версия Xcode 7.3.1 версия узла v4.4.6 и версия npm 3.8.6

Итак, прямо сейчас мое приложение ios React Native создается без проблем, но я пытаюсь использовать библиотеку: https://github.com/aksonov/react-native-router-flux/blob/master/docs/MIGRATION.md

для этого требуется версия React-native 0.26.3

Итак, я проверил https://github.com/facebook/react-native/blob/0.26-stable/package.json и обнаружил, что существует стабильная версия React-native 0.26.3 и React 15.0.2

Итак, я изменил свои зависимости от своего проекта в package.json, удалил свою node_modules папку и переустановил.

   "dependencies": {
    "react": "15.0.2",
    "react-native": "0.26.3",
    "react-native-sound": "^0.8.3",
    "react-redux": "^4.4.5",
    "redux": "^3.5.2",
    "redux-thunk": "^2.1.0"
  }
  

Однако мое приложение больше не работает, и я продолжаю получать эту ошибку при запуске. Как мне правильно перейти на React 15?

 ld: warning: object file (/Users/appollo_liu/Documents/workspace/laybium_workspace/laybium/ios/build/Build/Products/Debug-iphonesimulator/libRNSound.a(RNSound.o)) was built for newer iOS version (9.0) than being linked (7.0)
Undefined symbols for architecture x86_64:
  "std::terminate()", referenced from:
      ___clang_call_terminate in libReact.a(RCTJSCExecutor.o)
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in libReact.a(RCTJSCExecutor.o)
  "___gxx_personality_v0", referenced from:
      -[RCTJavaScriptContext initWithJSContext:onThread:] in libReact.a(RCTJSCExecutor.o)
      -[RCTJavaScriptContext init] in libReact.a(RCTJSCExecutor.o)
      -[RCTJavaScriptContext invalidate] in libReact.a(RCTJSCExecutor.o)
      _RCTNSErrorFromJSError in libReact.a(RCTJSCExecutor.o)
       [RCTJSCExecutor runRunLoopThread] in libReact.a(RCTJSCExecutor.o)
      -[RCTJSCExecutor init] in libReact.a(RCTJSCExecutor.o)
      -[RCTJSCExecutor context] in libReact.a(RCTJSCExecutor.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **


The following build commands failed:
    Ld build/Build/Products/Debug-iphonesimulator/laybium.app/laybium normal x86_64
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/laybium.app
An error was encountered processing the command (domain=LaunchServicesError, code=0):
The operation couldn’t be completed. (LaunchServicesError error 0.)
Launching org.reactjs.native.example.laybium
An error was encountered processing the command (domain=FBSOpenApplicationErrorDomain, code=4):
The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 4.)
  

Комментарии:

1. Вы вообще смотрели это руководство ? Вы запустили react-native upgrade ? Он предназначен для обновления всех зависимостей и файлов, которые поставляются с react native, для новой версии. Вам нужно будет зайти и вручную исправить все значения, которые впоследствии перезаписывает обновление.

2. обновление не работает, чтобы перейти на react native 0.26, я пытаюсь перейти с 0.14 -> 0.26.3

Ответ №1:

Сначала обновите свой react-native до более новой версии, а затем запустите это react-native upgrade в корне вашего проекта.