ionic编译android
① 如何用gradle执行ionic build android
如何用gradle执行ionic build android –release的时候自动签名
假设android的platform和keystore已经有了,我们可以看到如下目录结构
其中release-signing.properties这个时候应该是没有的,现在我们新建一个release-signing.properties
storeFile=YiShangpu.keystore
key.store.password=your password
key.alias=YiShangpu
key.alias.password=your password
② 如何用gradle执行ionic build android
如何用gradle执行ionic build android –release的时候自动签名
假设android的platform和keystore已经有了,可以看到如下目录结构
其中release-signing.properties这个时候应该是没有的,现在咱们新建一个release-signing.properties
storeFile=YiShangpu.keystore
key.store.password=your password
key.alias=YiShangpu
key.alias.password=your password
为什么要新建这个文件呢?
可以参考官方的文档
(default: release-signing.properties)
Path to a .properties file that contains signing information for release builds. The file should look like:
storeFile=relative/path/to/keystore.p12
storePassword=SECRET1
storeType=pkcs12
keyAlias=DebugSigningKey
keyPassword=SECRET2
storePassword and keyPassword are optional, and will be prompted for if omitted.
对比自己新建的内容和官方文档是有出入的,那为什么自己的需要用key.store.password这种写法呢?
回到项目中,打开build.gradle,找到 addSigningProps。
def addSigningProps(propsFilePath, signingConfig) {
def propsFile = file(propsFilePath)
def props = new Properties()
propsFile.withReader { reader ->
props.load(reader)
}
def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
if (!storeFile.isAbsolute()) {
storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
}
if (!storeFile.exists()) {
throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
}
signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
signingConfig.storeFile = storeFile
signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
def storeType = props.get('storeType', props.get('key.store.type', ''))
if (!storeType) {
def filename = storeFile.getName().toLowerCase();
if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
storeType = 'pkcs12'
} else {
storeType = signingConfig.storeType // "jks"
}
}
signingConfig.storeType = storeType
}
红色的部分便是原因了。
注意:keystore的路径需要根据实际情况设置。
最后执行如下命令即可获得签名后的apk文件。
$ ionic build android —release
your password
③ ionic修改完代码用,需要在重新编译一下android吗
1、Tabs必须是预加载的,创建项目默认就是预加载,不用动。
2、访问的页面必须是懒加载页面,只有是懒加载页面访问时才会有具体的url页面锚点地址,刷新后页面才会停留在当前页面。
3、默认的三个主界面,刷新要停留在当前,需要改成懒加载方式(最简单的方法:删除已有预加载页面,使用ionic g page重新创建即为懒加载页面,别忘了删除app.mole中声明语句,页面访问时使用类名字符串。)
④ 如何快速地开发一款 Android App
非原生App开发的基本步骤(以安卓端为例) 主要使用: 移动端:ionic、cordova 后端:CoreThink 注:这是我司一位美女研发顺手整理过的一份概要流程,希望多少能帮到题主,如果有不合理或者错误的地方欢迎反馈给我,官网:CoreThink-最好用的开源免费WEB产品开发框架,qq:1270686837,这个流程可以非常快地同时产出iOS&Android两端非原生APP。 一、安装 1.安装node.js 2.安装git 3.安装ionic & cordova: 命令行输入:npm install –g cordova ionic 注:-g表示全局安装,也可以进入指定的目录安装,但这里推荐全局安装,安装后的目录为C:/users/Administrator/AppData/Roaming/npm/node_moles 4.安装Java JDK 5.安装Apache Ant 6.安装Android SDK(从这里开始后面基本以android为例,ios类似) 7.设置环境变量: ①打开计算机->系统属性->高级系统设置->环境变量 ②在系统变量中新建ANDROID_HOME变量,变量值为sdk所在目录 ③新建CLASSPATH变量,变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; ④新建JAVA_HOME变量,变量值为jdk所在目录 ⑤编辑系统变量中的path变量,不要删原来的变量值,在原值后面添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools;%ANDROID_HOME%\platform-tools 注:这里是添加了jdk\bin、jdk\jre\bin、sdk\tools 、sdk\build-tools、sdk\platform-tools的路径,互相以英文分号隔开 8.创建项目: 命令行cd进入任何你喜欢的目录,ionic start AnyNameYouLike blank,如果一切顺利,就会在你指定的目录新建一个你喜欢的名字的文件夹,并在里面初始化一个ionic项目。 9.添加平台 进入刚才新建的项目的目录,命令行输入ionic platform add android 二、在项目目录中有一个www的文件夹,里面的文件有html,js,css等,可随意编写,在platform中的www文件最好不要动它。 三、测试项目 1.进入项目目录,ionic build android编译项目 2.测试项目的方法: 桌面浏览器测试法:ionic serve 模拟器测试法:这个比较烦,而且运行慢,略 手机浏览测试法:Testing your app自己看吧,略 手机测试法:连上数据线,打开开发者选项,执行ionic run android 四、编写项目 Building out your app英文太多,翻译不出来 五、发布app,前面的准备就是为了这一步了 1.执行cordova plugin rm cordova-plugin-console,这一步是Before we deploy, we should take care to adjust plugins needed ring development that should not be in proction mode. 2.执行 cordova build --release android,在platforms/android/build/outputs/apk,中会出现***-release-unsigned.apk,最前面取决于取了什么名字 3.使用keytool打包私有密钥:执行keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 4.给没有签名的apk签名:执行jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name 5.最后一步,执行zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk 六、基本步骤到此结束,可能会出现各种报错的情况,只能具体问题具体分析了