ObjecTips

Swift & Objective-C で iOS とか macOS とか

Stickies の保存データを取り出す

以前使っていた Mac の Stickies にいろいろとメモが残っていたのでデータを取り出したい。
Mac 自体はHDDが壊れてしまって起動しないがユーザのホームのバックアップは取ってあるという状態なので、Stickies.app を起動して中身を以降する事ができない。
保存ファイルからデータを以降する必要がある。

データの保存先を探してみると ~/Library の直下に
StickiesDatabase というバイナリファイルが見つかった。

Xcode で開いて Open As > Hex でバイナリファイルの中身を見てみる。

..streamtyped.....@....NSMutableArray.
...NSArray....NSObject....i......Docum
ent.......NSMutableData....NSData....X
...[600c]rtfd................TXT.rtf..

これ以降に続く中身の文字列から察するにこれが Stickies の保存データらしい。
保存形式はどうやら Objective-C のオブジェクトのアーカイブで、リッチテキスト形式のデータを含んでいるっぽい。

試しにゲストアカウントの ~/Library に StickiesDatabase を移動して Stickies.app を起動したらメモが全部復活した。
もし今の作業環境で既に Stickies を使っている場合は完全に保存データの差し替えになってしまうがとりあえずデータの復活はできる。
データの差し替えをしたくないという場合は、メニューの ファイル > テキストを書き出す... で1つずつメモを書き出して新しい環境で読み込みを行う。
要するに手動でマージするという事になる。