200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Mac打包Android的apk 【ReactNative】Mac下分分钟打包 Android apk

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

时间:2020-06-11 01:04:45

相关推荐

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

6. apk文件位置

android/app/build/outputs/apk

7. 安装apk文件

adb install app-release.apk

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

mac下反编译android apk

所需要的工具 /disk/home#path=%252Fandroid%252Fdecompile%252Fapktool-all apktool用于将资源文件 ...

Mac 下反编译Android APK

准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...

mac下识别国产android手机

mac下识别国产android手机困扰了我很久,这几天总算在google帮助下找到了解决方法. 在~/.android/下找到adb_usb.ini,如果不存在则创建.通过“系统信息”查看到插入的an ...

cocos2d jsb 打包 Android APK

1.首先要会普通的cpp 打包成Android APK 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中.本文在Eclipse总用ndk编译cocos2d-x. 老生常谈cocos ...

『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse

一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool官方的打不开 http://apktool.shouji ...

FFmpeg: mac下手动编译android上使用的FFmpeg(支持x86、armeabi-v7a、arm64-v8a)

之前一直在linux下编译FFmpeg,最近换电脑了,尝试了下在mac下编译ffmpeg,特记录之. 一. 准备工作 1. 下载FFmpeg.(/download.h ...

mac使用apktool打包回apk

升级最新版的apktool 下载目录:https://ibotpeaches.github.io/Apktool/install/. 权限修改 将上述的文件放在usr/local/bin目录下并执行 ...

(转)利用ant在Mac 下自动化打包签名Android程序

1.创建一个android项目 参数说明:-k /--package 为命名空间(包名)-a /--name 工程名-p /--path 项目 -t 为目标平台的版本编号 命令:./android c ...

Mac上反编译Android apk安装包

什么是反编译 我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译.Android的反编译分成两个部分: 一 ...

随机推荐

解决文件上传插件Uploadify在火狐浏览器下,Session丢失的问题

因为在火狐浏览器下Flash发送的请求不会带有cookie,所以导致后台的session失效. 解决的方法就是手动传递SessionID到后台. $("#fileresultfiles&qu ...

U制作LFS linux

我希望自己的LFS运行在U盘上,远期目标是要制作一个基于LFS的编程练习U盘,方便自己的编程练习.今天算是工作的第一步,先把LFS做到U盘上. 把Linux做到U盘上通常的做法是采用两步启动法:先生成 ...

iOS控件——UIView的viewWithTag:(int)findTag方法描述

UIView拥有一个viewWithTag:(int)findTag方法,调用方式为[MyView viewWithTag:整形数字]该方法返回tag == findTag的控件.ios控件中允许多个 ...

em(倍)与px的区别(转载)

在国内网站中,包括三大门户,以及"引领"中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位.只有百度好歹做了个可调的表率.而 在大洋彼岸,几乎所有的主流站点都使 ...

【Django】url传递参数

1. url传递参数的特殊字符 在压缩后,可能出现 + - = 空格 这类特殊字符,需要在传递前进行url编码 urllib.enquote(string) 获取参数后 urllib.un ...

MySQL 5.7 InnoDB缓冲池NUMA功能支持——但是别高兴的太早

当前CPU都已是NUMA架构,相信除了历史遗留系统,很少会有数据库跑在SMP的CPU上了.NUMA架构带来的优势无言而语,CPU更快的内存访问速度,但是带来的问题也不言而喻,特别是对于数据库的影响.M ...

京东消息中间件JMQ

/javahongxi/article/details/54411464 [京东技术]京东的MQ经历了JQ->AMQ->JMQ的发展,其中JQ的基于 ...

C# 创建Datatable 并插入数据

DataTable dt_temp = new DataTable(); dt_temp.Columns.Add("id"); dt_temp.Columns.Add(" ...

01-使用eclipse新建一个标准的 java web项目

1.使用eclipse创建个普通的Java SE项目 名称:CRM java web标准目录结构 crm WEB-INF classes lib web.xml 设置项目字节码输出目录

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。