美文网首页ionic2实战ionic3开发集锦ionic2
ionic2实战-签名android App/android打包

ionic2实战-签名android App/android打包

作者: 昵称已被使用_ | 来源:发表于2017-03-30 23:09 被阅读3280次

为什么要签名app

  • android app那么多,要给app一个唯一身份,有了这个唯一身份才能上传到app商店中
  • 升级应用时若包名一致但签名不一致,APP也会安装失败
  • 所以正式版app都要签名,还有许多我不知道的原因......

注意

  • 打包前先检查你的app id,起一个不会和别人重复的名字.很多人还在使用io.ionic.starter,请赶紧改了.一般命名是com.公司英文名称.应用英文名称

制作签名文件(.keystore文件)

  • 使用如下命令生成签名文件
    keytool -genkey -v -keystore 你起的名字.keystore -alias 你起的别名 -keyalg RSA -validity 10000
    生成签名(.keystore)文件的过程
生成的.keystore文件

使用签名文件

  • 把上一部生成的签名文件复制到app根目录下
  • 然后在app根目录下创建一个名字为release-signing.properties的文件,这个文件的内容如下
storeFile=E://work_space//jianshu//ionic2_tabs//ionic2_tabs.keystore
keyAlias=ionic2_tabs
storePassword=ionic2_tabs
keyPassword=ionic2_tabs

打包正式版app(release版)

  • 把上一部创建的release-signing.properties文件复制到./platforms/android根目录下

找不到./platforms/android目录?执行命令cordova platform add android

  • 最后执行ionic cordova build android -releaseionic cordova build android --prod --release生成正式版app

真正的上线的版本都要使用--prod参数,这会压缩app,使app体积变小,启动更快.缺点是这个参数打包很慢,我这里大概需要5到10分钟

最后

其实release-signing.properties.keystore文件放到项目根目录是为了方便使用和好写此教程.

相关文章

网友评论

  • 海货:来支持一下你
  • 38256cee90de:大佬请问下 我打包签名之后安装完 打开报 INVALID_USER_KEY 错误 怎么解决
    昵称已被使用_:你的高德地图定位release key要用本文讲的keystore文件生成,你在高德地图控制台编辑你现在的key看看去
  • 38256cee90de:大佬请问下 我打包签名之后安装完 打开报 INVALID_USER_KEY 错误 怎么解决
  • shen1996:大神 我不小心把key给删了 有什么办法找回吗:scream: :scream:
    昵称已被使用_:@shen1996 重新生成
  • bf9710eb5572:我的打包完了,用模拟器打开白屏,而且jiguang提示:包名与AppKey不匹配,是怎么回事
  • Steven2619:大佬你好,,我安装你的导航插件添加平台的时候失败了,不知道是什么原因
    Installing "com.kit.cordova.amaplocation" for android

    Installing "com.kit.cordova.amapnavigation" for android
    Failed to install 'com.kit.cordova.amapnavigation': Error: ENOENT: no such file or directory, open 'E:\project\MSPT\platforms\android\AndroidManifest.xml'
    at Object.fs.openSync (fs.js:646:18)
    at Object.fs.readFileSync (fs.js:551:33)
    at Object.parseElementtreeSync (E:\project\MSPT\platforms\android\cordova\node_modules\cordova-common\src\util\xml-helpers.js:180:27)
    at new AndroidManifest (E:\project\MSPT\platforms\android\cordova\lib\AndroidManifest.js:29:20)
    at AndroidProject.getPackageName (E:\project\MSPT\platforms\android\cordova\lib\AndroidProject.js:99:12)
    at Api.addPlugin (E:\project\MSPT\platforms\android\cordova\Api.js:223:57)
    at handleInstall (C:\Users\Steven Song\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js:594:10)
    at C:\Users\Steven Song\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js:357:28
    at _fulfilled (C:\Users\Steven Song\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:787:54)
    at self.promiseDispatch.done (C:\Users\Steven Song\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js:816:30)

    (node:2864) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open 'E:\project\MSPT\platforms\android\AndroidManifest.xml'
    (node:2864) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    Steven2619:这是我的ionic项目环境 @IONIC/cli-utils : 1.19.0
    ionic (Ionic CLI) : 3.19.0

    global packages:

    cordova (Cordova CLI) : 8.0.0

    local packages:

    @IONIC/app-scripts : 3.1.6
    Cordova Platforms : android 7.0.0
    Ionic Framework : ionic-angular 3.9.2

    System:

    Node : v8.9.4
    npm : 5.5.1
    OS : Windows 10
  • 清丶虹:博主你好,release-signing.properties中keystore的绝对路径,mac电脑我路径这样/Users/wdg/Documents/payos-ionic/nana.keystore是不是找不到呀,打包后总是未签名版的。
    清丶虹:@小军617 :有道理:joy:
    昵称已被使用_:@清丶虹 没在mac上打包过android:sob:
  • 差不多先生_2517:* What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    Error: cmd: Command failed with exit code 1 Error output:
    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    [ERROR] An error occurred while running cordova build android --release (exit code 1). 我的报这个错误 = =:sob:
    差不多先生_2517:@小军617 可以了:relaxed:
    昵称已被使用_:No key with alias 'xiyunapp' found
    你重新生成一个吧,注意你的release-signing.properties中的路径,别名别写错了
  • 娶个村姑当老婆:军哥 建议您关于xml 文件的那个app id 问题也添加到这里 这样 读者看到会更清晰 添加平台后会有APP名字 和包名 您也可以截图看看 信息对应的是您说的哪个哦
    差不多先生_2517:请问报这个错误怎么解决
    * What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    Error: cmd: Command failed with exit code 1 Error output:
    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    [ERROR] An error occurred while running cordova build android --release (exit code 1).
    昵称已被使用_:@娶个村姑当老婆 已加,你看是不是你说的意思.
  • 会飞的tiger:你好,我觉得你打包方式有点问题,你这样生成的签名文件对应的安全码SHA1是调试版本的,生成正式版的签名文件的命令好像是是 keytool -genkey -v -keystore name.jks -alias name -keyalg RSA -keysize 2048 -validity 10000 (name.jks 和name 是自定义名字)
    会飞的tiger:搞错了。。。。,jks是as开发的签名文件,也是最新的一种方式,KeyStore是Eclipse开发Android的时候最早的签名文件,
    会飞的tiger:正式版的签名文件后缀是 .jks
  • 娶个村姑当老婆:想问一下您 这个storeFile=E://work_space//jianshu//ionic2_tabs//ionic2_tabs.keystore 既然是keystore的绝对路径 为什么要带双斜杠 还有就是 是不是就是当前盘符下项目目录 (我的是这样E:\my_project\lappfront\lappfront.keystore)
    差不多先生_2517:@小军617 博主大大早上好,我试了,报错了,错误代码是:yum: :* What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    Error: cmd: Command failed with exit code 1 Error output:
    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':packageRelease'.
    > com.android.ide.common.signing.KeytoolException: Failed to read key xiyunapp from store "E:\qqDemo\yunAppDubug\xiyunapp.keystore": No key with alias 'xiyunapp' found in keystore E:\qqDemo\yunAppDubug\xiyunapp.keystore

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    [ERROR] An error occurred while running cordova build android --release (exit code 1).
    昵称已被使用_:@差不多先生_2517 试一试不是就知道了..
    差不多先生_2517:我也想问这个 = =
  • 205ca1079ffa:我按照这个你的方法,已经生成了android-release.apk,但是安装的时候提示“签名不一致,该应用可能已被恶意纂改”,请问这是为什么?
    205ca1079ffa:@娶个村姑当老婆 在config.xml配置文件里面,widget那一栏的id,改成唯一标识
    娶个村姑当老婆:@写代码要精致 请问如何修改你说的那个APP ID 我这也出现了这个问题
    205ca1079ffa:根据楼主的提议,修改了APP ID,已经解决问题,非常感谢!
  • Jianshu9527:分享的文章超级实用,向你学习
  • 娶个村姑当老婆:你好 我这边打包一直报错 不知道为什么 可以教一教我么
    Jianshu9527:按照教程一步步来,很欢迎技术交流哈
  • 云峰yf:我发布之后提示我和NG的官方应用冲突了,好像就是说签名冲突了,请问怎么解决?
    昵称已被使用_::wink: 不可能吧
  • e3cf33b743f2:每打包一次正式版app都要一个正式签名吗?
    昵称已被使用_:每次打包正式版前只需要把release-signing.properties文件复制到./platforms/android根目录下

本文标题:ionic2实战-签名android App/android打包

本文链接:https://www.haomeiwen.com/subject/ayapottx.html