PC関係でトラブったときは、ほとんどが検索をして情報収集、解決といったフローなんですが、macのことはまだまだわからないことが多いです。
今回「codesignは、キーチェーンに含まれるキー”XXXXX"へアクセスしようとしています。許可するにはキーチェーン”ログイン”のパスワードを入力してください。」と表示されたのですがパスワードが通らなくて困ったことについてです。
そもそも発生した原因
もう終わってしまいましたがUdemyでセールをしていたので、「iOS 11 Swift 4アプリ開発入門」というコースを購入しました。
Xcode7以降は、Apple Developer Program(有料) に登録しなくても実機でデバッグできるので、早速やろうと試みたときです。
iCloudのキーチェーンの設定をした覚えはありましたが、何のことだかさっぱりわかりません。iCloudのキーチェーンパスワードを入力しても通りません。。
証明書を再要求
調べてみたところ、キーチェーンの証明書を再要求(リセット?)で解決したという記事を見かけたので試してみます。
アプリケーション>ユーティリティ>キーチェーンアクセスの証明書アシスタント>認証局に証明書を要求とすると・・・
まずおかしいのが「ユーザーのメールアドレス」がかなり昔のアドレスになっている。。最近その辺に放置していた4sをリセット〜再インストールしたのですが、それが関係あるのかどうか・・・。
既存のAppleIDのメールアドレスを入れると「エラーがおきました。入力したユーザー名またはパスフレーズが正しくありません」となります。
ユーザー名も入れてないしパスフレーズも入れてないんですがどういうことなんでしょう。。
サポートに連絡したが解決せず・・・
不具合かもしれないのと、調べても糸口が見つからないのでAppleのサポートに聞いてみることにしました。
サポートは電話しかないのですが、日中は仕事をしているため聞くことができません。しかしサポートの電話予約が時間指定できるためしてみました。
予約時間になり電話で内容を伝えるものの・・・技術的な内容のためわからず。Xcode専用のサポート担当がいるそうなんですが、こちらは平日の9時〜18時のみ。(公務員かよ!)
原因はキーチェーンのバグか?
いろいろ調べている中で以下の記事の内容がほとんど同じ症状でした。
Xcode(Mac)でアプリのビルド時にエラーが発生: ほぼ現役世代かな
同じようにまずXcodeのApple IDを削除([Xcode]-[Preference]-[Accounts]でApple IDを選択してマイナスボタン)してXcodeを一度終了。
Launchpadから[その他]-[キーチェーンアクセス]の[ログイン]-[鍵]でApple IDの公開鍵、秘密鍵を削除。[証明書]のiOS Developerを開いて「アクセス制御」にある「この項目の使用をすべてのアプリケーションに許可」にしてキーチェーンを一度終了。
再度キーチェーンアクセスを開き、[証明書アシスタンス]-[認証局に証明書を要求]
以下の内容で作成。
- ユーザーのメールアドレス:Apple ID
- 通称:○○_key(任意の文字列)
- CAのメールアドレス:Apple ID
- 要求の処理:ディスクに保存
数日前まで何故か作成もできなかったのですが、今回は正常に終了したので次に進む。
再びXcodeを起動Apple IDを再設定。([Xcode]-[Preference]-[Accounts]でApple IDを選択してContinue、Apple IDとパスワードを入力してSign In)
該当のプロジェクトを開いてみると、Signingのところでエラーが。一度Apple IDを削除したためサインアウトしている状態のようです。「Sign In...」から再度ログイン。
Signingのところではエラーが消えました。この状態でiPhoneを接続して再ビルドしてみると・・・
再び「codesignは、キーチェーンに含まれるキー”XXXXX"へアクセスしようとしています。」というダイアログが出ます。macのパスワードを入力するも同じ状態。。もはや迷宮入りか?と思ったところで再度入力して「常に許可」をクリックすると無事通りました。
ドーンと実機でアプリが動いているところです。初歩の初歩なのでただ地図を表示しているだけですが、ちゃんと動作しました。
※具体的に言うとiPhone側のプロファイルとデバイス管理からデベロッパAPPの許可も行いました。
最後に
なんだかよくわからないのですが、無事パスワードを通すことが出来ました。特定の条件でのみ発生する再現性の低いバグのようで調べても情報が出てこなく数日悩みました。。
この記事に書いていること以外にも何度も遠回りをしましたし、この手順が正しいかどうかはわかりませんが、同じ症状で困っている方は参考にしてみてください。