这是一篇以我自己的实际经历写的一篇文章。

  当下移动开发正值火爆,由于门槛低,任何一个程序员都可以比较容易的进入移动开发领域,作为App或者游戏等移动开发者,当你开发完成一个作品后,准备上线时,需要对你的作品进行签名。涉及到签名,那就少不了软件作者的签名文件。这里,可能不少刚刚进入这一领域的开发者很容易忽略签名文件的重要性,导致没有意识保管自己的签名文件,等应用在市场上线后,需要对应用升级更新时,才发现找不到签名文件或者忘记相关密码,这时为时已晚,会导致麻烦。

  这种情况在首次接触签名的开发者中并不是特例。产生这种情况的原因,是由于这类开发者之前从没有自己的签名文件,所以在对作品签名完成,应用上线后,说不定就把签名文件随手删除了。那么,等到日后对该作品升级更新后再次签名,发现找不到签名文件或者忘记密码,你很容易想到:用一个新的签名,可是等你上传到应用市场时,会发现提示不能提交了,因为一个市场中不允许同包名的应用存在。同是,也是为了防止用户下载你的软件后安装不上,也就是说,如果用户手机安装了之前你发布的作品,就算用户通过其他途径下载了你的使用了新签名的新版作品,用户也是无法安装的,这会严重影响用户心情。

  特别需要说明的是,当你签名文件丢失后,也许你认为只要你记得签名信息,用完全一样的信息新生成一个新的签名总行吧?可我实验过,就算两个签名文件的信息一模一样,分别用这两个签名文件打包同一个作品,打包出来的作品也是不能相容的!也许你的感觉和我一样:奇怪。

  为什么?我没再去深究。

  那么,签名文件丢失了怎么办?

  有的应用市场(比如360)那里可以提交签名不一样的更新,但必须说明换签名的原因。可我说明了原因还是不给通过审核。我后来想,就算通过审核了会怎么样?用户下载新版作品之后能顺利安装吗?我持怀疑态度。

  所以,最后我不得不用新的签名,同时换包名来解决这个问题。这种方法不足的地方是:对老用户有影响,如果他们之前安装了你的旧版本作品,然后安装新版作品后,他们手机上会同时存在新老两个版本的作品。这又怎么解决呢?

  黯然伤神之余,你或许会像我一样:把我这次新版签名文件马上放进自己的文件保险箱中。

  是的,我没有找到完美的解决办法。如果你知道,求告知,先拜谢。

  

请将你的App签名文件放进保险箱的更多相关文章

  1. 将dll放进exe[.Net]

    原文:将dll放进exe[.Net] 两种方案: 1.使用ILMerge工具. 缺点:需离开工程,使用第三方工具(ILMerge). 2.将dll作为Resource放进exe,exe执行时动态加载( ...

  2. 新建childTest文件夹,里面依然放进我们需要的.py文件即可

    一.模块 我们编写文件:a.py,放在C:\Python34\Lib\sit-packages下,里面写上一句代码为: print('this is a') 之后我们就可以在我们的代码里面引用a.py ...

  3. Dictionary解析json,里面的数组放进list,并绑定到DataGridView指定列

    Dictionary解析json,1.根据json建立相应的实体类,json里面的数组形式放进list集合2.取list中的数据,将相应的数据绑定到DataGridView,如下:循环(动态添加一行数 ...

  4. 如果将彩色图像和灰度图像一起放进 CNN 中去,会是什么结果?

    如果将彩色图像和灰度图像一起放进 CNN 中去,会是什么结果? 今天,坑爹的实验,我处理 SUN397 的时候,忘记去掉灰度图了,结果,利用微调后的 model 提取 feature,悲剧的发现,无论 ...

  5. FMDB将对象放进数据库[二](使用runtime)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  6. FMDB将对象放进数据库[一]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk

    MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk 经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里 ...

  8. Win7里面如何把这一堆图标放进那个右下角的小三角框框

    Win7里面如何把这一堆图标放进那个右下角的小三角框框.. Win7里面如何把这一堆图标放进那个小框框:1.在任务栏空白处右击,点击属性:2.在属性中的通知区域-->点击自定义按钮:3.去除勾选 ...

  9. 【Java】Java创建String时,什么情况放进String Pool?

    对Java创建String是否放入String pool作代码性的试验. 参考的优秀文章 JAVA面试题解惑系列(二)——到底创建了几个String对象? public String(String o ...

随机推荐

  1. import与require的区别

    载入一个模块import() 与 require() 功能相同,但具有一定程度的自动化特性.假设我们有如下的目录结构:~~~app/app/classes/app/classes/MyClass.lu ...

  2. php生成二维码2

    <?php include "phpqrcode.php"; $value = "http://huizhongda.taobao.com/"; $err ...

  3. js 对有“命名空间”的表单做深度解析

    问题描写叙述:一个大表单中,可能包括几十个字段.这些字段在数据库中的映射非常可能不在一张表中,为了降低后台操作的工作量,我们应该在前台提交的时候对数据做初步处理. 举例说明: watermark/2/ ...

  4. php(cli模式)执行文件传递参数

    php -f index.php hello test 2314 shell命令执行php文件不像http那样通过GET方式传参 同样php文件获取的时候也不能用$_GET方法了 而是通过$argv[ ...

  5. Python开发【第*篇】【Xpath与lxml类库】

    什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...

  6. asp.net forms认证

    工作中遇到的asp.net项目使用forms认证.以前虽然用过,但其原理并不了解,现在甚至对什么是form认证也完全不知道了.对一样东西如果不清楚其原理,不知其所以然,那么死记硬背是无济于事的. as ...

  7. iOS开发——高级篇——线程同步、线程依赖、线程组

    前言 对于iOS开发中的网络请求模块,AFNet的使用应该是最熟悉不过了,但你是否把握了网络请求正确的完成时机?本篇文章涉及线程同步.线程依赖.线程组等专用名词的含义,若对上述名词认识模糊,可先进行查 ...

  8. BZOJ 3041 水叮当的舞步

    3041: 水叮当的舞步 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 120  Solved: 67[Submit][Status][Discuss ...

  9. oss

    import oss2 ''' auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret') bucket = oss2.Bucket(auth, '您 ...

  10. lucene .doc里存储的skiplist跳表

    http://forfuture1978.iteye.com/blog/546841 见图: lucene-6.5.1-src/lucene-6.5.1$ grep "skiplistwri ...