返回列表 回覆 發文

[iPhone] 軟體的update機制?

最近在跟朋友討論iPhone的update機制, 發現有些疑問, 想來請教各位.

現在有一套軟體, 是使用SQLite來儲存使用者資料.
程式內有五個檔案appDelegate.h, appDelegate.m, app.h, app.m, sqlite.db.
前兩個只是單純alloc app這個class, 再把他加到window的subview. 而sqlite.db就是資料庫, 整個程式資料就是直接寫在這個資料庫裡.

現在發行第一版軟體當然沒問題.

第二版有更改app.h跟app.m, 而其餘三個完全沒有更動, 如果使用者更新時, 有哪些檔案會被覆寫?
此時使用者已使用此軟體一陣子, sqlite.db已被改變過了, sqlite.db會被蓋掉嗎? (使用者資料遺失)

第三版是有更改過sqlite.db, 比方說是多加了一個table, 此時使用者更新, 又是哪些檔案會被覆寫呢?  

謝謝!
[會心一笑]:
不知道你有沒有注意到,iTune的更新方式是先砍掉整個程式的ipa到垃圾桶然後再下載新的版本, 然後才upload到iPhone去, 所以iPhone的更新方式也是, 直接砍掉舊版, 然後新版整個重新copy一次, 以你的做法來看, 如果你把sqlite.db放在ipa內的話, 應該user之前的紀錄會全部不見...
[會心一笑]:
呵呵, 我想我的問題耍笨了~
並無法寫入Main bundle裡, 會造成checksum error, 必須先將檔案copy至Documents才能寫入.
因此不會有蓋不蓋過去的問題.
仍然十分感謝您的回答, 謝謝!
[會心一笑]:
Main bundle 建立 update.txt  比對 Documents upadte.txt 是否為舊版本
如果資料不大,將舊table讀入NSMutableArray之後將舊版本刪除再copy Main bundle 中新db
再回寫回去。
[會心一笑]:
返回列表