我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。

然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。

我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?

更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。


当前回答

我有另一个解决办法:- 生成签名密钥 您可以使用keytool生成一个私有签名密钥。在Windows上,keytool必须从C:\Program Files\Java\jdkx.x.x_x\bin.运行

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

把我的释放钥匙放上去。在项目文件夹的android/app目录下的Keystore文件。

编辑文件android/app/build。Gradle在你的项目文件夹,并添加签名配置,

android {
....
signingConfigs { 
  release { 

      storeFile file('my-release-key.keystore') 
      storePassword 'yourpassword' 
      keyAlias 'my-key-alias' 
      keyPassword 'yourpassword' 

  } 
}}}


buildTypes {release {signingConfig signingConfigs.release}}

和运行

gradlew assembleRelease

这将给你两个文件在android\app\build\outputs\apk App-release.apk和app-release-unsigned.apk 现在在你的android设备上安装app-release.apk。

其他回答

希望对初学者有所帮助

这里是官方文档

如果您没有密钥存储库,请使用之前的命令否则跳过

生成签名密钥/ Keystore文件 您可以使用keytool生成一个私有签名密钥。在Windows上,keytool必须从C:\Program Files\Java\jdkx.x.x_x\bin.运行

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

您将得到一个类似my-release-key.keystore的文件

设置gradle变量 把我的释放钥匙放上去。在项目文件夹的android/app目录下的Keystore文件。 编辑文件android/gradle。属性并添加以下内容(将*****替换为正确的密钥库密码、别名和密钥密码), enableAapt2设置为false是变通的,因为android gradle 3.0版本的问题

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

android.enableAapt2=false

然后添加这些app/ build。gradle(应用)

下面是默认配置

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
            }
        }

和Inside Build类型release {}

 signingConfig signingConfigs.release

然后在android studio终端上简单地运行这个命令 以下命令将自动回答以上所有问题

如果窗户

cd android
gradlew assembleRelease

Linux / MAC

$ cd android
$ ./gradlew assembleRelease

如果你得到任何错误删除所有构建文件夹和运行命令

gradlew clean

又比

gradlew assembleRelease

进入工程目录,执行如下命令:

cd android && ./gradlew assembleRelease

你应该使用android studio来完成这个过程。这样更简单。但是首先在react原生应用目录下运行这个命令:

对于react-native的更新版本(例如:React原生0.49.0等等…)

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

对于react-native的旧版本(0.49.0及以下)

react-native bundle --platform android --dev false --entry-file index.android.js   --bundle-output android/app/src/main/assets/index.android.bundle   --assets-dest android/app/src/main/res/

然后使用android studio在你的react原生应用目录中打开“android”文件夹,它会要求升级gradle和其他一些东西。去build->生成签名APK,并按照那里的指示。这真的很直接。

React Native 0.49及以上版本

你应该在终端的工程目录下运行这个命令

1 - mkdir android/app/src/main/assets
2 - react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

如果低于0.49

  1 - mkdir android/app/src/main/assets
  2 - react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

然后使用android studio在你的react原生应用目录中打开“android”文件夹,它会要求升级gradle和其他一些东西。去build->生成签名APK,并按照那里的指示。那好。

Android Studio中的GUI方式

Have the Android app part of the React Native app open in Android Studio (this just means opening the android folder of your react-native project with Android Studio) Go to the "Build" tab at the top Go down to "Build Bundle(s) / APK(s)" Then select "Build APK(s)" This will walk you through a process of locating your keys to sign the APK or creating your keys if you don't have them already which is all very straightforward. If you're just practicing, you can generate these keys and save them to your desktop. Once that process is complete and if the build was successful, there will be a popup down below in Android Studio. Click the link within it that says "locate" (the APK) That will take you to the apk file, move that over to your android device. Then navigate to that file on the Android device and install it.