2009-10-16 35 views
19

Tôi có người dùng hiện có của ứng dụng trả phí trên App Store. Tôi muốn chuyển ứng dụng sang ứng dụng miễn phí với các tính năng có thể mở khóa. Có cách nào để đưa người dùng hiện tại của tôi vào phiên bản miễn phí mới này cho phép trả tiền "nâng cấp" để người dùng hiện tại được xem như họ đã trả tiền cho bản nâng cấp này chưa? HOẶC, như tôi mong đợi, chúng tôi có phải duy trì hai cơ sở mã riêng biệt khi phát triển ứng dụng di chuyển về phía trước - thay vì gây khó chịu cho khách hàng hiện tại của chúng tôi bằng cách buộc họ mua lại không?Chuyển đổi ứng dụng trả phí hiện có sang phiên bản miễn phí với Mua hàng trong ứng dụng

Tôi biết rằng ban đầu có prolly sẽ không được nhiều câu trả lời cho câu hỏi này có thẩm quyền như Apple có chỉ ngày hôm nay bắt đầu cho phép hỗ trợ cho mua trong ứng dụng từ bên trong ứng dụng miễn phí ...

+0

Hiện tại, không giống như không có nâng cấp thường xuyên. Rất muốn có câu trả lời. – JoePasq

+0

@Meltemi: Vì vậy, cuối cùng những gì đã thực hiện cho vấn đề trên của bạn. Tôi cũng ở cùng một giai đoạn cho một trong những ứng dụng của tôi. Xin vui lòng cho chúng tôi biết. – pratik

+0

Có thể chúng tôi có thể truy cập lịch sử mua hàng cho ứng dụng thông qua mã và dựa trên dấu ngày có quyết định không? – HariKJ

Trả lời

2

Bạn shouldn không cần hai cơ sở mã riêng biệt - sử dụng conditional compilation và xây dựng hai mục tiêu.

+2

Tôi sẽ thêm vào điều này và tạo cơ hội tiếp thị - sử dụng một cơ sở mã với hai kết quả đầu ra, nhưng bao gồm một số loại bling hoặc tính năng đặc biệt cho mọi người đã mua ứng dụng hoàn toàn mà thậm chí không được mở khóa từ phiên bản miễn phí.Điều đó sẽ làm cho những người đã mua cảm thấy đặc biệt thay vì đột nhiên là đứa con tinh thần không mong muốn. –

5

Một giải pháp có thể là đặt mã trong một bản cập nhật mới của ứng dụng trả phí của bạn, sẽ lật bất kỳ chuyển đổi nào bạn muốn sử dụng để nhận dạng khách hàng trả phí (có thể là trong danh sách tài sản hoặc biểu mẫu khác). Nếu bạn cung cấp cho khách hàng trả tiền hiện có đủ thời gian để nâng cấp, họ sẽ được đánh dấu là đã thanh toán. Sau đó, hãy tạo phiên bản trả tiền của bạn phiên bản nâng cấp miễn phí/trả phí và xóa phiên bản "Lite" hiện có của bạn khỏi cửa hàng. Khách hàng mới sẽ phải sử dụng mua hàng trong ứng dụng để mở khóa phiên bản đầy đủ, nhưng khách hàng hiện tại sẽ được xác nhận là đã thanh toán.

Một vấn đề với điều này là làm thế nào để có được tất cả các khách hàng hiện tại của bạn nâng cấp lên phiên bản trung gian giúp chuyển đổi ứng dụng sang chế độ nâng cấp miễn phí/trả tiền.

+4

Tôi đã nghĩ về điều này nhưng nhận ra rằng nếu ai đó đã xóa ứng dụng của bạn và cài đặt lại ứng dụng, họ sẽ hoàn nguyên về phiên bản "lite". Có lẽ điều này xảy ra thường xuyên nhưng tôi sẽ khó chịu nếu nó xảy ra với tôi. –

+0

Có, tôi nghĩ bạn có thể muốn có một thành phần phía máy chủ cho điều này, là tốt. Bằng cách đó, một số loại ID duy nhất sẽ được ghi lại với máy chủ cho khách hàng trả trước đó và ứng dụng miễn phí cũng có thể kiểm tra điều này nếu bản sao cục bộ chưa được đánh dấu là đã thanh toán. Tuy nhiên, bạn sẽ không muốn chỉ sử dụng ID thiết bị cho số nhận dạng duy nhất vì bạn muốn phiên bản trả tiền chuyển sang một thiết bị mới mà người dùng có thể nâng cấp trong tương lai. Đó là một vấn đề phức tạp. –

+0

Tôi đã viết một thư viện đơn giản để xử lý https://github.com/dengzhp/FirstVersion – freestyler

5

có một số cách bạn có thể biết liệu ứng dụng của mình đã được chạy chưa? (Như cài đặt bạn viết về xuất cảnh, tập tin dữ liệu được tạo ra, ngày đóng dấu của chạy đầu tiên?)

nếu như vậy, bạn có thể đặt mã trong bản nâng cấp của bạn như:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if (nil == [defaults objectForKey:@"app_v2_has_been_run"]) { 
    if (nil == [defaults objectForKey:@"some_key_v1_makes"] { 
     // they never had v1 of your app 
    } else { 
     // they had v1 of your app, so unlock some stuff for them 
    } 
    [defaults setObject:[NSDate date] forKey:@"app_v2_has_been_run"]; // or whatever 
} 
+0

Âm thanh này giống như một lựa chọn tốt, ngạc nhiên khi bạn không có ý kiến ​​ủng hộ hoặc phản đối. Có +1 –

+1

Nhớ lại ở đây là nếu người dùng cài đặt lại (vì bất kỳ lý do gì) hoặc thêm thiết bị mới, họ sẽ không có thiết bị mặc định này. Lưu trữ điều này trong iCloud có thể có được xung quanh nó, nhưng đó là tốt nhất bạn có thể làm. –

2

Đối với tôi, duy trì hai căn cứ mã riêng biệt sẽ không phải là giải pháp tốt, bởi vì bạn sẽ cần duy trì 2 trong mua ứng dụng (tệ hơn khi mua ứng dụng với máy chủ), có thể là 2 trung tâm trò chơi và tách riêng quá trình tải xuống của bạn (và ít hiển thị hơn) vì có thể một số người dùng mới sẽ trực tiếp mua ứng dụng trả tiền.

Nhưng để thay đổi ứng dụng trả tiền thành ứng dụng miễn phí, tôi không có cách nào tốt để làm điều đó, vì lý do chính nếu bạn nâng cấp thiết bị của mình, và để làm sạch thiết bị, bạn sẽ không có gì để không tải ứng dụng miễn phí cho những người dùng đầu tiên trả tiền cho nó và để có những người dùng thực sự tức giận.

Cách tốt nhất là có thể hỏi cơ sở dữ liệu táo để biết khi nào người dùng mua ứng dụng hoặc thứ gì đó tương tự. Nếu ai đó biết thủ thuật để làm điều đó, tôi sẽ yêu anh ấy chia sẻ nó;)

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