先日iPhone5のメッセージが開かなくなりました。

原因は、その直前に来た大量の添付ファイル付きのメール(MMS)です。

そこで、メッセージが参照しているDBから該当のメールを直接削除することで直しました。

環境

iBackupBot と SQLite をいじれるなんらかのツール(今回は MesaSQLite )を用意してください。

以下、手順です。

  1. iTunes で iPhone をバックアップ
  2. iBackupBot で 先ほどのバックアップから Library/SMS/sms.db をエクスポート
  3. エクスポートされた、 Library_SMS_sms.db を MesaSQLite で開き、該当のメール、添付ファイル情報を削除

    1. Triggers タブで、 attachment テーブルを選択し、trigger delete_attachment_path を削除。(後で戻します。)
    2. message テーブルから該当のメールを削除。( attachment テーブルのデータも自動で消えます。 )
    3. SQL Query タブで下記の SQL を実行し、 attachment テーブルの trigger を元に戻す。

    CREATE TRIGGER delete_attachment_files AFTER DELETE ON attachment BEGIN SELECT delete_attachment_path(old.filename); END

  4. iBackupBot で sms.db をインポート

  5. iTunes で iPhone を復元

iBackupBot の使い方は他のブログなどで詳しく説明されているので割愛して、ここでは3のDBを編集するところを少し詳しく説明しました。

これで、iPhone から見ると添付ファイルが大量に付いたメールは見えなくなり、メッセージアプリが正常に起動するようになりました。



Comments

comments powered by Disqus