Ionic 打包Android
- 首先添加Android平台,
Ionic cordova platform add android
- 编译Android平台代码,
Ionic cordova build android --release --prod
- 经过第二步,在platform > android 路径下将生成一个AS工程,最后通过Android Studio打开该工程,使用AS打包即可,这一步就是原生开发的过程了。
以上看似简单的过程,在实际应用中,总是出现各种各样的问题,在此记录一下。
上面的过程可以简化一下,直接在ionic cordova build android --release --prod
的时候,将签名加入,这样就不用使用Android Studio再打包了。打开platform/android/build.gradle文件,在android节点下加入配置:
signingConfigs {
release {
storeFile file('key.keystore')
storePassword 'password'
keyAlias = 'alias'
keyPassword 'password'
}
}
修改成你的工程对应的值,这样通过ionic指令就能编译出正式包了。那怎么验证呢?
在手机上安装签名验证软件Gen_Signature.apk,输入包名,点击Get Signature按钮,查看该软件的签名信息,然后在Window电脑上,执行keytool -list -v -keystore key.keystore
,key.keystore需要换成路径,或者先cd到该目录下执行,查看签名文件的签名信息,对应这两个信息是否一致,一致则打包成功。
network_security_config not found
打开问题文件,发现有几个地方配置了network_security_config,如:
<application android:networkSecurityConfig="@xml/network_security_config" />
查找对应的xml目录下,没有发现该文件,然后在android > app > src > main > res > xml下找到了该文件,这难道是生成文件的bug?不管了,将该文件复制到android > res > xml目录下,再次执行编译命令,编译通过,大功告成!
自定义包名
Ionic工程默认生成的包名是:io.ionic.starter,如果使用该默认值,呃。。。。后果就是第二个app安装出错,所以我们要修改工程的包名,在根目录下,修改config.xml文件下的id属性,重新执行打包命令,会生成对应的工程了。