iPhone
iOS

App Transferするなら絶対に知っておいてほしいKeychainの話

More than 3 years have passed since last update.

はじめに

A開発者からApp TransferでB開発者にアプリを転送して、かつB開発者がアップデートをした場合、Keychainは空になります。Keychainは開発者固有です。

※ 開発者固有という言い方は語弊があると思いますが、書くのが面倒だったのでそういうことにします。

キーチェンに認証情報が入っている場合

B開発者のKeychainを見に行くので、ログインなどが出来なくなります。

A開発者のKeychainは消えた?

消えていません。再度、App TransferしてA開発者がアップデートを行えば、A開発者のKeychainが参照されます。

なぜ

Important: If you have recently received an app from another developer by way of the App Transfer process, the transferred App ID will now have your Team ID as the App ID prefix. If the previous version of your app was writing data to the keychain, submitting an app update with the new App ID will result in a loss of access to the previous keychain data. The keychain access will only be lost after an update to the app is released on the App Store
https://developer.apple.com/library/ios/technotes/tn2311/_index.html

どうする

Keychainの共有は同じteam内でしか出来ませんので、メール認証などを導入するかNSUserDefaultなどに一時的においてやる必要があると思います。Keychainに入れていた情報をNSUserDefaultに移すのは注意が必要でしょう。

謝辞

上記情報は、FacebookのiOS Developers JAPANグループで質問して教えていただきました。誠にありがとうございました。

https://www.facebook.com/groups/ios.dev.jp/permalink/735691726452211/