先日iPhone5のメッセージが開かなくなりました。
原因は、その直前に来た大量の添付ファイル付きのメール(MMS)です。
そこで、メッセージが参照しているDBから該当のメールを直接削除することで直しました。
環境
- Mac OSX 10.8.3
- iPhone5 ( iOS 6.1.4 )
- iBackupBot 3.5.2
- MesaSQLite 3.2.6
iBackupBot と SQLite をいじれるなんらかのツール(今回は MesaSQLite )を用意してください。
以下、手順です。
iTunes で iPhone をバックアップ
iBackupBot で 先ほどのバックアップから
Library/SMS/sms.dbをエクスポートエクスポートされた、
Library_SMS_sms.dbを MesaSQLite で開き、該当のメール、添付ファイル情報を削除Triggersタブで、attachmentテーブルを選択し、trigger delete_attachment_pathを削除。(後で戻します。)messageテーブルから該当のメールを削除。(attachmentテーブルのデータも自動で消えます。 )- SQL Query タブで下記の SQL を実行し、
attachmentテーブルのtriggerを元に戻す。
CREATE TRIGGER delete_attachment_files AFTER DELETE ON attachment BEGIN SELECT delete_attachment_path(old.filename); ENDiBackupBot で sms.db をインポート
iTunes で iPhone を復元
iBackupBot の使い方は他のブログなどで詳しく説明されているので割愛して、ここでは3のDBを編集するところを少し詳しく説明しました。
これで、iPhone から見ると添付ファイルが大量に付いたメールは見えなくなり、メッセージアプリが正常に起動するようになりました。