是否可以在本地构建Expo应用的APK?医生说:如果你以前没有使用过exp,你需要做的第一件事就是使用exp login登录你的Expo账户。我尝试了exp start、exp build:android,但这些命令需要登录。我不想使用expo服务器构建APK。有没有办法在本地运行这个构建?所以不需要登录和推送源代码?如果没有,我可以查看生成的APK的完整源代码吗?
exp login
exp start
exp build:android
omhiaaxx1#
新的党,所以猜测这是不可用的时间后-说明构建世博会应用程序在本地:Building Standalone Apps on Your CI
roqulrg32#
如果你想生成apk弹出的cRNA与npm运行弹出命令.然后你会得到android和ios文件夹suppurate在mac和你会得到一个唯一的android文件夹在windows.并按照指示,这是在下面给定的链接“https://facebook.github.io/react-native/docs/signed-apk-android.html“
ylamdve63#
我也遇到过类似的问题,我设法解决了以下几个步骤在网上找到,并调整了一下:https://forums.expo.io/t/expokit-full-local-build-without-publish-android/31400/21.在您的机器上运行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个
dist
--output-dir
expo export -t bare --dev --public-url https://localhost:4443/
output-dir
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
<YourExpoProjectFolder>/android/app/src/main/assets/
asset_
.<ext>
copy <YourExpoProjectFolder>/dist/bundles/assets/de57a0c7a3a23aabcaceaf1185b1e79e <YourExpoProjectFolder>/android/app/src/main/assets/asset_de57a0c7a3a23aabcaceaf1185b1e79e.png
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
gwo2fgha4#
如果您希望在本地构建应用而不使用expo的turtle CLI,则可以按照构建正常的react原生应用的方式进行构建但要注意,你将不得不触摸一些原生Android代码(仅Gradle),但只有一两个文件....
步骤:
1.通过keytool生成释放密钥库1.链接build.gradle文件中的密钥库1.运行cd android && ./gradlew assembleRelease以构建apkCheck out this post to follow these steps in detail
keytool
build.gradle
cd android && ./gradlew assembleRelease
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,但不要使用构建说明。然后...
android/app/build.gradle
cd ../../ # to project dir npx expo run:android --no-install --no-bundler --variant release
(尽管我现在猜测--no-bundler与Metro服务器有关)你应该在
--no-bundler
<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):-)
5条答案
按热度按时间omhiaaxx1#
新的党,所以猜测这是不可用的时间后-说明构建世博会应用程序在本地:Building Standalone Apps on Your CI
roqulrg32#
如果你想生成apk弹出的cRNA与npm运行弹出命令.然后你会得到android和ios文件夹suppurate在mac和你会得到一个唯一的android文件夹在windows.并按照指示,这是在下面给定的链接
“https://facebook.github.io/react-native/docs/signed-apk-android.html“
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.组件
gwo2fgha4#
如果您希望在本地构建应用而不使用expo的turtle CLI,则可以按照构建正常的react原生应用的方式进行构建
但要注意,你将不得不触摸一些原生Android代码(仅Gradle),但只有一两个文件....
步骤:
1.通过
keytool
生成释放密钥库1.链接
build.gradle
文件中的密钥库1.运行
cd android && ./gradlew assembleRelease
以构建apkCheck out this post to follow these steps in detail
mgdq6dx15#
动机:构建本地版本,在真实的设备上测试发布构建版本的性能。
环境:Expo SDK 46托管项目,基于AlmaLinux 8.6(ymmv)
注意:
我保留了我的 * 整个 * 项目目录的副本,以防事情搞砸:
并在适当时使用
步骤创建Android项目目录/文件和调试构建APK:
参见官方博览会文件here中的参考
发布版本:
修改
android/app/build.gradle
文件-请参见details here,但不要使用构建说明。然后...(尽管我现在猜测
--no-bundler
与Metro服务器有关)你应该在
请注意,这包括完整的博览会和建设可能需要相当长的时间。它花了超过12分钟的以下内容:
你可以通过使用expo development build或者把你的代码移到色情项目中来减少构建时间和最终的apk大小(普通的react-native):-)