企业账号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"><plistversion="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><metacharset="utf-8"><title>Example</title><metaname="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/></head><body><ahref="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文件中的内容不一致,修改之后重新部署下就可以下载了。

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

推荐阅读更多精彩内容

  • 目标 企业账号打包的enterprise类型ipa可以安装到所有的iPhone设备上,这篇文章讲述怎样在自己的服务...
    User106阅读 8,304评论 0 6
  • 一.需求 大批量的app内测。 针对app审核难过包,可以考虑企业签名暂时代替appstore发布(网上资料说是有...
    突刺刺阅读 8,429评论 1 15
  • 简述:iOS开发平时发布内测应用,大家经常用的有蒲公英、fir.im等第三方服务平台,无论是手动打包上传至内测平台...
    C_HPY阅读 10,443评论 10 26
  • 1.index.html 可以放到http服务器上。但是下面代码中的url 必须是https://的 2.mani...
    UnityAsk阅读 9,720评论 10 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,613评论 28 53