Mac打包Android的apk,【ReactNative】Mac下分分钟打包 Android apk

Mac 下 ReactNative如何打包构建Android apk 的应用。该文章还差一个 打包发布到各个平台的教程

总结

打包 jsbundle代码

生成签名

添加签名到app中

打包成apk(打包前也可以先运行安装在手机上测试)

把JS代码,打包成 index.android.jsbundle

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

打包APK

一、操作步骤:

1. 生成签名

生成一个有效期10000天的证书,证书为: my-release-key.keystore

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

不要把证书提交到版本控制系统

Note: Remember to keep your keystore file private and never commit it to version control.

2. 配置打包时的签名

把 证书复制到 android/app 目录下

Edit the file ~/.gradle/gradle.properties and add the following (replace ***** with the correct keystore password, alias and key password)

在 gradle.properties 里面添加以下配置

gradle.properties 文件是在 android的根目录下。 官网上的文件位置是错误的。(或者说,我理解错误)

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

MYAPP_RELEASE_KEY_ALIAS=my-key-alias

MYAPP_RELEASE_STORE_PASSWORD=*****

MYAPP_RELEASE_KEY_PASSWORD=*****

These are going to be global gradle variables, which we can later use in our gradle config to sign our app.

3. 添加签名

Adding signing config to your app's gradle config

Edit the file android/app/build.gradle in your project folder and add the signing config,

修改 android/app/build.gradle 添加签名

...

android {

...

defaultConfig { ... }

signingConfigs {

release {

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

}

}

}

...

4. 减小打包apk的大小

Enabling Proguard to reduce the size of the APK (optional)

Proguard is a tool that can slightly reduce the size of the APK. It does this by stripping parts of the React Native Java bytecode (and its dependencies) that your app is not using.

IMPORTANT: Make sure to thoroughly test your app if you've enabled Proguard. Proguard often requires configuration specific to each native library you're using. See app/proguard-rules.pro.

修改文件:android/app/build.gradle

To enable Proguard, edit android/app/build.gradle:

/**

* Run Proguard to shrink the Java bytecode in release builds.

*/

def enableProguardInReleaseBuilds = true

5. 发布前测试应用是否有问题

react-native run-android --variant=release

5. 生成apk

生成的apk文件在, android/app/build/outputs/apk/ 下

cd android && ./gradlew assembleRelease

474231cb0b37df1fc73b37cb4e4df185.png

6. apk文件位置

android/app/build/outputs/apk

7. 安装apk文件

adb install app-release.apk

app-release 是发布版的apk文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native中,遇到Android 9.0以上版本无法进行HTTP请求的问题,可以尝试以下解决方法: 1. 添加网络安全配置文件:Android 9.0以后,Google要求所有的网络请求必须使用HTTPS,为了解决这个问题,需要在应用的res目录下创建一个XML文件,命名为`network_security_config.xml`。文件内容如下: ``` <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config> ``` 2. 在AndroidManifest.xml文件中添加网络安全配置:在`application`标签内添加以下代码: ``` <application ... android:networkSecurityConfig="@xml/network_security_config" ...> ``` 这样做将允许应用发送非加密的HTTP请求。 3. 检查资源文件路径:尽管Android称之为资源文件路径问题相对不太常见,但是有时候路径的问题可能导致HTTP请求无法正常工作。因此,请确保在代码中使用的资源文件的路径是正确的。 4. 检查网络连接权限:确保在AndroidManifest.xml文件中已经添加了网络连接的权限,代码如下: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 5. 检查网络连接状态:有时候,即使在代码中正确地设置了HTTP请求,但是如果设备没有连接到互联网,仍然无法发送或接收请求。因此,请确保设备在进行HTTP请求时连接到有效的网络。 希望以上解决方法能够帮助到你,使你能够在React Native中成功进行HTTP请求。如果问题仍然存在,请进一步检查相关代码和日志以寻找其他潜在问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值