MacOS の「インターネットアカウント」を移行する


Posted on Sun, Oct 23, 2016
Tags mac, tips

背景

MacのOSをバージョンアップするたびにクリーンインストールをしているのですが、そのたびに面倒くさいのが、複数個使っている「インターネットアカウント」の再入力。 例えば、僕の場合は Gmailが3個、Yahoo! Japanが2個、Outlookが3個、iCloudが2個(なんでや)と複数個のアカウントを使い分けてます。 iCloud Keychainで登録できないこれらの「インターネットアカウント」を再入力するのは手間なものです。

2017/04/22 update

iCloud Keychain を有効にしておくと、他の端末で同じ Apple ID を利用した際に、メールアカウントの同期が行えるようになっていました! そのため、以下の手順を行わなくても、メールの情報が共有されます! さすが!

/Users/your_account/Library/Accounts をコピーする

この問題についての回答がAppleのQ&A にありました。 それによると、/Users/your_account/Library/Accounts の中身をコピーしてあげればよいとのことです。 お手持ちの HDDやUSBに一時的にコピーしてから新しいOSなり環境なりへデータを移しましょう。

ちなみにこのフォルダの中には

Accounts4.sqlite Accounts4.sqlite-wal Accounts4.sqlite-shm

というファイルが入っています。 こちら、sqlite3というDBのデータになっているため、中身を確認してみると、

sqlite> .tables
ZACCESSOPTIONSKEY          Z_2ENABLEDDATACLASSES
ZACCOUNT                   Z_2PROVISIONEDDATACLASSES
ZACCOUNTPROPERTY           Z_4SUPPORTEDDATACLASSES
ZACCOUNTTYPE               Z_4SYNCABLEDATACLASSES
ZAUTHORIZATION             Z_METADATA
ZCREDENTIALITEM            Z_MODELCACHE
ZDATACLASS

というテーブルが出てきました。

ZACCOUNT テーブルの中に各種アカウントの基本情報が入っており、ZCREDENTIALITEM テーブルの中にインターネットアカウントに紐付けられている秘密情報が格納されています。 これらのデータはそのため、インターネットにアップロードしたり、共有フォルダに入れることは避けましょう。