-- 10/22 更新
現行リリース・バージョン macOS Sierra 10.12 (Build:16A323) でも同様の不具合があります。
しかし 10.12.1 beta 3 (Build:16B2338c) ではエラーは発生しません。
--
近日中にリリースされる macOS(10.12) Sierraですが、GM では NSUbiquitousKeyValueStore に不具合があります。
macOS/OSX で NSUbiquitousKeyValueStore を使用されている場合、最終版 Sierra での確認をお勧めします。
現象
- NSUbiquitousKeyValueStore.defaultStore().Synchronize() で常に false(error) を返す。
- iCloud 側に変化があっても NSUbiquitousKeyValueStoreDidChangeExternallyNotification が通知されない。
実験環境
ハード/OS
1 iMac (OSX EI Capitan 10.11.6)
2 Parallel:VM (OSX EI Capitan 10.11.6 Bata 15G26a)
3 MacBook Air (macOS Sierra 10.12 Bata8 16A313a)
4 IPhone5実機 (iOS9.3.5)
5 iPhone6実機 (iOS10.0 Beta8 16A313a)テストアプリ
1 当方作成のテストプログラム(swift)。1-5の組み合わせで, 3以外は相互通信可能。3のみNG。
2 Apple謹製サンプルプログラム(PrefsInCloud:ObjC)改造版。1,2,3で実験。結果も同様。
開発環境 Xcode8 Bata6(8S201h) + Swift2.3.
追記
- 本日 Apple Developer Technical Support (DTS) より、「エンジニアリングチームは(現象が)我々の側の問題と考えられ」「対策に取り組んでいる」旨、連絡がありました。ほぼ不具合と確信できたので報告します。
- Bug Repoter も発行しています。
- Sierra での仕様変更や Swift バージョン差異などを疑い、確認が遅れました。
- フォーラムにも上がっています(tacoは小職です)。Unable to Sync with NSUbiquitousKeyValueStore on Sierra ,Re: NSUbiquityIdentityDidChangeNotification not sent on Sierra GM
- フォーラムではあまり騒ぎになっていません。世の中では iCloud-KeyValueStore (macOS版) をあまり使わないのかな?ちなみに小職は MKiCloudSync を Swift で書き直す過程でドハマリしました。