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

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

我看到文档中有一节在iOS上使用离线Bundle 包.但我想不出如何为Android实现同样的目标.这个是可能的吗?如果是这样的话,是如何做到的呢?

UPDATE:关于这个问题的答案(Android failed to load JS bundle),据说可以从开发服务器下载脱机Bundle 包.但是,当我从开发服务器获取包时,无法加载映像文件.

推荐答案

根据阿迪蒂亚·辛格的回答,生成的(未签名的)apk不会安装在我的手机上.我必须使用指令here生成一个签名的apk.

以下内容对我很管用:

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

my-release-key.keystore文件放在android/app

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

如果您使用的是MacOS,您可以使用指令here将密码存储在 keys 链中,而不是以明文形式存储.

然后编辑app/build.gradle,并确保存在以下内容(可能需要添加包含signingConfigs signingConfig的部分):

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

Then运行命令cd android && ./gradlew assembleRelease

For Windows"cd android",然后运行gradlew assembleRelease命令,在android/app/build/outputs/apk/app-release.apkandroid/app/build/outputs/apk/release/app-release.apk下找到signed apk

Javascript相关问答推荐

将json数组项转换为js中的扁平

使用useup时,React-Redux无法找到Redux上下文值

没有输出到带有chrome.Devtools扩展的控制台

硬币兑换运行超时

被CSS优先级所迷惑

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

如何在Angular中插入动态组件

切换时排序对象数组,切换不起作用

使用JQuery单击元素从新弹出窗口获取值

JQuery Click事件不适用于动态创建的按钮

使用auth.js保护API路由的Next.JS,FETCH()不起作用

使用Document.Evaluate() Select 一个包含撇号的HTML元素

使用jQuery find()获取元素的属性

将Auth0用户对象存储在nextjs类型脚本的Reaction上下文中

Reaction useState和useLoaderData的组合使用引发无限循环错误

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

如何在Firebase中读取对象的特定字段?

使用静态函数保存 node 前的钩子

使用python,我如何判断一个html复选框是否被隐藏,以及它是否被S选中?

为什么我的Reaction组件不能使用createBrowserRouter呈现?