搭建企业账号ipa包分发下载平台

目标

企业账号打包的enterprise类型ipa可以安装到所有的iPhone设备上,这篇文章讲述怎样在自己的服务器上搭建分发下载平台。

准备阶段

1.服务器必须支持Https协议(苹果文档原话:对于 iOS 7.1 或更高版本,使用 HTTPS)
2.ipa文件&&对应的plist文件
Product->Archive->Export->Enterprise->Addition Options

屏幕快照 2018-04-20 05.35.58 PM.png

manifest.plist

Name:应用名称
App URL:ipa包在服务器上的下载地址
Display Image URL:57 x 57 像素的 PNG 图像,在下载和安装过程中显示。指定图像的完全限定 URL
Full Size Image URL:512 x 512 像素的 PNG 图像,表示 iTunes 中相应的应用
生成的plist文件如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>https://example.com/example.ipa</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>https://example.com/image.57x57.png</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>https://example.com/image.512x512.png</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.xxx.xxx</string>
                <key>bundle-version</key>
                <string>1.0.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>Example</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

3.下载入口HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Example</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
  </head>
  <body>
    <a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>
  </body>
</html>

整合

把ipa包&&对应的plist文件&&入口HTML文件部署到服务器即可。如果部署好之后,后期有修改plist文件的内容,重新部署之后可能会遇到“无法下载应用”的莫名错误,这是因为manifest.plist文件在客户端的缓存问题,建议把plist文件改个名称再部署下。

三方平台代签企业签名踩到的坑

可能有些公司没有自己的企业账号,使用了三方平台代签企业签名,大致流程是我们用自己的开发者账号打个ad-hoc类型的ipa包,交给三方平台重新签名,拿到企业账号签名后的ipa包就可以搞事情了。
今天拿到蒲公英给我们的ipa包之后,部署到服务器,下载安装时却显示“无法下载应用”的错,排查问题最后发现是manifest.plist文件中的bundle-identifier值和ipa包中的bundle-identifier不一样。

排查步骤

首先怀疑ipa包本身有问题,验证方法:使用itools软件直接安装ipa包,结果可以安装到任意手机,排除ipa包有问题这种可能性。
然后怀疑是manifest.plist文件和ipa包中信息的不一致情况,头一个怀疑对象就是bundle-identifier。验证方法:解压ipa包,找到embedded.mobileprovision文件,复制到桌面,在终端中输入命令:security cms -D -i /Users/xx/Desktop/embedded.mobileprovision,拿到签名用的<key>application-identifier</key> <string>L3562L3CD5.com.xxx.xx</string>这里com.xxx.xx才是真正的bundle-identifier,这与manifest.plist文件中的内容不一致,修改之后重新部署下就可以下载了。

参考链接

企业帐号进行IPA的打包、分发、下载安装的详细流程(转载)
苹果文档--以无线方式安装企业内部应用
iOS学习之如何查看.ipa测试包用到的证书所包含的UDID
iOS开发各种证书问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本人公司开发的.ipa发布于 AppStore 和自己的服务器上。但是自己却一直没时间利用公司的资源进行研究...
    SuperDanny阅读 12,192评论 14 28
  • 简述:iOS开发平时发布内测应用,大家经常用的有蒲公英、fir.im等第三方服务平台,无论是手动打包上传至内测平台...
    C_HPY阅读 10,392评论 10 26
  • ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...
    红发_KVO阅读 72,904评论 24 64
  • 参加工作至今,住在单位的宿舍里。某天突然觉得宿舍虽小,但是也要让自己在这里的时光变得舒适有爱,所以萌生了整理收纳的...
    艾小嘉阅读 312评论 0 3
  • 生活的意义不只是工作 上周末,和朋友晨出去逛街,正在我们准备吃午餐的时候,他突然说要去一趟卫生间,我问啥情况,他说...
    PIMC阅读 1,954评论 1 7