Skip to content

IPA作成時のエラー「PLA Update available」の解決方法

問題説明

iOSアプリをApp Storeに提出するためにIPAファイルを作成する際、以下のエラーが発生する場合があります:

error: exportArchive: Unable to process request - PLA Update available
error: exportArchive: No signing certificate "iOS Distribution" found

この問題は通常、以下の状況で発生します:

  1. Apple Developer Programのライセンス契約(Program License Agreement)が更新された
  2. アカウントの所有者(Account Holder)が新しい契約に同意していない
  3. 未承認の状態ではコードサイニング証明書(iOS Distribution)が利用不可になる
  4. Xcodeの再起動や証明書の再インストールでは解決しない

根本的な解決手順

macOS環境での解決策(最新のXcode推奨)

重要

アカウントの所有者(Account Holder)のみが操作可能です。チームメンバーや管理者では解決できません。

  1. Apple Developerアカウントにログイン
    Apple Developerコンソールにアクセス

  2. 契約更新画面を開く アカウントホーム →「契約、規約、および同意証」セクション

  3. 保留中の契約を確認レビューが必要」または「更新が必要」ステータスの契約があるかチェック

    契約レビュー画面

  4. 契約内容に同意

    • レビュー」ボタンをクリック
    • 契約全文を確認
    • 最後までスクロールし「同意する」を選択
    • 電子署名の手続きを完了
  5. Xcodeの完全再起動

    bash
    # ターミナルで強制終了
    killall Xcode
  6. プロジェクトのクリーン Xcodeで ⇧ + ⌘ + K を押してプロジェクトをクリーンビルド

よくある質問(FAQ)

契約同意後もエラーが消えない場合
  1. Keychain Accessで「Apple Worldwide Developer Relations Certification Authority」証明書を削除
  2. Apple証明書ダウンロードサイトから最新証明書をインストール
  3. Xcode → Preferences → Accounts → Apple IDから再ログイン
チームのアカウント所有者が不明な場合
  1. Apple Developer Membershipサイトにログイン
  2. 「Members」タブから「Account Holder」権限を持つメンバーを確認
  3. 該当者に契約更新を依頼

技術的背景と予防策

エラーの発生メカニズム

  1. Appleが開発者契約(PLA)を更新
  2. システムが未承認アカウントの署名機能を停止
  3. iOS Distribution証明書が一時的に無効化される
  4. 開発者コンソールとXcodeとの同期が切断状態に

定期チェックスクリプト(Python)

毎日契約更新を自動チェックするスクリプト:

python
import requests
from datetime import datetime

def check_pla_update():
    # Apple Developer APIエンドポイント(シミュレーション)
    response = requests.get('https://api.example.com/apple/agreements')
    agreements = response.json()
    
    # 未承認契約のチェック
    pending = [a for a in agreements if a['status'] == 'Pending']
    
    if pending:
        print(f"[{datetime.now()}] 更新が必要な契約が{pending}件あります")
        # Slack通知や自動メール送信を追加可能
    else:
        print(f"[{datetime.now()}] 問題なし")

if __name__ == "__main__":
    check_pla_update()

結論とベストプラクティス

  1. 定期的な契約確認
    Appleリリースサイクル(WWDC後など)に注意

  2. 複数メンバーでの対応
    Account Holderが不在時のために代理承認者を設定:

    アカウント設定 → 契約の代理承認を有効化
  3. 自動通知システムの活用
    Apple Developersコンソールの通知設定で「契約更新」を有効化

この問題はApple IDの権限レイヤーで発生するため、エラーメッセージ通りに証明書を再発行しても解決しません。契約更新問題はAccount Holderの承認後、最大24時間かかるケースがありますが、通常は即時反映されます。