2011-07-18 25 views
6

Tôi hiện có một kho lưu trữ dữ liệu lớn .sqlite của văn bản chuỗi dài. Khoảng 160MB và sẽ tăng lên khoảng 200MB khi tôi hoàn thành. Đây là tập dữ liệu "chỉ đọc".Có thể xóa tệp khỏi gói ứng dụng iOS của tôi không?

Điều tôi làm bây giờ đơn giản là đặt tệp đó vào gói của tôi và đọc nó trong khi chạy. Tuy nhiên, điều đó có nghĩa là ứng dụng yêu cầu bạn tải xuống 160MB. Không tối ưu.

Một giải pháp là gzip tệp đó, gửi phiên bản đã nén trong gói, giải nén nó trong lần chạy đầu tiên và đặt nó trong Tài liệu/thư mục. Điều này có nghĩa là bạn sẽ tải xuống ít hơn nhiều, nhưng tổng kích thước ứng dụng sử dụng trên thiết bị là (kích thước của gzip'd + kích thước của ungzip'd), điều này rõ ràng là không tối ưu.

Tôi muốn sử dụng giải pháp gzip, nhưng sau lần chạy đầu tiên của ứng dụng, tôi muốn xóa phiên bản .gz. Điều này có thể không? Làm thế nào để đạt được nó? Một giải pháp tốt khác sẽ là gì?

Trả lời

8

Không thể xóa tệp trong gói. Ứng dụng phải được ký và nếu gói được sửa đổi theo bất kỳ cách nào, nó sẽ không vượt qua chữ ký.

Giải pháp duy nhất khác mà tôi có thể nghĩ đến là thiết lập dịch vụ web và yêu cầu tải xuống phần ứng dụng của bạn khi cần thiết. Điều này có thể hoặc không thể là một giải pháp khả thi, tùy thuộc vào ứng dụng của bạn thực sự đang làm gì.

0

Như Paul nói, mọi thứ trong nhóm của bạn là một phần của chữ ký. Tôi không thể thấy thay đổi này vì nó là một phần cơ bản trong việc ký ứng dụng.

Cách tiếp cận cổ điển khác là nén dữ liệu trong gói của bạn, càng nhiều càng tốt, do đó bạn giải nén nó khi bạn tạo bộ nhớ làm việc.

Các vấn đề liên quan