2012-09-06 31 views
9

Tôi đang tạo ứng dụng trong nhà để phân phối ứng dụng đã cập nhật mà khách hàng doanh nghiệp của chúng tôi có thể cài đặt không dây.Gọi openURL để cài đặt ứng dụng OTA kết quả khi cài đặt ứng dụng được lưu trong bộ nhớ cache

Cuối cùng cách tôi đang tung ra các cài đặt là:

NSURL *otaURL = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=<<my-url.plist>>"]; 
[[UIApplication sharedApplication] openURL:otaURL]; 

này hoạt động tốt nhưng chúng tôi đã nhận thấy rằng đôi khi nó sẽ giữ một bộ nhớ cache của plist hoặc file ipa và cài đặt một phiên bản cũ. Chúng tôi đã loại trừ rằng nó không cập nhật trên máy chủ bởi vì chúng tôi thậm chí có thể xóa các tập tin ipa từ máy chủ và nó vẫn sẽ cài đặt một phiên bản cũ.

Thay đổi tên tệp .plist và .ipa sẽ hoạt động nhưng không thực sự là trạng thái kết thúc mong muốn, vì vậy câu hỏi của tôi là: Có cách nào buộc thiết bị chuyển ra ngoài và lấy tệp từ máy chủ thay vì dựa vào không trên bộ nhớ cache của nó?

Trả lời

0

Tôi nghĩ mọi người tại TestFlight đều gặp phải vấn đề tương tự. Khi sử dụng dịch vụ của họ, tôi phát hiện ra rằng việc cập nhật ứng dụng mà không xóa bất kỳ phiên bản cũ nào trước đó có thể dẫn đến hành vi rất lỗi với một nửa phiên bản cũ đang chạy (ví dụ như biểu tượng) và một nửa hành vi mới.

Điều đó thật kỳ lạ. Cf. câu hỏi khác này: Why are some files not correctly installed when installing via TestFlight?

Bạn nên cố gắng liên lạc với bộ phận hỗ trợ của Apple hoặc TestFlight để xem họ đã khắc phục sự cố này hay chưa. Chúc may mắn với điều này!

+0

Cảm ơn cho tip, tôi nghiên cứu nó nhiều hơn và sau đó nó đã giảm bởi wayside, nhưng sau đó tôi thấy điều này ngày hôm nay và tự hỏi nếu có thể sửa chữa vấn đề. Chưa thử nghiệm nó. http://stackoverflow.com/questions/12712785/issue-with-uiwebview-caching-pages – Trey

3

Tôi gặp sự cố rất giống nhau và tôi đã giải quyết vấn đề với cách giải quyết (dơ bẩn); vẫn tốt hơn việc tạo một tệp .plist khác cho mỗi phiên bản mới.

tôi chèn một số con số ngẫu nhiên trong url như:

NSURL *otaURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=myapp.%d.plist", arc4random() % 10000]; 
[[UIApplication sharedApplication] openURL:otaURL]; 

Ở phía bên kia, tôi thêm một quy tắc trong .htaccess (giả Apache, cấu hình với mod_rewrite):

AddType application/octet-stream ipa 
AddType text/xml plist 

RewriteEngine on 
RewriteRule (.*)\.\d+\.plist $1.plist 
+0

Tôi cũng đã sử dụng giải pháp này, thêm các tham số ngẫu nhiên trong URL để tránh lưu vào bộ nhớ cache .plist giải quyết vấn đề. –