web-dev-qa-db-ja.com

React NativeでAndroidのパッケージ名を変更する

私はreact-native init MyAppを使って新しいReact Nativeアプリを初期化しました。これはとりわけcom.myappパッケージを持つAndroidプロジェクトを作成しました。

このパッケージ名を変更するための最善の方法は何ですか。例えば、com.mycompany.myapp

私はAndroidManifest.xmlでそれを変更しようとしましたが、それは他のエラーを引き起こしたので、私はそれが方法ではないと思います。

何か案が?

115
mllm

プロジェクトのサブフォルダー名を "Android/app/src/main/Java/MY/APP/OLD_ID /"から "Android/app/src/main/Java/MY/APP/NEW_ID / "

次に手動で新旧のパッケージIDを切り替えます。

で:アンドロイド/アプリ/ソース/メイン/ Java/MY/APP/NEW_ID/MainActivity.Java

package MY.APP.NEW_ID;

In Android/app/src/main/Java/MY/APP/NEW_ID/MainApplication.Java

package MY.APP.NEW_ID;

In Android/app/src/main/AndroidManifest.xml

package="MY.APP.NEW_ID"

そしてAndroid/app/build.gradle

applicationId "MY.APP.NEW_ID"

オプションAndroid/app/BUCK

Android_build_config(
  package="MY.APP.NEW_ID"
)
Android_resource(
  package="MY.APP.NEW_ID"
)

最後にGradle '(/ Androidフォルダ内)をクリーニングします。

./gradlew clean
269
Cherniv

私はreact-native-renamenpmパッケージを使います。

を使用してインストールする

npm install react-native-rename -g

それからReact Nativeプロジェクトのルートから以下を実行してください。

react-native-rename "MyApp" -b com.mycompany.myapp

npmでreact-native-rename

62
Javid Al Karuzi

パッケージ名をcom.myappからcom.mycompany.myappに変更するには(たとえば)、

  1. 反応アプリのiOSアプリの場合、xcode - 一般的に使用します。
  2. Androidアプリの場合は、モジュールレベルでbuild.gradleを開きます。 Android/appフォルダ内のもの。見つけるだろう

    ... defaultConfig { applicationId com.myapp ... } ...

"com.myapp"を必要なものに変更してください。

お役に立てれば。

9
Olusola Omosola

あなたは単にreact-native-rename npmパッケージを使うことができます。

を使用してインストールする

npm install react-native-rename -g

それからReact Nativeプロジェクトのルートから以下を実行してください。

react-native-rename "MyApp" -b com.mycompany.myapp

react-native-rename on npm

しかし、このライブラリはあなたのMainActivity.JavaMainApplication.Javaを削除します。あなたのパッケージ名を変更する前に、この2つのファイルからバックアップをとってください、そして、パッケージ名を変更した後にちょうど彼らの場所にそれを戻してください。この解決策は私のために働く

詳細情報: react-native-rename

7
Moein

Initスクリプトはあなたが与えた名前に基づいてAndroidのためのユニークな識別子を生成します(例えばAcmeAppのためのcom.acmeapp)。

Android/app/build.gradleでapplicationIdキーを探すことで、どの名前が生成されたかを見ることができます。

その一意の識別子を変更する必要がある場合は、以下の説明に従って変更してください。

/Androidフォルダーで、すべてのcom.acmeappcom.acme.appに置き換えます。

その後、次のコマンドでディレクトリ構造を変更します。

mkdir Android/app/src/main/Java/com/acme

mv Android/app/src/main/Java/com/acmeapp Android/app/src/main/Java/com/acme/app

アプリ識別子の各ドットにフォルダレベルが必要です。

ソース: https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/

6
Atul Yadav

Android Studioを使用している場合

com.myappcom.mycompany.myappに変更

  1. Android/app/src/main/Javaの下に新しいパッケージ階層com.mycompany.myappを作成します。

  2. Android Studio GUIを使用して、すべてのクラスをcom.myappからcom.mycompany.myappにコピーします。

  3. Androidスタジオは、コピーされたすべてのクラスに適したパッケージ名を付けるようにします。これは、カスタムモジュールがあり、すべての.Javaファイルを手動で置き換えたくない場合に便利です。

  4. Android/app/src/main/AndroidManifest.xmlAndroid/app/build.gradleを更新します(com.myappcom.mycompany.myappに置き換えます)

  5. プロジェクトを同期させる(グラドルビルド)

6
Varun Kumar

後藤アンドロイドスタジオ

パッケージを右クリックし(ほとんどの場合はcom) - > Refractor - >名前の変更 - >ダイアログに新しいパッケージ名を入力 - > Do Refractor

それはどこでもあなたのパッケージ名を改名します。

6
Aishwarya

私は@ Chernivの答えに基づいた解決策を持っています(私にとってはmacOSで動作します)。 2つの違い:私は同じことをするためにJavaフォルダーにMain2Activity.Javaを持っています、そしてそれは反応ネイティブパッケージャがとにかく自動的にそれをするように思われるので私は./gradlew cleanを呼ぶことを煩わしません。

とにかく、私の解決策はChernivがすることをすることを除いて私がそれのためにbashシェルスクリプトを作ったことを除いて私は1セットのコードを使って複数のアプリケーションを構築しています。

これが私が使ったbashスクリプトです。あなたが使いたいpackageNameを修正し、それにあなたがそれに欲しいものを追加する必要があるでしょう…しかし、ここで基本があります。 .shファイルを作成し、権限を付与してから、react-nativeを実行したのと同じフォルダーから実行します。

rm -rf ./Android/app/src/main/Java


mkdir -p ./Android/app/src/main/Java/com/MyWebsite/MyAppName
    packageName="com.MyWebsite.MyAppName"
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/Main2Activity.Java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/MainActivity.Java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/MainApplication.Java
    sed -i '' -e "s/.*package=\".*/    package=\""$packageName"\"/" ./Android/app/src/main/AndroidManifest.xml
    sed -i '' -e "s/.*package = '.*/  package = '"$packageName"',/" ./Android/app/BUCK
    sed -i '' -e "s/.*applicationId.*/    applicationId \""$packageName"\"/" ./Android/app/build.gradle

    cp -R ./Android/app/src/main/javaFiles/ ./Android/app/src/main/Java/com/MyWebsite/MyAppName

免責事項:あなたは最初にJavaファイルの下部近くにMainApplication.Javaのコメントを編集する必要があります。コメントにWordの「パッケージ」があります。このスクリプトはどのように機能するのかという理由で、その中のWordの「パッケージ」を含む任意の行を取り、それを置き換えます。このため、同じWordが他の場所で使用されている可能性があるため、このスクリプトは将来的には保証されない可能性があります。

免責事項:最初の3つのsedコマンドは、javaFilesというディレクトリからJavaファイルを編集します。このディレクトリを自分で作成したのは、そこからコピーした1組のJavaファイルが欲しいからです(将来新しいパッケージを追加する可能性があるため)。あなたはおそらく同じことをしたくなるでしょう。そのため、Javaフォルダからすべてのファイルをコピーし(そのサブフォルダをたどって実際のJavaファイルを見つけて)、それらをjavaFilesという新しいフォルダに配置します。

免責事項3:スクリプトの上部と下部のパスに一致するようにpackageName変数を編集する必要があります(com.MyWebsite.MyAppNameからcom/MyWebsite/MyAppNameへ)。

3
Kjell

簡単な手順に従って、app namePackage nameの名前を変更します。 Androidフォルダにカスタム変更を加えていない(つまり、プロジェクトを初期化しただけのシナリオ)

  1. 必要に応じて、package.jsonファイルのnameを変更して保存します。
  2. Androidという名前のフォルダを削除します。
  3. コマンドを実行しますreact-native upgrade

注: ivoteje5 のコメントに記載されているように、キーストアを生成するための公式の指示に従っている場合はAndroidフォルダを削除しないでください。これで新しいアプリに再度サインすることはできません。

1
Jose Kj

Android Studioに移動してアプリを開き、Javaを右クリックして[New]、[Package]の順に選択します。

好きな名前を付けます(例:com.something)。

他のパッケージ(名前を変更したいパッケージ)から新しいパッケージにファイルを移動します。古いパッケージを削除してください。

エディタでプロジェクトに移動し、すべてのファイルを検索するためのショートカットを使用します(Macではshift cmd F)。古いパッケージの名前を入力してください。すべての参照を新しいパッケージ名に変更してください。

Android Studio、ビルド、プロジェクトのクリーンアップ、プロジェクトの再ビルドに移動します。

完了しました。

ハッピーコーディング:)

0
Fotis Tsakiris

VS Codeで、Ctrl + Shift + Fを押して「検索」に古いパッケージ名を入力し、「置換」に新しいパッケージを入力します。次に、[すべての出現箇所を置換]を押します。

絶対に実用的な方法ではありません。しかし、それは私にとってはうまくいきました。

0
Kiran JD