iOS端末から写真.appへ写真を移してからのコツ、写真.appからiOS端末へiTunesで同期したり出来ない場合の対処法

(元タイトル:iOS端末から写真.appへ写真を移してから同じiOS端末へiTunesで写真同期出来るようにするまでにバックグラウンドで作業してるサービスはどいつだ)←長いタイトルだ。
私自身が同期させてるのは iPhone だけですが、おそらく iOS 端末全てで同じでしょうし。

iPhone で撮影した写真を macOS の写真.appに吸い込ませてから、 iTunes で同期させたときにその写真を iPhone へ移すことができるようになるまで、しばらくかかります。顔認識とか、写真からいろんな情報を取得したりしてるのだろうと思いますが、正直なことを言えば「写真即同期・後日同期時に更新情報修正」としてほしいものです。さっさと同期したいんですよ、うん。
ですがなかなかそうは問屋が卸さない。
写真.appを終了してからじゃないと更新してくれないんですよね。
じゃあ何がバックグラウンド作業してるのか、といえばこの3つっぽい。

  • photoanalysisd
  • photolibraryd
  • com.apple.MediaLibraryService

(追記:その他に iOS が11以上になってから iOS 側での画像ファイルが jpeg じゃなく HEIF になったので com.apple.photos.ImageConversionService も働くようだ)
写真.appに写真を取り込むとまず photolibraryd が働き、続いて photoanalysisd が働く、って感じ。com.apple.MediaLibraryService は iTunes 関連のサービスなので iTunes が起動していると働く。
いずれにせよ、この3つの動作が終了してから iTunes で同期させると写真を iPhone へ戻せました。こいつらが終了するまで気長に待ちましょう。
私の手順としては

  1. まず iTunes を終了してから写真.app を起動して写真を取り込む
  2. photolibraryd と photoanalysisd が働く
  3. 二つが働き終える
  4. 写真.app を終了させる
  5. photolibraryd と photoanalysisd が働く場合があるので様子をみる
  6. iTunes を起動し、写真を同期したい iOS 端末の同期画面にして「写真」タブを選ぶ*1
  7. com.apple.MediaLibraryService が働く
  8. 働き終え、iTunes がいろいろ処理して終わると「写真」タブで同期枚数が出る
  9. 同期開始

のようにやってます。いずれにせよ気長に待ちましょう。


どうしても同期出来ない場合の解決法(へのヒント)

(2019/10/22追記)
写真.appからiPhoneへ同期させるためのデータは 写真 Library.photoslibrary フォルダの中の iPod Photo Cache フォルダに作成されるようです。上記のサービスやデーモンが終了しても同期出来ない場合にはこの iPod Photo Cache フォルダを削除*2してしまえば解決することが多そう。ただしデータを一から作り直すので時間が掛かりますが。
手順とその際の iTunes やフォルダの振る舞いは以下の通り。

  1. iPod Photo Cache フォルダを削除する
  2. iTunes を起動して iPhone の同期画面を出し、「写真」タブを出す
    →しばらくプログレスのぐるぐるのみが表示される
    iPod Photo Cache フォルダが作成されるかもしれないがそのうちまた消える
  3. プログレスのぐるぐるが終了して「写真」タブの内容が表示されるようになると「□ 写真を同期」のチェックが外れているのでチェックする
  4. 同期したいアルバムを指定
  5. 「適用」ボタンを押すとダイアログで「既存の写真を削除して、このコンピュータから写真を同期してもよろしいですか?」と出るので「削除して同期」ボタンを押す
    iPod Photo Cache フォルダが作成されるがやはりまた消える
    iTunes の進行状況に「写真ライブラリを読み込み中」と表示されると iPod Photo Cache フォルダが作成され、中に Photo Database ファイルが作成される
    iTunes の進行状況に「フォトライブラリを分析中…」と表示されると iPod Photo Cache フォルダ内に PhotoDatabaseReserve.tmp ファイルが一時的に作成され、そのうちまた消えると共に Photo Database ファイルが更新される
    iTunes の進行状況に「写真をコピー中」と表示され iPod Photo Cache 内に F00〜F50 フォルダが作成され、写真コピーの進行状況が進んでいく

参考: iPhone Macの写真が一部同期されなかった時に試してみること。 - かもメモ

どうしても同期出来ない場合の解決法(へのヒント)その2

それでも完全な同期が出来ない(例えば写真.appとの同期を完全にリセットしようとしても写真がiPhone側に残ってしまう)ような場合には、最終手段として iFunBox など iPhone の生データへアクセス出来るアプリケーションを使う必要が生じます。

データベース Raw File System/PhotoData/Photos.sqlite を削除してから iPhone を再起動(NG)

Macからの同期写真は全てアクセス出来なくなる。iPhone で撮影したカメラロールの写真は写真アプリを起動させるとデータベースが再構築されるのでしばらくすると見れるようになる。しかしその後に同期させると、以前読み込まれた写真と新しく読み込まれた写真とが重複され、また同期された写真が纏まって表示されなくなる。つまりデータベースがおかしくなった。のでNG。

Raw File System/PhotoData/ 以下のファイルを全て削除

先にカメラロールはバックアップしましょう。その後 iPhone を一旦再起動させましょう。Mac 側(というか写真.app)の iPod Photo Cache フォルダは削除しなくてもよい。
これが一番確実(且つ最終手段)。

*1:「写真」タブを選ばなくても com.apple.MediaLibraryService は働くのですが、タブを選んでおくと確実に働くので念の為に iTunes に促している、つもり。

*2:もちろん写真のオリジナルは別フォルダ(Masters フォルダ内)にあるので消えません