綜述
企業(yè)帳號發(fā)布證書有效期是3年,而開發(fā)證書有效期為1年,而描述文件開發(fā)發(fā)布都是只有1年有效期。
個人帳號開發(fā)證書發(fā)布證書有效期都是1年,描述文件也全是1年有效期。
- 證書過期時間 cer
- 描述文件過期時間 mobileprovision
cd '/Users/somePath'
unzip -q *.ipa
codesign -d --extract-certificates Payload/*.app
version=`openssl x509 -inform DER -in codesign0 -noout -nameopt -oneline -dates | awk '{if($1~/^notAfter/)print}'`
if [ ${#version} -gt 0 ] && [[ $version =~ "notAfter=" ]] ;then
v=${version:9}
### 先獲取證書過期時間,并轉化為時間戳
#echo `LANG=C date -j -u -f "%b %d %T %Y GMT" "$v" +%s` >> expired
cerExpiredTimestamp=$(LANG=C date -j -u -f "%b %d %T %Y GMT" "$v" +%s)
echo "證書過期時間"
echo $cerExpiredTimestamp
### 獲取描述文件過期時間,并轉化為時間戳
mobileprovisionExpireDate=`/usr/libexec/PlistBuddy -c "Print ExpirationDate" /dev/stdin <<< $(/usr/bin/security cms -D -i Payload/*.app/embedded.mobileprovision)`
mobileprovisionExpireTimestamp=$(LANG=C date -j -f "%a %b %d %T %Z %Y" "$mobileprovisionExpireDate" "+%s")
echo "描述文件過期時間"
echo $mobileprovisionExpireTimestamp
### 此處輸出過期時間戳至 iPa 目錄的下的 expired 文件內(nèi)
if [ $cerExpiredTimestamp -gt $mobileprovisionExpireTimestamp ]
then
echo $mobileprovisionExpireTimestamp >> expired
else
echo $cerExpiredTimestamp >> expired
fi
else
echo "版本號獲取失敗"
exit 1
fi