Как я могу восстановить папку ios в проекте React Native?

Итак, некоторое время назад я удалил каталог /ios в своем собственном приложении для реагирования (позвольте назвать его X). Я разрабатывал и тестировал с использованием эмулятора Android, но теперь я хотел бы убедиться, что он работает на ios с симулятором xcode и т.д.

Итак, моя текущая идея заключается в создании нового реагирования на собственный голый проект (пусть его называют Y) с папкой ios, затем следуйте этим шагам переименуйте Y так, чтобы он имел имя X, а затем переместил каталог /ios из Y в X и попытался run-ios.

Я расскажу, как это происходит, но я подумал, есть ли лучший способ, и до сих пор никто не был в этой ситуации?

Я googled много вещей "обновить папку ios" "удаленная папка ios" добавить папку ios в существующую.. "и ничего полезного. Может быть, мой googlefu недостаточно хорош, но если у кого-то есть какие-то предложения, очень ценятся.

Шаг 2 будет следить за тем, чтобы он компилировался из-за зависимостей и других вещей, но на данный момент моя цель - просто вернуть папку /ios в проект, а React Native - узнать о ее существовании (он имеет всю необходимую конфигурацию).

Спасибо

Ответ 1

Процесс, который вам нужен, настолько похож на переименование соответствующего приложения. В основном вам просто нужно запустить react-native upgrade в корневой каталог проекта. Для получения дополнительной информации вы можете проверить еще один вопрос здесь. В приведенных ниже инструкциях объясняется, как создать другой ответный родной проект на основе скопированного с новым именем.

  • Сначала скопируйте каталог, в котором существует ваше приложение, изменившее ваше имя. И перейдите в свой недавно клонированный каталог.
  • Измените имя в файле index.ios/android.js, который указан как параметр для AppRegistry.
  • Измените имя и версию соответственно на package.json
  • Удалить /ios и /android папки, оставшиеся из вашего старого приложения.
  • Запустите $react-native upgrade, чтобы сгенерировать папки /ios и /android.
  • Запустите $react-native link для любой нативной зависимости.
  • Наконец запустите $react-native run-ios или что угодно.

Ответ 2

Просто удалите/удалите android и ios (сохраните резервную копию android и папки ios) и выполните следующую команду:

  react-native eject

Supported version : 
    react-native <= 0.59.10
    react-native-cli <= 1.3.0 



   react-native upgrade --legacy true

Supported version : 
        react-native >= 0.59.10
        react-native-cli >= 1.3.0 

Ссылка: ссылка

Ответ 3

Обратите внимание, что по отношению кative-native 0.60.x вы можете использовать следующее для регенерации каталогов ios/android:

react-native upgrade --legacy true

Кредит здесь: https://github.com/facebook/react-native/issues/25526

Ответ 4

Это слишком поздно, но для тех, кто все еще испытывает ту же проблему и имеет автономное реагирующее нативное приложение, то, что я сделал для меня, я просто запускаю exp detach поверх моего отсоединенного приложения, и оно создает папку ios!

Ответ 5

Как упомянул @Alok в комментариях, вы можете сделать react-native eject для создания папок ios и android. Но сначала вам понадобится app.json в вашем проекте.

{"name": "example", "displayName": "Example"}

Ответ 6

Я тоже оказался с этой проблемой, но я решил ее.

Конечно, при выполнении команды "Resact-Native Update" они сообщали им, что не нужно обновлять, или с помощью команды "React-Native Eject", что команда не распознана.

Реактивное обновление

Теперь вы должны использовать команду "act-native upgrade --legacy true "для резервного копирования папок Android или ios в зависимости от ситуации, поскольку эта команда заменит ваши файлы.

Реактивное обновление --legacy true

Теперь он просто говорит вам не заменять ваш package.json

Ответ 7

Так как в 60.3 устаревшая реакция на исходный код устарела, и я получал ошибки diff, пытаясь обновить форму с 60.1 до 60.3, регенерация папки Android не работала.

Мне пришлось

rm -R node_modules

Затем обновите реакцию-родной в package.json до 59.1 (удалите package-lock.json)

Бежать

npm install

react-native eject

Это восстановит ваши папки Android и IOS. Наконец, обновите до 60,3

react-native upgrade

Реактивное обновление при возвращении назад и 59.1 не регенерировало мою папку Android, поэтому удаление было необходимо.

Ответ 8

Сначала удалите папку ios

 react-native eject 
 cd ios/ 
 pod init 
 pod install 
 cd .. 
 react-native link 
 cd ios 
 open *.xcworkspace/