前言

本人公司开发的.ipa发布于 AppStore 和自己的服务器上。但是自己却一直没时间利用公司的资源进行研究。现在赶紧趁热打铁,记录一下,以便以后查阅。

在此之前,在网上查阅了相关资料并整理了一下加以完善更正。

背景

网上说Xcode 6之后版本导出企业.ipa包需要手动添加.plist文件,本人今天亲自测试了一遍,发现Xcode 7之后又可以配置生成的。在这里我按照我的流程走一遍。

IPA打包

  1. 在工程中选择Product-Archive进入打包界面
  2. 选择Export进入打包方式选择界面
  3. 选择Save for Enterprise Deployment选项,Next

    4.选择对应的企业账号,然后继续即可

    5、接下来是对安装设备的要求选择,默认选择所有设备。第二个选项是指定特定类型设备方可安装。我们使用默认第一项,Next



    6、之后的界面是对应用的二次确认,确保APP配置准确无误。在窗口的左下方有一个Include manifest for over-the-air installation。该选项表示是否在生成.ipa文件的同时生成.plist文件,我们勾选上,Next

    over-the-airOTA 是苹果在iOS4中新增的一项功能,目的是让企业用户能够在脱离Apple App Store的情况下通过网页无线发布 iOS 应用;简单来讲就是在Safari中点击一个链接就可以在iPhone或iPad上下载并安装应用(目前很多越狱软件都是使用的这种发布方式)。


    7、接下来配置.plist文件,填写完之后,Export导出.ipa包和相应的.plist文件(建议将生成的.plist文件命名同APP名一致,方面后期管理)


    构建网站

    必备条件

    • 需要购买一个苹果的企业版证书,价格$299/年。指南
    • 网站需要支持HTTPS协议,用于访问下载.plist文件

      这里有两种办法:

      • 一种是购买SSL证书或者免费申请SSL证书;
      • 另一种是将.plist文件托管在第三方上面,利用第三方支持的HTTPS进行访问下载;

      使用OSChina的代码托管。访问OSChina,添加一个项目;然后用git或svn客户端将.plist文件提交到版本库中;最后在浏览器中访问项目中的.plist文件,查看原始数据,即可获得plist的https下载地址。

    步骤

    1. .plist文件与.ipa文件上传至服务器供用户访问
    2. 创建一个包含如下代码的网页,用户轻点 Web 链接后会下载.plist文件,并触发下载和安装

      以下是示例链接:

      1
      
      <a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>
      
    3. 配置服务器MIME类型

      您可能需要配置 Web 服务器,让.plist文件和.ipa文件可正确传输。

      对于OS X Server,请将MIME类型添加到 Web 服务的MIME类型设置:

      • application/octet-stream ipa
      • text/xml plist

      对于微软的互联网信息服务器 (IIS),请使用IIS Manager在服务器的“属性”页面中添加MIME类型:

      • .ipa application/octet-stream
      • .plist text/xml

    【警告】撤销分发证书会导致使用该证书签名的所有应用失效。只有万不得已时才应撤销证书,比如确定专用密钥已丢失或确信证书已遭破解。


    拓展区

    关于无线清单文件(.plist文件)

    清单文件是一个XML plist 文件,可供 Apple 设备用来从您的 Web 服务器上查找、下载和安装应用。清单文件由 Xcode 创建,使用的是您在共享用于企业分发的归档应用时所提供的信息。

    以下栏是必填项:

    • URL应用 (.ipa) 文件的完全限定 HTTPS URL

    • display-image57 x 57 像素的 PNG 图像,在下载和安装过程中显示。指定图像的完全限定 URL

    • full-size-image512 x 512 像素的 PNG 图像,表示 iTunes 中相应的应用

    • bundle-identifier应用的包标识符,与 Xcode 项目中指定的完全一样

    • bundle-version应用的包版本,在 Xcode 项目中指定

    • title下载和安装过程中显示的应用的名称

    样本清单文件(下面给出)还包含可选键。例如,如果应用文件太大,并且想要在执行错误检验(TCP 通信通常会执行该检验)的基础上确保下载的完整性,可以使用 MD5 键。

    通过指定项目数组的附加成员,您可以使用一个清单文件安装多个应用。

    示例 iOS 应用清单文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <!-- array of downloads.-->
    <key>items</key>
    <array>
    <dict>
    <!-- an array of assets to download -->
    <key>assets</key>
    <array>
    <!-- software-package: the ipa to install.-->
    <dict>
    <!-- required. the asset kind.-->
    <key>kind</key>
    <string>software-package</string>
    <!-- optional. md5 every n bytes. will restart a chunk if md5 fails.-->
    <key>md5-size</key>
    <integer>10485760</integer>
    <!-- optional. array of md5 hashes for each "md5-size" sized chunk.-->
    <key>md5s</key>
    <array>
    <string>41fa64bb7a7cae5a46bfb45821ac8bba</string>
    <string>51fa64bb7a7cae5a46bfb45821ac8bba</string>
    </array>
    <!-- required. the URL of the file to download.-->
    <key>url</key>
    <string>https://www.example.com/apps/foo.ipa</string>
    </dict>
    <!-- display-image: the icon to display during download.-->
    <dict>
    <key>kind</key>
    <string>display-image</string>
    <!-- optional. indicates if icon needs shine effect applied.-->
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://www.example.com/image.57x57.png</string>
    </dict>
    <!-- full-size-image: the large 512x512 icon used by iTunes.-->
    <dict>
    <key>kind</key>
    <string>full-size-image</string>
    <!-- optional. one md5 hash for the entire file.-->
    <key>md5</key>
    <string>61fa64bb7a7cae5a46bfb45821ac8bba</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key><string>https://www.example.com/image.512x512.jpg</string>
    </dict>
    </array>
    <key>metadata</key>
    <dict>
    <!-- required -->
    <key>bundle-identifier</key>
    <string>com.example.fooapp</string>
    <!-- optional (software only) -->
    <key>bundle-version</key>
    <string>1.0</string>
    <!-- required. the download kind.-->
    <key>kind</key>
    <string>software</string>
    <!-- optional. displayed during download; typically company name -->
    <key>subtitle</key>
    <string>Apple</string>
    <!-- required. the title to display during the download.-->
    <key>title</key>
    <string>Example Corporate App</string>
    </dict>
    </dict>
    </array>
    </dict>
    </plist>
    

    苹果官方相关文档
    http://help.apple.com/deployment/ios/#/apda0e3426d7

iOS开发企业版ipa分发相关推荐

  1. iOS开发企业版ipa分发 以及在线安装

    新版的xcode(6.1)在导出企业级ipa时并没有"saved for enterprise distribution"这个选项,所以需要手动添加该plist文件. 必备条件:1 ...

  2. 【iOS开发】ipa安装到手机上的三种方式

    转载地址:ipa安装到手机上的三种方式 ipa包 安装三种方式,优先推荐第一种方法(通过iTunes安装). 1.通过iTunes安装 数据线连接手机之后,会自动连接iTunes,(第一次连接的时候会 ...

  3. IOS开发之——企业版IDP的申请及“In House”发布

    企业版IDP的申请及"In House"发布 原贴地址:http://blog.csdn.net/kmyhy/article/details/6418280 企业版IDP,即iOS ...

  4. iOS开发:Archive、ipa 和 App 包瘦身

    作者 | 钱凯 杏仁移动开发工程师,前嵌入式工程师,关注大前端技术新潮流. iOS 开发的最后一步就是进行 App 的打包和分发,这里分为两个步骤: Archive:对Target进行编译.归档,生成 ...

  5. 软件测试ios打包,ios开发怎样将打包ipa发送给测试人员

    ios开发怎样将打包ipa发送给测试人员 需要打包之前做点工作,把开发人员的手机UUID填写到证书的申请里边(开发者中心Devices一栏),或者放到蒲公英也可以 如何通过ipa 查看ios app是 ...

  6. iOS开发助手、ipa上传工具、苹果APP快速上架辅助工具Appuploader

    ipa上传助手Appuploader是一个iOS APP上架辅助助手,帮助开发者可以快速的申请iOS证书打包ipa文件上传到App Store审核. 非常方便的iOS上架助手,提升上架效率. 一.可以 ...

  7. 科普:iOS开发如何做外部测试

    原文链接 目录 1. 真机调试 2. adhoc 方式 3. Enterprise(企业级证书)方式 4. TestFlight,公开链接 我们做APP开发的,开发出来的APP还未上线,又要想给别人用 ...

  8. AIR for IOS开发问题小结

    昨天终于成功地向APP STORE提交了应用,个人感觉用AIR做IOS开发就是个坑啊.出了问题之后,问苹果的技术支持,人家说"对于非XCODE环境下开发及发布所造成的问题我们在资料库中无法找 ...

  9. iOS开发-证书问题精析~

    在iOS开发过程中,不可避免的要和证书打交道,真机调试.App上架.打包给测试去测试等都需要搞证书.在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质:遇到问题,我们就更容易定位问题之 ...

  10. 配置 Visual Studio 2019以进行 iOS 开发

    前言 在安装vs2019时有个选项:在vs2019中进行Android和ios开发,是不是普大喜空,再次膜拜地表最强IDE vs2019,幻想着在windows下跑Android和Ios程序..... ...

最新文章

  1. 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement
  2. php如何隐藏入口文件,PHP怎样隐藏入口文件
  3. 重启jboss出现问题:端口被占用
  4. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...
  5. “理想智造”品牌首次面世 新造车势力车和家正式上场
  6. UVA11427概率期望+独立重复事件
  7. Linux操作系统PS命令详细解析
  8. 谈了千百遍的缓存数据一致性问题
  9. caffe测试多张图片--需改代码
  10. 警惕那些产生负价值的开发者
  11. 手机qq下载文件地址
  12. 关于无线网卡驱动安装正确,但灯不亮的问题
  13. 软件设计师- 系统工程知识
  14. HTML语言标记详解
  15. 微型计算机芯片上的位数,微处理器芯片的位数指的是什么
  16. 手机变窃听器 !CIA正在盯着你
  17. 云服务器端口管理修改,云服务器端口管理修改
  18. 线性规划之二 —— 单纯形算法(详解)
  19. 10_视觉里程计1_三角测量
  20. 云和恩墨zData多租户整合,青海移动数据库云化起航

热门文章

  1. 美团点评2020校园招聘-安全工程师热招!
  2. 多层陶瓷电容器用处_陶瓷电容器的作用有哪些?
  3. 植树问题java,云南省优秀多媒体育软件大赛公示.doc
  4. Luogu P3403 跳楼机|同余最短路
  5. emacs快捷键总结
  6. PLSQL的快捷键以及使用技巧
  7. 生活不止有诗和远方,也有眼前的美好。也许你心里有清风明月,
  8. java输入小写字母_java中怎么实现从对话框输入一个大写字母将其转化为小写字母输出?...
  9. css中的@media用法总结
  10. iOS 之强大的WebSocket