以前react-native init MyApp
は新しいReact Nativeアプリを初期化していました。これにより、パッケージとともにAndroidプロジェクトが作成されましたcom.myapp
。
このパッケージ名を変更する最良の方法は何com.mycompany.myapp
ですか。
私はそれを変更しようとしましたAndroidManifest.xml
が、それは他のエラーを作成したので、私はそれが方法ではないと仮定しています。
何か案が?
以前react-native init MyApp
は新しいReact Nativeアプリを初期化していました。これにより、パッケージとともにAndroidプロジェクトが作成されましたcom.myapp
。
このパッケージ名を変更する最良の方法は何com.mycompany.myapp
ですか。
私はそれを変更しようとしましたAndroidManifest.xml
が、それは他のエラーを作成したので、私はそれが方法ではないと仮定しています。
何か案が?
回答:
プロジェクトのサブフォルダの名前を「android / app / src / main / java / MY / APP / OLD_ID /」から「android / app / src / main / java / MY / APP / NEW_ID /」に変更しました
次に、古いパッケージIDと新しいパッケージIDを手動で切り替えます。
で: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java:
package MY.APP.NEW_ID;
ではアンドロイド/アプリ/ srcに/メイン/ javaの/ MY / APP / NEW_ID / MainApplication.java:
package MY.APP.NEW_ID;
ではアンドロイド/アプリ/ srcに/メイン/ 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
android/app/src/main/java/com/old_app_name/
が...com/new_app_name/
、動作するようです。
私はreact-native-rename * npmパッケージを使用しています。経由でインストール
npm install react-native-rename -g
次に、React Nativeプロジェクトのルートから、以下を実行します。
react-native-rename "MyApp" -b com.mycompany.myapp
パッケージ名を次のように変更するcom.myapp
には:(com.mycompany.myapp
例)、
android/app
のフォルダ。見つけるだろう// ...
defaultConfig {
applicationId com.myapp
// ...
}
// ...
com.myapp
を必要なものに変更します。
お役に立てれば。
./gradlew clean
、次に実行し./gradlew app:assembleRelease
ます。
applicationId
とローカルpackage
名は互いに独立していapplicationId
ます」、「デバイスとGoogle Playストアでアプリを一意に識別します」– developer.android.com/studio/build/application-id
No matching client found for package name 'xxxxx'
あなたは単に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
しかし告知ことは、このLIBはあなたの取り外しMainActivity.java
とMainApplication.java
。パッケージ名を変更する前に、この2つのファイルからバックアップを作成し、パッケージ名を変更した後、元の場所に戻します。この解決策は私にとってうまくいきます
Androidスタジオに移動
パッケージを右クリックします(おそらくcom)-> Refractor-> Rename->ダイアログに新しいパッケージ名を入力-> Do Refractor
どこでもパッケージ名を変更します。
initスクリプトは、あなたがそれを与えた(例えば、名前に基づいて、アンドロイドのためのユニークな識別子を生成com.acmeapp
するためにAcmeApp
)。
でapplicationIdキーを検索すると、生成された名前を確認できますandroid/app/build.gradle
。
その一意の識別子を変更する必要がある場合は、次に説明するようにしてください。
では/android
、フォルダのすべての出現置き換えるcom.acmeapp
ことによりをcom.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/
Android Studioを使用している場合
変更com.myapp
にcom.mycompany.myapp
下に新しいパッケージ階層com.mycompany.myappを作成します。 android/app/src/main/java
からすべてのクラスをコピーcom.myapp
しcom.mycompany.myapp
てAndroid Studio GUIを使用する
Android Studioは、コピーされたすべてのクラスに適切なパッケージ名を配置します。これは、カスタムモジュールがあり、すべての.javaファイルを手動で置き換えたくない場合に便利です。
アップデートandroid/app/src/main/AndroidManifest.xml
とandroid/app/build.gradle
(置き換えcom.myapp
にcom.mycompany.myapp
プロジェクトを同期する(gradle build)
@Chernivの答えに基づいた解決策があります(私にとってはmacOSで動作します)。2つの違い:私は同じことをするjavaフォルダーにMain2Activity.javaがあり、。/ gradlew cleanを呼び出すことはありません。
とにかく、私のソリューションはChernivの機能を実行しますが、1つのコードセットを使用して複数のアプリを構築していて、npmスクリプトを実行するたびにパッケージ名を簡単に変更できるようにしたいため、bashシェルスクリプトを作成しました。
これが私が使った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のコメントを編集する必要があります。コメントに「パッケージ」という単語が含まれています。スクリプトがどのように機能するかにより、「package」という単語が含まれる行をすべて置き換えて置き換えます。このため、同じスクリプトが別の場所で使用されている可能性があるため、このスクリプトは将来の保証がない可能性があります。
2番目の免責事項:最初の3つのsedコマンドは、javaFilesと呼ばれるディレクトリからJavaファイルを編集します。私はこのディレクトリを自分で作成しました。これは、そこからコピーされる1組のJavaファイルが必要なためです(将来、新しいパッケージを追加する可能性があるため)。あなたはおそらく同じことをしたいと思うでしょう。したがって、javaフォルダーからすべてのファイルをコピーし(そのサブフォルダーに移動して実際のJavaファイルを見つけます)、それらをjavaFilesという新しいフォルダーに配置します。
3番目の免責事項:スクリプトの上部と下部のパス(com.MyWebsite.MyAppNameからcom / MyWebsite / MyAppNameへのパス)と一致するように、packageName変数を編集する必要があります。
使用する
npx react-native-rename <newName>
カスタムバンドル識別子を使用(Androidのみ。iOSの場合は、Xcodeを使用してください)
$ npx react-native-rename <newName> -b <bundleIdentifier>
まず、新しいブランチに切り替えます(オプションですが推奨)
$ git checkout -b rename-app
次に、アプリの名前を変更します$ npx react-native-rename "Travel App"
カスタムバンドルIDを使用
$ npx react-native-rename "Travel App" -b com.junedomingo.travelapp
名前を変更したら、必ずandroidフォルダーに移動してを実行してくださいgradlew clean
。次に、メインプロジェクトに戻って実行しnpx react-native run-android
ます。
また、以前のプロジェクトにgoogle-services.jsonファイルがある場合は、それに応じて新しいファイルに変更します...次に行ってください:)
詳細はこちらhttps://github.com/junedomingo/react-native-rename#readme
あなたの名前を変更するための簡単な手順に従いますapp name
し、Package name
場合にあなたがアンドロイドフォルダ内の任意のカスタム変更を加えていない(すなわち。uはちょうどプロジェクトを初期化したシナリオ)
name
てpackage.json
ファイルのを変更して保存します。react-native upgrade
注:ivoteje50のコメントで述べたように、公式の手順に従ってキーストアを生成している場合は、androidフォルダーを削除しないでください。キーストアが削除され、新しいアプリに再度署名することはできません。
Android Studioに移動し、アプリを開いて、javaを右クリックし、[新規]、[パッケージ]の順に選択します。
希望する名前を付けます(例:com.something)。
他のパッケージ(名前を変更したい)から新しいパッケージにファイルを移動します。古いパッケージを削除します。
エディターでプロジェクトに移動し、ショートカットを使用してすべてのファイルを検索します(Macではshift cmd F)。古いパッケージの名前を入力します。すべての参照を新しいパッケージ名に変更します。
Android Studioに移動し、プロジェクトのビルド、クリーンアップ、プロジェクトの再ビルドを行います。
できた!
ハッピーコーディング:)
私はreact-native-renameパッケージを使用しました。
ターミナルでコマンドを実行してインストールします:
npm install react-native-rename -g
React Nativeプロジェクトのルートで、次のコマンドを実行します。
react-native-rename "NewNameOfApp" -b com.companyname.newnameofapp
以下でパッケージ名に必要なすべての変更を反映するreact-native-renameパッケージを使用できます。
ただし、java / comフォルダーにあるすべてのファイルのパッケージ名を手動で変更してください。スプラッシュスクリーンアクティビティを作成したときに、古いパッケージ名が更新されないためです。
android / app / src / main / AndroidManifest.xmlファイルに移動します-
更新:
要素アプリケーションの attr android:label as:
古い値-android:label = "@ string / app_name"
新しい値-android:label = "(配置する文字列)"
そして
要素アクティビティの attr android:label as:
古い値-android:label = "@ string / app_name"
新しい値-android:label = "(配置する文字列)"
私のために働いた、うまくいけばそれが助けになるでしょう。