認証関連のストレージにキーチェーンを使用するiPhoneアプリがあります。
期限切れのプロビジョニングプロファイルもありました。
キーチェーンアクセスのドキュメントには、次のように記載されています。
iPhoneでは、キーチェーンの権限は、アプリケーションの署名に使用されるプロビジョニングプロファイルによって異なります。アプリケーションの異なるバージョン間で、同じプロビジョニングプロファイルを一貫して使用するようにしてください。
プロビジョニングプロファイルの有効期限が切れていたため、(プロビジョニングポータルで)更新してダウンロードし、ダブルクリックしてXCodeのオーガナイザーに「インストール」しました。
アプリのアップデートをアプリストアに送信した後、基本的に空のキーチェーンが表示されます(ユーザーは再度ログインするように求められます)。
私の質問は、アプリの署名に使用されるプロビジョニングプロファイルを更新すると、更新されたプロファイルを使用してアプリに更新を送信するときにキーチェーンアクセスに影響しますか?ドキュメントは「同じプロビジョニングプロファイル」を使用すると言っていますが、更新されたプロファイルが別のプロファイルとしてカウントされるかどうかについては不明です(上記の私の経験が示唆しているように)。
何が得られますか?
アップデート
tcの答えの助けを借りて解決しました。embedded.mobileprovision
アップルに提出された各.ipasのファイルを見ると、期限切れの証明書とプロビジョニングプロファイルがアプリのバージョンxに署名するために使用され、別の証明書とプロビジョニングプロファイルがアプリのバージョンx + 1に署名するために使用されたことがわかりました(犯人:コード署名ID用のXCodeの「自動プロファイルセレクター」機能)。
最初の証明書とプロファイルは、開発者が別のiOS開発者プログラムアカウントを使用して無関係のアプリを開発したとき(同じマシン上で同じOSXユーザーを使用)から残っていました。複数のiOS開発者プログラムアカウントにまたがるプロビジョニングプロファイルは、明らかにすべて一緒にに保存されて~/Library/MobileDevice/Provisioning Profiles
いるため、XCodeの自動プロファイル選択機能の候補になります。
期限切れの配布プロファイルの更新された/有効なバージョンと間違えたまったく異なる配布プロファイルを選択してコード署名IDを変更し、更新を送信しました。同じアプリ、異なる証明書、異なるプロビジョニングプロファイル==空のキーチェーン。D'OH。