2009-10-03 28 views
7

Tôi sắp hoàn thành giai đoạn phát triển ứng dụng iPhone và sẽ phát hành nó dưới dạng phiên bản 'lite' (hỗ trợ quảng cáo) và 'pro '(không có quảng cáo, có khả năng có thêm chức năng tại một số điểm) phiên bản.Xử lý việc di chuyển dữ liệu từ phiên bản 'lite' sang 'pro' của ứng dụng iPhone

Tôi đã làm theo các đề xuất ở đây và ở nơi khác về việc tạo nhiều mục tiêu, v.v. và có thể tạo các mục tiêu này mà không gặp bất kỳ sự cố nào.

Nhưng điều này mang lại cho tâm trí một câu hỏi: Cách tốt nhất, thân thiện với người dùng nhất, được chấp nhận để xử lý việc chuyển từ phiên bản lite của ứng dụng sang phiên bản chuyên nghiệp là gì? com.companyname

  1. Cho mỗi ứng dụng nhận dạng Bundle riêng của mình (ví dụ: có khả năng hai cách để làm điều này -

    Như tôi đã nhìn thấy nó - và hãy sửa lại cho tôi nếu có các giả định của tôi là sai. .fooapplite và com.companyname.fooapppro). Điều này sẽ dẫn đến cả hai được coi là thực thể hoàn toàn riêng biệt. Dữ liệu không được tự động di chuyển nếu người dùng di chuyển từ người này sang người khác và cả hai đều có thể vừa được cài đặt trên cùng một chiếc iPhone cùng một lúc.

  2. Cung cấp cho mỗi ứng dụng cùng một số nhận dạng Bundle (ví dụ: com.companyname.fooapp), để chúng được coi là cơ bản cùng một ứng dụng. Phiên bản lite của ứng dụng sẽ bị ghi đè bởi phiên bản chuyên nghiệp nếu họ tải xuống và cài đặt nó. Dữ liệu từ phiên bản lite được duy trì trong phiên bản chuyên nghiệp.

Sau này có vẻ lý tưởng đối với tôi - Tôi không thể tưởng tượng được một người nào đó muốn giữ một phiên bản lite sau khi họ vừa mua một phiên bản pro - nhưng điều này sẽ trả về một số câu hỏi:

  • Apple có cho phép tùy chọn số 2 không?

  • Sẽ sử dụng kết quả # 2 tùy chọn trong bất kỳ hành động nào tôi cần biết, ví dụ: hai phiên bản bước trên eachother theo một cách nào đó.

  • Nếu không được phép, có thực tiễn được đề xuất để di chuyển dữ liệu từ cơ bản là hai ứng dụng hoàn toàn khác nhau không? Tôi biết về StoreKit, nhưng nó không được hỗ trợ trên các ứng dụng miễn phí.

Vì vậy, ứng dụng hiện tại này không thực sự tạo dữ liệu có giá trị lớn và điều tồi tệ nhất sẽ xảy ra là người dùng phải nhập lại một số thông tin xác thực khi nâng cấp lên chuyên nghiệp. Nhưng xuống đường, nếu tôi phát triển một ứng dụng tương tự lưu trữ dữ liệu có giá trị cục bộ, tôi muốn biết cách chuyển đổi người dùng và dữ liệu của họ một cách liền mạch nhất.

Cảm ơn,

  • Jeff
+1

Apple không cho phép tùy chọn # 2; khi bạn cố gắng gửi ứng dụng thứ hai, iTunes Connect sẽ khiếu nại. –

+0

Xin chào, tôi cũng đang đối mặt với một tình huống tương tự. Làm thế nào tôi có thể nâng cấp từ phiên bản lite sang pro của ứng dụng mà không làm mất dữ liệu mà tôi đã lưu. Hãy giúp tôi. – arundevma

Trả lời

1

Tôi đã không cố gắng này bản thân mình, nhưng một lựa chọn thứ ba để trao đổi một lượng nhỏ dữ liệu là sử dụng API Keychain. Các ứng dụng dùng chung một mã định danh - com.companyname.foo làm cha mẹ thành com.companyname.foo.fooappcom.companyname.foo.fooapplite - có thể được viết là viết tắt của chuỗi từ một ứng dụng và đọc từ một ứng dụng khác. Đã không nhìn thấy điều này được thực hiện, nhưng rất nhiều người cho rằng điều đó là có thể.Và trong mọi trường hợp, keychain có lẽ là một nơi tốt để lưu trữ những thứ như thông tin đăng nhập xác thực.

Tùy chọn bốn sẽ là để ứng dụng lite lưu trữ một số dữ liệu người dùng trên máy chủ mà bạn vận hành và có toàn bộ ứng dụng truy xuất từ ​​đó, nhưng có tất cả các vấn đề với cách tiếp cận đó.

+0

Cảm ơn bạn đã phản hồi nhanh! Ý tưởng thú vị với phương pháp tiếp cận keychain. Tôi đã không xem xét lựa chọn đó, và nó có thể áp dụng cho dự án hiện tại của tôi. Như để lưu trữ dữ liệu trên một máy chủ tập trung, đó là (tóm lại) những gì tôi đang làm với ứng dụng này tôi đang làm việc trên - và tại sao nó không phải là cực kỳ quan trọng mà tôi lưu bất cứ điều gì tại địa phương với ứng dụng này. Kịch bản tôi đang nghĩ đến là, ví dụ: một ứng dụng ghi chú, nơi mà một lượng đáng kể dữ liệu người dùng được tạo mà họ có thể muốn giữ lại một cách hợp pháp. –

3

Một tùy chọn khác là trao đổi dữ liệu từ bản Lite sang phiên bản đầy đủ thông qua một URL. Đăng ký một myFullApp URL với phiên bản đầy đủ và có ứng dụng Lite trình bày một tùy chọn nâng cấp gọi URL đó với các dữ liệu khác nhau mà bạn muốn trao đổi được mã hóa trong đó.

Điều đó yêu cầu người dùng kích hoạt phiên bản Lite của bạn và nhấn một nút, nhưng nó cũng khá đơn giản.

+2

Mobile Orchard thực sự có bài viết về phương pháp này: http://www.mobileorchard.com/lite-to-paid-iphone-application-data-migrations-with-custom-url-handlers/ –

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