ブログを担当する戸田です。今回はiOSアプリ(iPAファイル)の再署名について紹介していきます。
iOSアプリの開発を行っていると「Apple Developer Program」の証明書にて有効期限が設定されているため、証明書の期限が切れてしまうとiOSアプリを利用することができなくなります。iOSアプリを再利用するには、証明書を更新後に再ビルドを行う必要があります。そのため、ビルドに時間が掛る場合やビルド環境がない場合でも行える方法になります。
iPAファイルを展開する。
「unzip」コマンドで、iPAファイル(sample.ipa)を展開します。
$ unzip sample.ipa
Entitlementsファイルを作成
「codesign」コマンドから再署名に必要になるentitlementsファイルを作成します。
$ codesign -d --entitlements :- Payload/Sample.app > entitlements.plist
Provisioning Profileを更新
Apple Developerから更新したProvisioning ProfileをDownloadをして、「cp」コマンドを利用して、Provisioning Profileを上書きします。
$ cp -p Sample.mobileprovision ./Payload/Sample.app/embedded.mobileprovision
再署名を実施
署名には「codesign」コマンドを利用します。また、証明証の設定は、「'iPhone Developer: XXXXXXX'」の部分に適応したい証明書の名称を設定します。
codesign --force --sign 'iPhone Developer: XXXXXXX' --entitlements entitlements.plist 'Payload/Sample.app'
コマンドの実行後にreplacing existing signatureと表示されたら再署名の成功になります。
Zipで圧縮
iPAファイルはZipで圧縮したファイルのため、「zip」コマンドを利用してiPAファイルを作成します。
$ mkdir new-ipa $ zip -ry new-ipa/Sample.ipa Payload
その後、iPAファイルをデバイスにインストールして、アプリが利用出来るようになります。