はまるところが多かったのでメモです。
Expo(CRNA)で作ったことを想定しています。
まずは、
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; が見つかりません
エラーがでるっぽいです。
んで、次に
npm run eject
すると、androidフォルダとかが作られます。
Ejected successfully!が表示されたら成功です。エラーが出てても大丈夫(多分)
次に、
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
に入れておきましょう
次に証明書の鍵を作ります。
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
いよいよビルドです
cd android gradlew assembleRelease
(注)なぜかgradlew assembleReleaseは2回実行しないと上手くビルドされませんでした。
(注)ライセンスがどうのこうの言われたら、SDKのパスまで移動して、./tools/bin/sdkmanager.bat --licenses
を実行してみてください
成功すると、andorid/app/build/outputs/apk
フォルダが作られ、apkファイルが中にいます。
鍵を使って署名します
my-release-key.keystoreというのがプロジェクトファイルに作られていると思うので、それをandroidフォルダ内にコピーしておいてください。
そして、以下を実行します
jarsigner -verbose -keystore my-release-key.keystore app/build/outputs/apk/app-release-unsigned.apk my-key-alias
次に、署名された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倍ぐらいは時間かかりました。
おそらくこの通りにやっていてもどこかで引っかかると思いますが、どうにかして調べてください。
読者登録はこちらからお願いします。