删除过期的configuration文件

使用专门的terminal,如何识别和删除~/Library/MobileDevice/Provisioning Profiles过期的configuration~/Library/MobileDevice/Provisioning Profiles

有没有办法只是从terminal做到这一点?

您可以编写一个shell脚本来循环访问这些文件,从mobileprovision文件中获取date,并根据当前date进行检查。

 #!/bin/sh for provisioning_profile in ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision; do printf "Checking ${provisioning_profile}... " # pull the expiration date from the plist expirationDate=`/usr/libexec/PlistBuddy -c 'Print :ExpirationDate' /dev/stdin <<< $(security cms -D -i "${provisioning_profile}")` # convert it to a format we can use to see if it is in the past (YYYYMMDD) read dow month day time timezone year <<< "${expirationDate}" ymd_expiration=`date -jf"%a %e %b %Y" "${dow} ${day} ${month} ${year}" +%Y%m%d` # compare it to today's date ymd_today=`date +%Y%m%d` if [ ${ymd_today} -ge ${ymd_expiration} ]; then echo "EXPIRED" # rm -f "${provisioning_profile}" else echo "not expired" fi done 

您可以使用安全命令和plist伙伴从文件中提取ExpirationDate。 然后为了简单起见,我只是把这个date转换成一个简单的可比较的格式(YYYMMDD),并以相同的格式与今天的date进行比较。 我打印出每个人的状态。 注意:我不做删除操作,因为我希望您在取消注释删除行之前validation脚本结果。 我把它扔在我的身上,扔进一个旧的轮廓。 它在我的testing中正确识别了过期的configuration文件。