ユーザ用ツール

サイト用ツール


reactnative:build

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
reactnative:build [2019/03/24 15:37]
ips
reactnative:build [2019/05/15 00:59] (現在)
ips
ライン 4: ライン 4:
  
 [[https://​qiita.com/​gonta616/​items/​b8c323167ac41323b8fa|React NativeでiOS,​ Androidのストア公開のTips]] [[https://​qiita.com/​gonta616/​items/​b8c323167ac41323b8fa|React NativeでiOS,​ Androidのストア公開のTips]]
 +
 +===== buildコマンド =====
  
 <​code>​ <​code>​
ライン 11: ライン 13:
  ⇒ android/​app/​build/​outputs/​apk/​app-release-unsigned.apk ができる。  ⇒ android/​app/​build/​outputs/​apk/​app-release-unsigned.apk ができる。
 </​code>​ </​code>​
 +
 +===== バージョン指定 =====
 +
  
 バージョンコードは バージョンコードは
ライン 22: ライン 27:
     }     }
 </​code>​ </​code>​
 +
 +===== keyストアの作成し署名付buildをする場合 =====
 +
 +[[http://​facebook.github.io/​react-native/​docs/​signed-apk-android.html|Generating Signed APK]]
 +
 +[[https://​ips.nekotype.com/​1504/​|コマンドプロンプトの文字コードを変更する]]
 +コマンドプロンプトの文字化けはshift-jisで直る
 +[[https://​docs.microsoft.com/​en-us/​windows/​desktop/​intl/​code-page-identifiers|Code Page Identifiers]]
 +<​code>​
 +// 932 shift_jis
 +> chcp 932
 +</​code>​
 +
 +C:\Program Files\Java\jdk1.8.0_201\bin\keytool.exeを使う
 +
 +<​code>​
 +> cd C:\Program Files\Java\jdk1.8.0_201\bin
 +> keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
 +
 +キーストアのパスワードを入力してください:​
 +新規パスワードを再入力してください:​
 +姓名は何ですか。
 +  [Unknown]: ​ [入力]
 +組織単位名は何ですか。
 +  [Unknown]: ​ [入力]
 +組織名は何ですか。
 +  [Unknown]: ​ [入力]
 +都市名または地域名は何ですか。
 +  [Unknown]: ​ [入力]
 +都道府県名または州名は何ですか。
 +  [Unknown]: ​ [入力]
 +この単位に該当する2文字の国コードは何ですか。
 +  [Unknown]: ​ [入力]
 +CN=[], OU=[], O=[], L=[], ST=tokyo, C=jpでよろしいですか。
 +  [いいえ]: ​ y
 +
 +10,​000日間有効な2,​048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています
 +        ディレクトリ名:​ CN=User, OU=person, O=nekotype, L=nakano, ST=tokyo, C=jp
 +<​my-key-alias>​の鍵パスワードを入力してください
 +        (キーストアのパスワードと同じ場合はRETURNを押してください):​[ENTER]
 +[my-release-key.keystoreを格納中]
 +
 +Warning:
 +JKSキーストアは独自の形式を使用しています。"​keytool -importkeystore -srckeystore my-release-key.keystore -destkeystore my-release-key.keystore -deststoretype pkcs12"​を使用する業界標準の形式であるPKCS12に移行することをお薦めします。
 +</​code>​
 +
 +「C:​\Program Files\Java\jdk1.8.0_201\bin」にできた「my-release-key.keystore」を、「C:​\Users\User\react\native_background_timer\android\app」にコピーする。
 +
 +android\gradle.propertiesを編集する。
 +<​code>​
 +# http://​www.gradle.org/​docs/​current/​userguide/​multi_project_builds.html#​sec:​decoupled_projects
 +# org.gradle.parallel=true
 +MYAPP_RELEASE_STORE_FILE=my-release-key.keystore ​ // add
 +MYAPP_RELEASE_KEY_ALIAS=my-key-alias // add
 +MYAPP_RELEASE_STORE_PASSWORD=key1976 // add
 +MYAPP_RELEASE_KEY_PASSWORD=key1976 // add
 +</​code>​
 +
 +android\app\build.gradleを編集する。
 +<​code>​
 +android {
 +    ・・・
 +    defaultConfig {
 +    ・・・
 +    }
 +    signingConfigs { // add
 +        release { // add
 +            if (project.hasProperty('​MYAPP_RELEASE_STORE_FILE'​)) { // add
 +                storeFile file(MYAPP_RELEASE_STORE_FILE) // add
 +                storePassword MYAPP_RELEASE_STORE_PASSWORD // add
 +                keyAlias MYAPP_RELEASE_KEY_ALIAS // add
 +                keyPassword MYAPP_RELEASE_KEY_PASSWORD // add
 +            } // add
 +        } // add
 +    }  // add
 +    splits {
 +    ・・・
 +    }
 +    buildTypes {
 +        release {
 +            minifyEnabled enableProguardInReleaseBuilds
 +            proguardFiles getDefaultProguardFile("​proguard-android.txt"​),​ "​proguard-rules.pro"​
 +            signingConfig signingConfigs.release //​ add
 +        }
 +    }
 +</​code>​
 +
 +androidディレクトリで
 +<​code>​
 +// assembleReleaseの綴に注意。
 +gradlew assembleRelease
 +</​code>​
 +
 +署名付きapkが出来上がる。
 +<​code>​
 +\android\app\build\outputs\apk\release\app-release.apk
 +</​code>​
 +
 +===== 実機にコマンドでインストールする =====
 +<​code>​
 +adb install -r [apkのパス]
 +// -rがないと2回目以降アンインストールしてからでないとインストールできない。
 +</​code>​
 +
 +
 +===== 依存関係を調べる =====
 +かなり長いTreeとなるのでfindstrで絞る
 +<​code>​
 +> cd android
 +> gradlew :​app:​dependencies | findstr "​xxxx"​
 +
 +・・・
 +    +--- com.google.android.gms:​play-services-basement:​16.0.1
 +|    \--- com.google.android.gms:​play-services-tasks:​16.0.1
 +|         \--- com.google.android.gms:​play-services-basement:​16.0.1 (*)
 ++--- com.google.android.gms:​play-services-basement:​16.0.1 (*)
 ++--- com.google.android.gms:​play-services-tasks:​16.0.1 (*)
 ++--- com.google.android.gms:​play-services-maps:​16.1.0
 +|    +--- com.google.android.gms:​play-services-base:​16.0.1 (*)
 +|    \--- com.google.android.gms:​play-services-basement:​16.0.1 (*)
 +|    |    \--- com.google.code.findbugs:​jsr305:​3.0.1 -> 3.0.2
 +|    +--- com.google.code.findbugs:​jsr305:​3.0.2
 ++--- com.google.code.findbugs:​jsr305:​3.0.2
 +・・・
 +</​code>​
 +
 +===== エラー =====
 +<​code>​
 +keytoolエラー:​ java.io.FileNotFoundException:​ my-release-key.keystore (アクセスが拒否されました。)
 +java.io.FileNotFoundException:​ my-release-key.keystore (アクセスが拒否されました。)
 +</​code>​
 +
 +コマンドプロンプトを管理者権限で実行する。
 +
 +===== エラー =====
 +<​code>​
 +signatures do not match the previously installed version; ignoring!
 +</​code>​
 +
 +実機でreleaseをインストールしたあと、そのままdebugしようとしいた。
 +relaseとdebugでは署名が異なるため発生。
 +
reactnative/build.1553409436.txt.gz · 最終更新: 2019/03/24 15:37 by ips