LoginSignup
2
5

More than 3 years have passed since last update.

iOSアプリのIPAの署名を更新

Last updated at Posted at 2020-02-28

開発者の証明書の期限が切れるなどで証明書を更新すると、過去に作ったipaファイルが開発用端末で使えなくなる。
ビルドし直すという手もあるが、時間が経っているとビルド環境が変わっている可能性が高い。

Fastlaneをipaを再度署名することができる。

コマンド例
    fastlane sigh resign myapp.ipa \
    --use_app_entitlements \
    --signing_identity 'iPhone Distribution: Runo Sahara.' \
    --provisioning_profile "$HOME/Library/MobileDevice/Provisioning Profiles/myapp.Today.mobileprovision" \
    --provisioning_profile "$HOME/Library/MobileDevice/Provisioning Profiles/myapp.mobileprovision"

確認方法

次を確認したくなる。

  • 有効期限が正しいか。
  • Entitlements が正しく、ワイルドカードで無いこと。

QuickLook

ipamobileprovisionファイルをmac上でQuickLookするツールがある。
Github: https://github.com/ealeksandrov/ProvisionQL

インストールコマンド例
brew cask install provisionql

Codesign

Codesign で entitlement を確認できる。

コマンド例
unzip myapp.ipa
codesign -d --entitlements :- Payload/myapp.app/

関連コマンド

自動化するために役に立つコマンド。

現在の状態で使えるidentity一覧
security find-identity -v -p codesigning
アプリ側のidentity
codesign -vv -d Payload/myapp.app
mobileprovisionの情報を取得
security cms -D -i embedded.mobileprovision > temp.plist
APPNAME=`/usr/libexec/PlistBuddy -c "Print :AppIDName" temp.plist`
TEAMID=`/usr/libexec/PlistBuddy -c "Print :TeamIdentifier:0" temp.plist`
APPID=`/usr/libexec/PlistBuddy -c "Print :Entitlements:application-identifier" temp.plist`
EXPIRATIONDATE=`defaults read temp.plist ExpirationDate`

ipaを解凍してembedded.mobileprovisionをfindすれば、アプリ側のものが確認できる。)

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5