web-dev-qa-db-ja.com

React Nativeプロジェクトでiosフォルダーを再生成するにはどうすればよいですか?

それで少し前に、反応するネイティブアプリの/ iosディレクトリを削除しました(Xと呼びましょう)。私はAndroidエミュレーターを使用して開発とテストを行ってきましたが、今ではXcodeシミュレーターなどを使用してiOS上で動作することを確認したいと思います。

私の現在のアイデアは、iosフォルダーで新しい反応ネイティブベアプロジェクトを作成し(Yと呼びましょう)、 これらの手順 に従ってYの名前を変更してXの名前を付け、/を移動することですiosディレクトリをYからXに移動し、run-iosを試行します。

ここでその方法を更新しますが、より良い方法があり、以前にこのような状況になった人はいないのではないかと思いました。

「iosフォルダーを再生成する」、「iosフォルダーを削除する」、「iosフォルダーを既存のものに追加する」など、多くのことをグーグルで検索しましたが、何も役に立ちませんでした。たぶん私のgooglefuは十分ではありませんが、誰かが何か提案があれば、大歓迎です。

ステップ2では、依存関係などのためにコンパイルすることを確認しますが、今のところ、私の目標は/ iosフォルダーをプロジェクトに戻し、React Nativeがその存在を認識できるようにすることです(すべてを持っています)必要な設定)。

ありがとう

56
Tam Borine

従う必要があるプロセスは、反応するネイティブアプリの名前を変更するのと非常に似ています。基本的に、ルートプロジェクトディレクトリでreact-native upgradeを実行するだけです。詳細については、別の質問 here を確認してください。以下の手順では、コピーした新しい名前のプロジェクトに基づいて、別のリアクティブネイティブプロジェクトを作成する方法を説明します。

  • 最初に、名前を変更するアプリケーションが存在するディレクトリをコピーします。そして、新しくクローンしたディレクトリに移動します。
  • AppRegistryのパラメーターとして指定されているindex.ios/Android.jsファイルの名前を変更します。
  • package.jsonで名前とバージョンを適宜変更します
  • 古いアプリから残っている/iosおよび/Androidフォルダーを削除します。
  • $react-native upgradeを実行して、/iosおよび/Androidフォルダーを再度生成します。
  • ネイティブの依存関係に対して$react-native linkを実行します。
  • 最後に$react-native run-iosまたは必要なものを実行します。
99
milkersarac

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 

参照: リンク

40
Khurshid Ansari

React-native 0.60.x以降、次を使用してios/Androidディレクトリを再生成できます。

react-native upgrade --legacy true

ここにクレジット: https://github.com/facebook/react-native/issues/25526

15

これは遅すぎますが、まだ同じ問題を抱えており、分離反応ネイティブアプリを持っている人のために、私がやったことは、分離アプリ上でexp detachを実行するだけで、iosフォルダが作成されました!

2
Mizlul

コメントで@Alokが言及したように、react-native ejectを実行してiosおよびAndroidフォルダーを生成できます。ただし、最初にプロジェクトにapp.jsonが必要です。

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

リアクティブネイティブイジェクトは60.3で減価され、フォーム60.1を60.3にアップグレードしようとするとdiffエラーが発生していたため、Androidフォルダーが再生成されませんでした。

そうしなければならなかった

rm -R node_modules

次に、package.jsonのreact-nativeを59.1に更新します(package-lock.jsonを削除します)

走る

npm install

react-native eject

これにより、Androidおよびiosフォルダーが再生成されます最終的に60.3にアップグレードします

react-native upgrade

戻ると59.1が反応するネイティブアップグレードでAndroidフォルダーが再生成されなかったため、取り出しが必要でした。

0
Paul Gehrke

私もこの問題に気づきましたが、解決しました。

確かに「react-native upgrade」コマンドを実行すると、更新する必要がないというメッセージが表示されるか、コマンド「react-native eject」でコマンドが認識されないというメッセージが表示されます。

反応ネイティブアップグレード

ここで、「react-native upgrade --legacy true」コマンドを使用して、Androidフォルダーまたはiosをバックアップする必要があります。このコマンドはファイルを置き換える場合があるためです。

反応ネイティブアップグレード-レガシーtrue

今では、package.jsonを置き換えないように言っているだけです。

0
Manju Priya