如何制作可下载.app文件的.mobileconfig配置文件?
非公开App的.mobileconfig下载分发实现方案
前置要求
- 你的App必须完成合法签名:
- iOS App:用Ad Hoc证书打包为IPA,且已将好友设备UDID添加到开发者后台的设备列表中;
- Mac App:用个人/团队开发者签名,避免用户打开时出现“无法验证开发者”的拦截。
- 将安装包(iOS为IPA,Mac为压缩成Zip的.app文件)上传至HTTPS静态服务器(苹果要求配置文件及下载链接必须走HTTPS)。
编写.mobileconfig配置文件
.mobileconfig本质是XML格式的Plist,核心通过PayloadContent字段实现下载触发逻辑,以下是两种实用方案:
方案1:通用下载引导(支持iOS/macOS)
配置文件安装后会生成Web Clip快捷方式,用户点击即可下载App,适合所有类型的App:
<?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>PayloadContent</key> <array> <dict> <key>Type</key> <string>com.apple.webClip.managed</string> <key>URL</key> <string>https://你的服务器地址/安装包路径(如xxx.ipa或xxx.zip)</string> <key>Label</key> <string>下载专属App</string> <key>Icon</key> <data>可选:App图标转为Base64编码后的字符串</data> </dict> </array> <key>PayloadDisplayName</key> <string>专属App下载配置</string> <key>PayloadIdentifier</key> <string>com.yourdomain.app.download</string> <key>PayloadOrganization</key> <string>你的名字/组织</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>用uuidgen命令生成唯一UUID替换此处</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist>
方案2:iOS自动触发安装(仅iOS)
针对iOS IPA,可通过专属Payload直接触发安装流程,无需用户手动下载后操作:
<?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>PayloadContent</key> <array> <dict> <key>Type</key> <string>com.apple.mobileservicemanagement.installApplication</string> <key>URL</key> <string>https://你的服务器地址/xxx.ipa</string> <key>ManagementFlags</key> <integer>1</integer> </dict> </array> <key>PayloadDisplayName</key> <string>安装专属iOS App</string> <key>PayloadIdentifier</key> <string>com.yourdomain.app.install</string> <key>PayloadOrganization</key> <string>你的名字/组织</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>用uuidgen命令生成唯一UUID替换此处</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist>
配置文件签名与分发
- 生成UUID:终端执行
uuidgen命令,将输出的唯一字符串替换到配置文件的PayloadUUID字段。 - 签名配置文件:iOS 10+及macOS 10.12+要求.mobileconfig必须签名,否则无法安装。用你的开发者证书签名,终端命令:
(若没有单独的证书文件,可从Keychain导出包含私钥的.p12文件,再通过openssl提取私钥和证书)openssl smime -sign -in 未签名配置文件.mobileconfig -out 已签名配置文件.mobileconfig -signer 你的开发者证书.p12 -inkey 你的私钥.pem -certfile AppleWWDRCA.cer -outform der -nodetach - 分发:将签名后的.mobileconfig上传至HTTPS服务器,把链接发给好友。好友打开链接后,跟随系统提示安装配置文件,即可触发App的下载或安装。
关键注意事项
- 所有链接必须使用HTTPS,苹果禁止HTTP协议的配置文件和下载资源。
- iOS Ad Hoc分发必须提前收集好友设备UDID并添加到开发者后台,否则IPA安装会失败。
- Mac App建议打包为Zip格式分发,避免传输中文件损坏;签名后的App,用户需在“系统设置-隐私与安全性”中允许打开。
- 若使用企业开发者证书分发iOS App,可跳过UDID收集,但需严格遵守苹果的企业证书使用规则,禁止公开分发。
内容的提问来源于stack exchange,提问作者Sheft
相关产品推荐
相关产品推荐

