个人(Individual) 99美元一年, 上架App Store, 100个UUID
公司(Company) 99美元一年, 上架App Store, 100个UUID, 可以管理多个开发者
企业(Enterprise) 299美元一年, 企业内部使用(In house), UUID不限, 管理多个开发者
教育(Educational Institutions)
ios应用打包需要Certificate 和provision profile文件.
Certificate - 是用来证明你是谁,用该证书签名的应用, 用来证明这个应用是你的 provision profile - 是用来描述应用的, 包括证书, appid, deviceid等信息 p12证书 - 申请 Certificate 时需要上传csr(Certificate Signing Request)证书, csr私钥在本地, csr公钥给苹果生成Certificate证书。 这时另一个人想要开发,但没有证书的私钥。所以需要导出p12证书(包括证书和证书私钥)。
证书时效: Certificate证书一般是1年有效期, 企业证书是3年有效期 provision文件都是1年有效期
当证书过期时:
准备:
步骤:
安装:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
准备:
生成entitlements.plist文件:
1. 直接使用provision文件中的字段替换
<?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>application-identifier</key>
<string>${application-identifier}</string>
<key>com.apple.developer.team-identifier</key>
<string>${com.apple.developer.team-identifier}</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>${application-identifier}</string>
</array>
</dict>
</plist>
2. 重新生成
security cms -D -i "mobileprovision文件" > "entitlements文件"
// 只需要entitlements元素
/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' entitlements_full.plist > entitlements.plist
重签名:
1. unzip *.ipa
2. rm -rf Payload/*.app/_CodeSignature
3. cp embedded.mobileprovision Payload/*.app/ // 使用新的provition 替换embedded.mobileprovision
4. /usr/bin/codesign -f -s "iPhone Distribution: ${cerName}" --entitlements *.plist Payload/*.app // 显示已重复签名 成功
5. zip -r xxx.ipa Payload
cer证书
unzip -q MyApp.ipa
codesign -d --extract-certificates Payload/\*.app
openssl x509 -inform DER -in codesign0 -noout -nameopt -oneline -dates
notBefore=Feb 25 21:51:03 2018 GMT
notAfter=Feb 24 21:51:03 2021 GMT
# 查看签名详细信息
codesign -dv --verbose=4 Payload/\*.app
mobileprovision描述文件
more Payload/Runner.app/embedded.mobileprovision
p12文件转成pem文件
openssl pkcs12 -in xxx.p12 -out xxx.pem -nodes
openssl pkcs12 -in xxx.p12 -out xxx.pem -nodes -password pass:'xxxpasword'
查看mobileprovision
security cms -D -i XXX.mobileprovision
查看证书内容
openssl x509 -in example.pem -noout -text