2017年2月19日日曜日

The certificate used to sign “appname" has either expired or has been revoked. An updated certificate is required to sign and install the application.

概要

実機でテストするときや iTunes Connect にアップロードするに出る証明書エラーです
自分なりにまとめた解決手順を紹介します

環境

  • Mac OS X 10.11.5
  • Xcode 7.3.1

原因・背景

同じアプリを 2 台の Mac で開発していて証明書や Provisioning Profile が PC 間で異なっているためタイトルのエラーが発生しています
開発している PC に証明書をインストールし直すことで解決することができます

対処手順

Certificates, Identifiers & Profiles (Developer Center) での作業

DeveloperCenter にログインして、以下の 3 項目を削除します

  • Certificates から iOS Development を削除する
  • Identifiers の App IDs から XC Wildcard のアプリ ID を削除する
  • Provisioning Profiles から iOS Team Provisioning Profile: * を削除する

上記はもう 1 台の Mac から作成されたものを想定しています
削除後に使用中の Xcode から再度作成を行います

Xcode で証明書を作成する

Xcode で

Targets -> General -> Team

に「Fix issue」の警告が出ているはずなのでボタンを押して修正します
すると DeveloperCenter に自動で Certificates から APP ID, Provisioning Profile を作成してくれます
そして、DeveloperCenter にアップロードした証明書と同じ証明書を現在使用している Mac にインストールしてくれます
キーチェーンアクセスで証明書を調べると生成した証明書がインストールされていることが確認できると思います

クリーンしてビルド

実機を接続して Xcode ビルドしましょう
ビルドの前に一度クリーンしないとエラーが継続することがあるのでクリーンしてください

最後に

たぶんこの手順で別の Mac でも実機テストできるようになると思います

再生成はしますが一度、証明書、AppID、Provisioning Profile が DeveloperCenter からなくなるので APNS など使っている場合は PushNotification 用の証明書を再度準備する必要が出てくると思います

なので、できれば証明書を配布して開発したい各 Mac にインストールしてこの問題を解決するか開発中のアプリなどでやるようにしてください
リリース中のアプリの証明書などが DeveloperCenter からなくなったときの具体的な挙動がわからないので、、、

0 件のコメント:

コメントを投稿