LoginSignup
31
25

More than 5 years have passed since last update.

React Nativeアプリをビルドする手順(Android)

Last updated at Posted at 2018-02-22

はまるところが多かったのでメモです。

Expo(CRNA)で作ったことを想定しています。

react-native-cliで作った方は3番まで飛ばしてください

1. 雛型の作成

まずは、

create-react-native-app UpTest
cd UpTest

で適当に作ります。ただし、名前「UpTest」はのちのちパッケージ名になるので、複雑な名前にしておかないと、リリース時にコンフリクトしてリリースできなくなるので注意です!

<ライブラリ追加したり、ソースを書いたりしてアプリを作りこんでいく>

(Tips)

native-baseをつかうときは、

npm i -S @expo/vector-icons

を忘れないように。

また、このとき、

  async componentWillMount() {
    await Expo.Font.loadAsync({
      'Roboto': require('native-base/Fonts/Roboto.ttf'),
      'Roboto_medium': require('native-base/Fonts/Roboto_medium.ttf'),
    });
  }

も忘れないようにする

Expo XDEで作ると、package.jsonの"react-native": "0.52.0","react-native": "https://github.com/expo/react-native/archive/sdk-25.0.0.tar.gz"に変更しろと言われる。

一時的に変えてもいいけど、ejectするまえに戻しておかないと、import com.facebook.react.ReactApplication; が見つかりませんエラーがでるっぽいです。

2. eject

んで、次に

npm run eject

すると、androidフォルダとかが作られます。

Ejected successfully!が表示されたら成功です。エラーが出てても大丈夫(多分)

3. ネイティブファイルをいじる

次に、

android/app/build.gradle

のminSdkVersionを19に、

android/app/src/main/AndroidManifest.xml

のandroid:minSdkVersionを19に上げておきます。

これをしておかないと、鍵をRSAで作っても(後述)対応していないようです。

あと、android/にlocal.propertiesという名前のファイルを作って、中身を以下のようにします。

sdk.dir=C:/Users/○○/AppData/Local/Android/Sdk

ここは自身のSDKの場所を書いてください

このタイミングで、アプリのアイコンなどを

android/app/src/main/res

に入れておきましょう

4. 証明書つくる

次に証明書の鍵を作ります。

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

5. ビルド

いよいよビルドです

cd android
gradlew assembleRelease

(注)なぜかgradlew assembleReleaseは2回実行しないと上手くビルドされませんでした。

(注)ライセンスがどうのこうの言われたら、SDKのパスまで移動して、./tools/bin/sdkmanager.bat --licensesを実行してみてください

成功すると、andorid/app/build/outputs/apkフォルダが作られ、apkファイルが中にいます。

6.署名

鍵を使って署名します

my-release-key.keystoreというのがプロジェクトファイルに作られていると思うので、それをandroidフォルダ内にコピーしておいてください。

そして、以下を実行します

jarsigner -verbose -keystore my-release-key.keystore app/build/outputs/apk/app-release-unsigned.apk my-key-alias

7.ファイルの最適化

次に、署名されたapkファイルを最適化します

zipalign -f -v 4 app/build/outputs/apk/app-release-unsigned.apk my-app.apk

もしzipalignが無いといわれたら、SDKフォルダの中にあるビルドツールをPATHに追加します。以下のようなファイルです

C:\Users\○○\AppData\Local\Android\Sdk\build-tools\23.0.1

以上でビルド作業の終了です。

やること多すぎ+エラー出すぎで開発の3倍ぐらいは時間かかりました。

おそらくこの通りにやっていてもどこかで引っかかると思いますが、どうにかして調べてください。

31
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
25