最近剛出了 iOS 8.4,再過幾個月還會有 iOS 9 出現。上週一定很多人經歷了 iOS 8.4 的升級、回復,然後再進行 JB 的動作吧?
LuLu 也是一個嘸蝦米輸入法的使用者,而且我非常感謝蝦拼的原作者,在 Apple 尚未開放第三方鍵盤套件的時候,帶給蝦米族很大的方便。然而匯入使用者字典的蝦拼字根,隨著 iCloud 的發展之下,也就這麼跟著上去雲端。
之前在 iOS7 時期,大概也有很多人遇到一樣的困擾,就是在使用英文鍵盤 ( 或是其他 QWERTY 排列的內建輸入法 ) 時,因為使用者字典的關係,會出現許多蝦米字的干擾,曾經大家也一定爬了很多文章,而原作者也非常熱心地協助大家解決,其實原本應該都是相安無事可以解決的問題了 ( 不過我相信一定還是很多人因為解決不了準備放棄了 )。
如果你曾經是蝦拼使用者,一定有遇到過不管用任何方法刪除使用者字典,總是會在一些原因之下 ( 回復、換機、iOS 升級、登入登出 iCloud …. 等 ),上萬筆的使用者字典內容又重新地被下載到手機裡,難免會覺得哭笑不得XDD
我當然也是試了非常多的方式,才終於在上週確認了這個刪除的方式。我有三台 iDevice,基本上都是用這個方式解決了,而且就算以後真的再出現,我也一點都不擔心,因為再弄一次即可,整個過程連十分鐘都不用。
另外,本篇教的是 iOS 上的使用者字典刪除方式,並不是 Mac
Mac 上的刪除方式請自行參考原作者寫的這篇:http://goo.gl/Pxs0BC
( 我是 Mac 上的已刪除掉之後才處理 iOS 的 )
歡迎大家隨時來驗證這個方式是否真的能刪除。
我個人是信心滿滿,我也不想砸了自己「LuLu總裁」的招牌XDDDDD
以下開始說明吧!
有 JB 的就直接找檔案路徑。沒 JB 的需要使用 iBackupBot 去從備份檔匯出檔案修改,再匯入,再從 iTunes 回復備份,稍微麻煩一點,但重點是找到檔案後,移除的做法上是完全一樣的。( 下載 iBackupBot,Mac/Win 版都可以 )
首先有幾個步驟要先確認:
1. 你有幾台 iDevice?如果都在手邊,那就都一次處理。(每台機器都要)
2. 強烈建議升級到 iOS 8.4。如果你不想升級,檔案路徑可能不一樣請自己找。
3. 去 修改你的 Apple ID 密碼,這樣確保所有裝置都會被登出。
(也是為了確認,不會有你不知道的裝置還用著你的 iCloud 密碼)
4. 每一台都關閉「iCloud 備份」的功能。( 在設定裡 )
( 如果你的 iCloud 已有備份過,那順便把備份檔全部都刪掉,每台機器的都刪一刪 )
5. 每一台都關閉「尋找我的 iPhone」功能 ( 需輸入 Apple ID 密碼 )
6. 去下載「SQLite Expert」軟體,用來編輯 SQLite 資料庫的強大軟體。
SQLite Expert 只有 Windows 版本。而網頁裡的 Professional 版本也是能免費試用 30 天,Personal 版本我沒用不知道功能是否完全一樣,大家可先用 Pro 的試用版即可。
蝦拼字根匯入使用者字典的資料庫檔案就是這個:
CloudUserDictionary.sqlite
而你的 iDevice 裡面有可能只有一個,有可能有好多個,都不用擔心,每一個檔案你只需要處理一次即可。而且你只要處理檔案大小是 700KB 左右的,才是蝦拼字根的使用者字典檔。檔案如果有些是 48KB 那種很小的就不用理他,除非他之後變大XD
這裡還有一個重點:
雖然有很多個檔名一樣的 CloudUserDictionary.sqlite,但是因為是不同時期所產生的資料庫檔案,所以在不同的路徑中它們要視為各自獨立的檔案,並不是你改好了其中一個就能拿去覆蓋其他的,而是每一個要各自修改過。
一、找出所有需要改的 CloudUserDictionary.sqlite 檔案
有 JB 的 iDevice
如果你已有 JB ( 要安裝 Apple File Conduit “2” ),可以直接去找檔案。
檔案路徑在:
/User/Library/Keyboard/
有的人這裡就會看到 CloudUserDictionary.sqlite,這可能只會是其中一個。
如果沒有,再進一步到
/User/Library/Keyboard/CoreDataUbiquitySupport/
這裡面可能還有很多層資料夾,不管你在哪一層,只要你有看到 700KB 左右的 CloudUserDictionary.sqlite 蝦拼字根檔案,就每一個都要處理。
自己在電腦桌面開一個資料夾專門放這些 CloudUserDictionary.sqlite 檔案,我的建議是,直接將 /User/Library/Keyboard/ 整個資料夾複製一份出來在桌面。至於你有多台機器,就自己開資料夾區分一下不要放錯位置就好。Keyboard/ 裡面的路徑就照它原本的路徑不要去動它,當你要覆蓋回去時才知道要丟去哪裡。
沒有 JB 的 iDevice
1. 先將設備接上電腦,打開 iTunes 直接做備份動作。
2. 打開 iBackupBot,找到你最新的備份
iOS 8.4 的路徑是 /System Files/KeyboardDomain/Library/Keyboard/
跟上面有 JB 的一樣,利用 iBackupBot 的匯出 (Export) 功能,把整個 Keyboard 資料夾匯出一份到你的電腦上,再一一確認 Keyboard 裡面你到底有幾個 700KB 左右的 CloudUserDictionary.sqlite,都會是你要改的目標。
小提醒:
一台設備的所有CloudUserDictionary.sqlite 都處理完,再處理下一台即可。
二、使用 SQLite Expert 修改檔案
打開 SQLite Expert,介面大概長這樣,可惜沒有中文介面XD
( 如果圖片字太小請點一下圖片就能看大圖 )
先點選圖中的按鈕,開啟你剛剛複製出來的 CloudUserDictionary.sqlite 檔案
( 用功能選單也可找到一樣的功能:Open Database )
打開後你會看到左邊有多個資料表,點選最下面的資料表。這個就是使用者字典的所有內容,有一萬多筆,你可以再觀賞一下,我們準備要刪了它們XDDDD )
然後建議留下第一列不要刪,以確保結構完整 ( 全刪我想也是可以的 )。先點選第二列全部 ( 滑鼠去點第二列最左邊的灰色格子。
再來將右邊捲軸直接拉到最底下,然後按著 Shift 鍵,滑鼠再點最後一列,完成連續選擇
選好了區域之後,直接按下表格上方的「減號」按鈕 (刪除),再按下 OK
( 刪除過程大約 15~20 秒左右,很快就刪光了 )
這種才是真正刪除的真實感…..(我還是留了一列用來確認)
再來很重要,就是要存檔。但是這裡不叫 Save,叫「Repair」(修復),按這裡。
(功能表裡也可以找到相同名稱的功能)
按下 Repair 後,選擇 Same File,再按下 Start 開始處理檔案。(大概 2 秒搞定)
大概只需要 2 秒鐘就處理好了,並且會直接覆蓋原始檔案。
再按下 Close 關閉視窗
最後可以從這裡關閉檔案 ( Close Database )
如果你還有第二個或以上的 CloudUserDictionary.sqlite 檔案,就依照上面的方式一個一個去刪除裡面的蝦拼字根紀錄,然後記得都保持放在原本的路徑中別搞錯位置。
去檔案的路徑檢查,會看到檔案已經變小了,修改完成。
再提醒一次,每一個 CloudUserDictionary.sqlite 檔案都要處理過。
再來就是將處理過的檔案覆蓋回原本的檔案位置。
一定要依照原本的路徑去覆蓋,原本在哪裡就放哪裡。
有 JB 的裝置直接將「所有 CloudUserDictionary.sqlite 檔案」都丟回去原本的路徑直接覆蓋過去。
沒有 JB 的裝置就要用 iBackupbot 的「匯入」(Import) 功能去覆蓋,然後再用 iTunes 來回復備份就能將檔案放回 iDevice 中。
提醒一下:
如果你有下一台裝置,先不要動也不用去檢查處理好的裝置,先去處理下一台的檔案。全部都處理完之後再來一個檢查也不遲,這樣比較不會 iCloud 又多管閒事幫你下載回來。基本上你如果開了鍵盤,或是進了設定之類的,如果別台的雲端還有其他不同序號的使用者字典,可能馬上會再被下載回來。(不用擔心,就算發生了,最後一樣能解決)
當你每一台都處理好之後,請在電腦上自己開個資料夾,將處理過的每一個「不同路徑的」 CloudUserDictionary.sqlite 檔案都另外存放,或是丟到 Dropbox 之類的空間,建議是整個「Keyboard」資料夾存下來,這樣以後才不會將各自的檔案路徑搞錯。
大功告成。
對,就是大功告成。
如果,你發現當你在處理另一台裝置時,心血來潮想檢查上一台裝置,使用者字典又全部被下載回來時,只要把剛剛處理過的檔案再丟一次進去就可以了。所以我才會說,每一台設備都覆完檔案再來一次檢查就好,免得要多做好幾次。
這個方式由於是直接修改 CloudUserDictionary.sqlite 的資料庫內容,並且保持原本檔案的序號、路徑與結構,只是刪除了使用者字典的紀錄,所以會一直保持下去不會有問題。而且你仍然可以正常的新增使用者字典,所有裝置的內容一樣會同步。
當你哪天又因為升級了 iOS 還是回復、JB 什麼的種種原因,又看到蝦拼字根出現時,只需要把你所另外存的 CloudUserDictionary.sqlite 檔案丟回去就好了,一定可以馬上解決該裝置的狀況。最後我想要再次強調的重點就是「每一台設備的每一個 CloudUserDictionary.sqlite 檔案都是不同的,他們都是各自獨立的檔案」。
這個方式 100% 解決了使用者字典刪不掉的狀況。
你一定也可以成功處理的。
Jimmy
2015/08/13 at 17:29
感謝,已成功刪除
但keyboard的資料夾可能因為長檔名的關係無法備份到PC(WIN7)
請問有無解決方法?
目前是IOS 8.4 JB IPHONE6
蝦拼從IPHONE5開始就用了.到IOS8後才開始不用..
順便感謝一下蝦拼作者~謝謝
Jimmy【引言】
阿海
2015/09/29 at 17:18
謝謝LULU總裁,過了四天了,都沒有在出現,希望一路到iOS 9都沒有問題!
謝謝您的分享!
阿海【引言】
LuLu總裁
2015/09/29 at 23:07
不客氣。以後還是有再出現的話,除了本文的軟體之外,也可以搜尋另一個 sqlitebroswer 也可以用來刪除資料庫資料。
LuLu總裁【引言】
Alan
2015/10/07 at 14:55
請問如果刪完後,可以再打開iCloud備份嗎?
這樣使用者辭典會不會又同步回手機?
Alan【引言】
LuLu總裁
2015/10/12 at 22:19
我沒有試過耶,我沒有習慣在 iCloud 備份。
LuLu總裁【引言】
Harlem
2015/10/10 at 21:36
Helo LULU總裁
我是用Macbook設備,以你的教學(http://goo.gl/Pxs0BC)刪除 。
不曉得是哪個步驟有錯 ~ 隔天他又回來了 ~
Harlem【引言】
LuLu總裁
2015/10/12 at 22:17
如果別的設備有再出現,那就有可能會被重新下載回來。就只能再刪一次這樣。我自己這邊的情況是 Mac 端最後還是刪不掉,但手機倒是都沒再出現了。
LuLu總裁【引言】
LuLu總裁
2016/01/01 at 11:40
那只好再刪一次了,真是難纏啊XD
LuLu總裁【引言】
yung
2016/10/13 at 10:48
請問ios10也是一樣處理方式也是一樣嗎,謝謝LuLu總裁
yung【引言】
LuLu總裁
2016/10/25 at 14:49
我沒有試耶,不過應該是一樣的。但建議還是要 JB 後比較好取出檔案來修改,沒有 JB 的話麻煩了點。
LuLu總裁【引言】