React Native 如何在本地构建Expo APK

6rqinv9w  于 2022-11-25  发布在  React
关注(0)|答案(5)|浏览(293)

是否可以在本地构建Expo应用的APK?
医生说:
如果你以前没有使用过exp,你需要做的第一件事就是使用exp login登录你的Expo账户。
我尝试了exp startexp build:android,但这些命令需要登录。
我不想使用expo服务器构建APK。有没有办法在本地运行这个构建?所以不需要登录和推送源代码?
如果没有,我可以查看生成的APK的完整源代码吗?

omhiaaxx

omhiaaxx1#

新的党,所以猜测这是不可用的时间后-说明构建世博会应用程序在本地:Building Standalone Apps on Your CI

roqulrg3

roqulrg32#

如果你想生成apk弹出的cRNA与npm运行弹出命令.然后你会得到android和ios文件夹suppurate在mac和你会得到一个唯一的android文件夹在windows.并按照指示,这是在下面给定的链接
https://facebook.github.io/react-native/docs/signed-apk-android.html

ylamdve6

ylamdve63#

我也遇到过类似的问题,我设法解决了以下几个步骤在网上找到,并调整了一下:https://forums.expo.io/t/expokit-full-local-build-without-publish-android/31400/2
1.在您的机器上运行https服务器,请注意,该服务器必须具有证书,因为它是HTTPS服务器(我使用的端口为4443),但它不需要您的机器信任-它仍然可以工作
(我发现它很容易用途:Python 2.7,https://gist.github.com/dergachev/7028596#gistcomment-1989299Python 3.X)
1.转到Expo项目文件夹,确保其中没有dist文件夹;或者,您可以提供带有--output-dir标志的dist路径(react-native bundle和assets将生成到该路径)。
1.打开命令行并运行:
expo export -t bare --dev --public-url https://localhost:4443/,完成后,您将在output-dir(默认值-dist)中拥有Android捆绑包和资产
1.将安卓软件包从dist/bundles/android-<bunch of numbers (MD5)>.js复制到<YourExpoProjectFolder>/android/app/src/main/assets/index.android.bundle<YourExpoProjectFolder>/android/app/build/generated/assets/react/release/index.android.bundle
(note:包的名称必须是index.android.bundle
在/dist/bundles/assets中,您将拥有资产文件,但它们将以其MD5值命名,将每个文件复制到<YourExpoProjectFolder>/android/app/src/main/assets/,但为每个文件添加asset_前缀和.<ext>
例如,对于MD5值为de 57 a0 c7 a3 a23 aabcaceaf 1185 b1 e79 e的PNG图像文件:copy <YourExpoProjectFolder>/dist/bundles/assets/de57a0c7a3a23aabcaceaf1185b1e79e <YourExpoProjectFolder>/android/app/src/main/assets/asset_de57a0c7a3a23aabcaceaf1185b1e79e.png

  1. cd安卓
    1.组件
expo diagnostics output:

      Expo CLI 3.18.6 environment info:
        System:
          OS: Windows 10 10.0.18363
        Binaries:
          Node: 12.16.2
          Yarn: 1.22.0
          npm: 6.14.4
        npmPackages:
          expo: ~37.0.3 => 37.0.8
          react: ~16.9.0 => 16.9.0
          react-native: ~0.61.5 => 0.61.5
          react-navigation: ^4.3.9 => 4.3.9
gwo2fgha

gwo2fgha4#

如果您希望在本地构建应用而不使用expo的turtle CLI,则可以按照构建正常的react原生应用的方式进行构建
但要注意,你将不得不触摸一些原生Android代码(仅Gradle),但只有一两个文件....

步骤:

1.通过keytool生成释放密钥库
1.链接build.gradle文件中的密钥库
1.运行cd android && ./gradlew assembleRelease以构建apk
Check out this post to follow these steps in detail

mgdq6dx1

mgdq6dx15#

动机:构建本地版本,在真实的设备上测试发布构建版本的性能。
环境:Expo SDK 46托管项目,基于AlmaLinux 8.6(ymmv)
注意

我保留了我的 * 整个 * 项目目录的副本,以防事情搞砸:

cd <project *parent* dir>
\cp -far <project dir name> <project dir name>.bak

并在适当时使用

cd <project dir> # if not there
rsync -atvi --delete . ../<project dir name>.bak/

步骤创建Android项目目录/文件和调试构建APK:

cd <project dir>
npx expo run:android # not the same as "npm run android"

参见官方博览会文件here中的参考

发布版本

cd <projectDir>/android/app
keytool -genkey -v -keystore <projectName>.keystore -alias <<projectName>> -keyalg RSA -keysize 2048 -validity 10000

修改android/app/build.gradle文件-请参见details here,但不要使用构建说明。然后...

cd ../../ # to project dir
npx expo run:android --no-install --no-bundler --variant release

(尽管我现在猜测--no-bundler与Metro服务器有关)
你应该在

<project dir>/android/app/build/outputs/apk/release

请注意,这包括完整的博览会和建设可能需要相当长的时间。它花了超过12分钟的以下内容:

Operating System: AlmaLinux 8.6
KDE Plasma Version: 5.23.3
KDE Frameworks Version: 5.88.0
Qt Version: 5.15.2
Kernel Version: 4.18.0-372.32.1.el8_6.x86_64 (64-bit)
Graphics Platform: X11
Processors: 12 × Intel® Xeon® CPU E5-2620 v3 @ 2.40GHz
Memory: 31.1 GiB of RAM
Graphics Processor: AMD CEDAR

你可以通过使用expo development build或者把你的代码移到色情项目中来减少构建时间和最终的apk大小(普通的react-native):-)

相关问题