Hi, I would like to be able to carry over the status (login status, etc.) of the previous device to the new device using a keychain with iCloud backup. I have checked the operation multiple times as per the reproduction procedure. We have reproduced two patterns: one is a complete first-time startup, and the other is a case where the state of terminal A is inherited. In my environment, I was able to take over only when the transfer was performed on one terminal, but another engineer tried it and succeeded in taking over between different terminals.
The expected result is that I want the state of terminal A to be taken over, but I don't know the cause why this may not be possible.
attributes[String(kSecAttrSynchronizable)] = kCFBooleanFalse
I thought it might be the cause, but it is strange that there is a pattern that can be inherited in that case.
Could you please let me know if there is anything that must or must not be included in the source code to take over the state of the app using keychain?
(I'm not good at English, so please point out any expressions that are difficult to understand.)
[Steps to reproduce]
- Install the store-distributed version of the app on device A and take an iCloudBackup while logged in.
- On device B in the initialized state, restore the state using the backup you just took, and the app will be downloaded automatically.
- Launch the app.
[Platform] iOS
[Hardware] Xcode Version 14.3 (14E222b) iPhone SE (iOS15.6) iPhone SE (iOS15.5)