それで少し前に、反応するネイティブアプリの/ iosディレクトリを削除しました(Xと呼びましょう)。私はAndroidエミュレーターを使用して開発とテストを行ってきましたが、今ではXcodeシミュレーターなどを使用してiOS上で動作することを確認したいと思います。
私の現在のアイデアは、iosフォルダーで新しい反応ネイティブベアプロジェクトを作成し(Yと呼びましょう)、 これらの手順 に従ってYの名前を変更してXの名前を付け、/を移動することですiosディレクトリをYからXに移動し、run-ios
を試行します。
ここでその方法を更新しますが、より良い方法があり、以前にこのような状況になった人はいないのではないかと思いました。
「iosフォルダーを再生成する」、「iosフォルダーを削除する」、「iosフォルダーを既存のものに追加する」など、多くのことをグーグルで検索しましたが、何も役に立ちませんでした。たぶん私のgooglefuは十分ではありませんが、誰かが何か提案があれば、大歓迎です。
ステップ2では、依存関係などのためにコンパイルすることを確認しますが、今のところ、私の目標は/ iosフォルダーをプロジェクトに戻し、React Nativeがその存在を認識できるようにすることです(すべてを持っています)必要な設定)。
ありがとう
従う必要があるプロセスは、反応するネイティブアプリの名前を変更するのと非常に似ています。基本的に、ルートプロジェクトディレクトリでreact-native upgrade
を実行するだけです。詳細については、別の質問 here を確認してください。以下の手順では、コピーした新しい名前のプロジェクトに基づいて、別のリアクティブネイティブプロジェクトを作成する方法を説明します。
index.ios/Android.js
ファイルの名前を変更します。package.json
で名前とバージョンを適宜変更します/ios
および/Android
フォルダーを削除します。$react-native upgrade
を実行して、/ios
および/Android
フォルダーを再度生成します。$react-native link
を実行します。$react-native run-ios
または必要なものを実行します。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
参照: リンク
React-native 0.60.x以降、次を使用してios/Androidディレクトリを再生成できます。
react-native upgrade --legacy true
ここにクレジット: https://github.com/facebook/react-native/issues/25526
これは遅すぎますが、まだ同じ問題を抱えており、分離反応ネイティブアプリを持っている人のために、私がやったことは、分離アプリ上でexp detachを実行するだけで、iosフォルダが作成されました!
コメントで@Alokが言及したように、react-native eject
を実行してios
およびAndroid
フォルダーを生成できます。ただし、最初にプロジェクトにapp.json
が必要です。
{"name": "example", "displayName": "Example"}
リアクティブネイティブイジェクトは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フォルダーが再生成されなかったため、取り出しが必要でした。
私もこの問題に気づきましたが、解決しました。
確かに「react-native upgrade」コマンドを実行すると、更新する必要がないというメッセージが表示されるか、コマンド「react-native eject」でコマンドが認識されないというメッセージが表示されます。
反応ネイティブアップグレード
ここで、「react-native upgrade --legacy true」コマンドを使用して、Androidフォルダーまたはiosをバックアップする必要があります。このコマンドはファイルを置き換える場合があるためです。
反応ネイティブアップグレード-レガシーtrue
今では、package.jsonを置き換えないように言っているだけです。