今天在iOS设备上安装天翼云存储app,在safari上直接打开http://cloud.189.cn/wap/index.jsp,点击“点击免费安装”,如下图:

神奇的事情发生了,设备上直接下载app然后安装了,不需要经过app stroe。安装完后第一次点击app打开,会提示“是否打开distribution”之类的。去app store搜索一番,发现没有“天翼云存储”这个app。

这一下可被震惊了,可能孤陋寡闻,ios的app还可以用这种方式来安装,那以后可不方便了?

好奇心来了,研究了一下,发现点击打开的链接如下:

itms-services:///?action=download-manifest&url=http://cloud.189.cn/download/client/iOS/cloud189.plist?v=D1.0.6

google了一番,终于有些眉目了,打开这个地址:http://cloud.189.cn/download/client/iOS/cloud189.plist,会看到一个plist文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>items</key>
  6. <array>
  7. <dict>
  8. <key>assets</key>
  9. <array>
  10. <dict>
  11. <key>kind</key>
  12. <string>software-package</string>
  13. <key>url</key>
  14. <string>http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa</string>
  15. </dict>
  16. </array>
  17. <key>metadata</key>
  18. <dict>
  19. <key>bundle-identifier</key>
  20. <string>com.21cn.cloud189</string>
  21. <key>bundle-version</key>
  22. <string>1.1.1</string>
  23. <key>kind</key>
  24. <string>software</string>
  25. <key>title</key>
  26. <string>天翼云存储</string>
  27. </dict>
  28. </dict>
  29. </array>
  30. </dict>
  31. </plist>

ipa放在这个位置:
http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa
这种安装方式是利用apple推荐的使用企业证书签名app的部署方式来安装程序,天翼云存储就是利用这样的方式,绕过了app store,直接在ios设备上安装,严格来说其实是不符合apple的相关规定的。
再深入了解,除了企业证书签名的app,用普通签名方式的app,在打包profile中指定的100个设备上也可以用这种方式安装。呵呵,这可好了,这下子就可以解决发布未经过审核app或者内部测试app的问题了,事不宜迟,马上动手测试。

后续:

经过测试,个人证书签名是可以按这种方式发布app的,具体步骤看这里:

不通过App Store,在iOS设备上直接安装应用程序(转)的更多相关文章

  1. 不通过App Store实现ios应用分发下载安装

    最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到 ...

  2. jquery keyup 在IOS设备上输入中文时不触发

    今天做一个异步查询功能的时候发现在IOS设备上查询中文时keyup没有触发,在其他设备上时可以的,后来在stackoverflow上找到下面这种解决方法,贴出来算是抛砖引玉了. $h_input.on ...

  3. 【转】使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将 ...

  4. 使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚很长时间以来, iOS设备上Safari中超出边界的元素将不 ...

  5. 八位彻底改变App Store的iOS开发者

    我们与 app 交互的方式已经被一群聪明的开发者所完全改变,他们的共性是对 app 都有各自独到的见解.下面就是其中最顶尖的八位. Loren Brichter Tweeite 不是 iOS 上第一个 ...

  6. 【Win 10应用开发】如何知道当前APP在哪个平台设备上运行

    在做Win10开发的时候,我们可能经常会需要获得当前程序在在哪个平台设备上运行,用于UI和相关API的调用,那么可以通过什么方式知道当前APP运行的平台呢? 今天这里提供两个方法给大家做参考: 方法一 ...

  7. 【前端开发】解决ios设备上fixed浮动的input输入框兼容问题

    我们在开发移动端页面时,经常会存在这种需求,在页面顶部或底部有一个输入框,一直浮动在顶部或底部位置,中间部分的内容是可以滚动的.比如底部输入框的搜索功能,或底部输入框的写评论功能. 这种问题,我们一般 ...

  8. IOS设备上网页中的页面滚动效果模拟

    可能咋一看不知道我说的是个啥,因为iOS本来就用这功能的啊,还模拟它干啥?先听我说下项目背景哈 我现在开发的是一个webapp,主要是用在ipad上,这个app的大小是固定大小的,为了防止触摸它出现弹 ...

  9. 使用fruitstrap实现命令行将IPA包安装到iOS设备上

    Requirements Mac OS X. Tested on Snow Leopard only. You need to have a valid iPhone development cert ...

随机推荐

  1. oracle 创建用户和imp指定表空间

    创建用户: 1,sqlplus sys/pwd as sysdba; 2, create user username identified by password; 3, grant dba,conn ...

  2. 关于ScrollView和listview的冲突关于的滑动和宽度

    listview和ScrollView嵌套有两个冲突,关于listview显示不全的问题和listview和scrollview的滑动冲突 自定义listview package com.exmple ...

  3. HDU 4902 Nice boat --线段树(区间更新)

    题意:给一个数字序列,第一类操作是将[l,r]内的数全赋为x ,第二类操作是将[l,r]中大于x的数赋为该数与x的gcd,若干操作后输出整个序列. 解法: 本题线段树要维护的最重要的东西就是一个区间内 ...

  4. Yii 增删改查 测试记录

    亲们, 我是yii小白 不要笑话我奥.今天白天写一个管理模块涉及到 yii ar 下的  curd 操作,做 update 操作时纠结了好久,今天晚上花点时间学习, 下面写下我的测试记录 代码如下: ...

  5. asp.net输出docx文档出现【文件已损坏 无法打开】问题的解决方案

    在某个项目中,有个需求需要将一些附件文档以字节流的形式直接存储在数据库中. 功能实现后,尝试过很多格式文件的上传下载处理,均未发现问题, 唯独在下载docx格式文件后,一打开文件就提示: “无法打开文 ...

  6. SQL对字符串进行排序

    假设字符串中只由'A'.'B'.'C'.'D'组成,且长度为7.并设函数REPLICATE(<字符串>,<n>)可以创建一个<字符串>的n个副本的字符串,另外还有R ...

  7. Rop 文件上传解决思路

    由于服务请求报文是一个文本,无法直接传送二进制的文件内容,因此必须采用某种转换机制将二进制的文件内容转换为字符串.Rop 采用如下的方式对上传文件进行编码:<fileType>@<B ...

  8. swift-计算器(斯坦福公开课)

    看了斯坦福老头的课,真心觉得,我的中文怎么也变的这么垃圾了.是关于iOS8的课程,用swift写的,一个计算器应用的制作,看看人家的课,再看看咱们学校的课(不过垃圾学校,纯粹觉得大学浪费了),废话啊, ...

  9. 模板:LCS(最长公共子序列)

    #include <cstring> #define max(a,b) ((a) > (b) ? (a) : (b)) int same(char ch1,char ch2) { ; ...

  10. [转] Boost智能指针——scoped_ptr

    http://www.cnblogs.com/tianfang/archive/2008/09/15/1291050.html boost::scoped_ptr和std::auto_ptr非常类似, ...