npm install -g react-native-cli npm install -g create-react-native-app npm install -g watchman
建立工程html
create-react-native-app sample
啓動工程html5
cd sample yarn start
經過 expo 來查看運行結果java
解壓 sdk 到 opt/androidreact
配置 .zshenv / .bashenvandroid
export ANDROID_HOME=/opt/android export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools
安裝 platform-toolsc++
cd $ANDROID_HOME ./tools/bin/sdkmanager platform-tools
安裝 build-toolsgit
cd $ANDROID_HOME ./tools/bin/sdkmanager "build-tools;23.0.1"
yarn eject cd android keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000
建立簽名時,密碼用 123456github
vim ./android/gradle.propertiesnpm
MYAPP_RELEASE_STORE_FILE=my-app-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-app-alias MYAPP_RELEASE_STORE_PASSWORD=123456 MYAPP_RELEASE_KEY_PASSWORD=123456把生成的文件 my-app-key.keystore 放入 android/app 文件夾下
vim ./android/app/build.gradlevim
android { defaultConfig {... ...} signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { ... ... signingConfig signingConfigs.release } } }
cd android ./gradlew assembleRelease
生成的 apk 在 app/build/outputs/apk 下
修改以下內核參數後再啓動:
sudo sysctl -w fs.inotify.max_user_watches=1000000
永久修改此參數,能夠把這個配置加入到: /etc/sysctl.conf 中
java.io.IOException: Cannot run program "/opt/android/build-tools/23.0.1/aapt": error=2, No such file or directory
安裝 確實的 package
sudo apt-get install lib32stdc++6 lib32z1
安裝相應的 package
cd .. yarn add babel-preset-react-native-stage-0 cd android ./gradlew assembleRelease