JenkinsやfastlaneなどのCIツールを使っていると段々と不要になった期限切れのプロビジョニングプロファイルがXcodeの作業ディレクトリに溜まってきて、そのうちに手動で削除するのも面倒になりついにはゴミだらけに。
そんな期限切れのプロビジョニングプロファイルを綺麗さっぱり掃除するためのシェルスクリプトを用意してみました。
# !/bin/bash
USER_NAME=`whoami`
TODAY=`date '+%s'`
# Remove old mobileprovision
MOBILEPROVISION_FILES=`find /Users/${USER_NAME}/Library/MobileDevice/Provisioning\ Profiles/ -maxdepth 1 -type f | sed 's!^.*/!!'`
for MOBILEPROVISION_FILE in ${MOBILEPROVISION_FILES}; do
#echo ${MOBILEPROVISION_FILE}
expire_date=`/usr/libexec/PlistBuddy -c "Print DeveloperCertificates:0" /dev/stdin <<< $(security cms -D -i "/Users/${USER_NAME}/Library/MobileDevice/Provisioning Profiles/${MOBILEPROVISION_FILE}") | openssl x509 -inform der -enddate -noout | sed -e 's/^notAfter=//g'`
#echo $expire_date
expire=`LANG=C date -j -f "%b %d %H:%M:%S %Y %Z" "$expire_date" '+%s'`
if [ $TODAY -gt $expire ]; then
echo ${MOBILEPROVISION_FILE} is expire on $expire_date removed.
rm -f "/Users/${USER_NAME}/Library/MobileDevice/Provisioning Profiles/${MOBILEPROVISION_FILE}"
fi
done