2012-12-21 29 views
6

Cách hoạt động - Ứng dụng này là đăng ký dịch vụ hoạt động trên nền tảng chéo. Trên iphone mua ban đầu sẽ giúp bạn có được 30 ngày đầy đủ chức năng sau đó sau 30 ngày bạn không thể thực hiện những điều cần thiết cho đến khi bạn mua đăng ký với mua hàng trong ứng dụng.Phát hiện cài đặt lần đầu tiên trong iOS NOT NSUserDefaults

Điều tôi cần - Tôi cần biết liệu đó có phải là lần chạy đầu tiên để tôi có thể thêm thông tin người dùng vào cơ sở dữ liệu hay không. Hoặc bởi vì nó là nền tảng chéo, họ có thể đã trả tiền cho một đăng ký vì vậy tôi cần thêm 30 ngày vào đăng ký hiện tại của người dùng.

Điều tôi đang làm bây giờ - Hiện tại tôi đang lưu trữ identifierForVendor trong cơ sở dữ liệu từ xa và trong NSUserDefaults có một bool được chọn để xem 1. nếu nó là lần chạy đầu tiên và 2. nếu nó là lần chạy đầu tiên cho phép người dùng tự thêm mình vào cơ sở dữ liệu trong 30 ngày sử dụng đầy đủ hoặc thêm 30 ngày vào đăng ký hiện tại của họ.

Sự cố - Sự cố là nếu người dùng xóa ứng dụng rồi cài đặt lại NSUserDefaults cũng sẽ bị xóa và định danhForVendor sẽ thay đổi và sẽ cho phép người dùng thêm 30 ngày vào đăng ký miễn phí chỉ bằng cách xóa và cài đặt lại ứng dụng.

Giải pháp lý tưởng Ban đầu tôi muốn đăng ký ứng dụng nhưng tôi không biết cách kiểm tra biên lai khi ứng dụng được mua ban đầu và chèn người dùng vào cơ sở dữ liệu từ xa. Ngoài ra, tôi thực sự không biết cách thiết lập một thuê bao không phải là Mua trong ứng dụng. Tôi cũng nghĩ đến việc tạo ứng dụng miễn phí và sau đó họ có thể sử dụng Mua trong ứng dụng để mua dịch vụ nhưng ứng dụng vô dụng mà không thể kết nối với máy chủ từ xa để tạo dữ liệu ngay từ đầu.

Bottom Line Tôi muốn làm một trong các cách sau

  1. Hãy đăng ký trên đơn hàng đầu tiên (tôi cần để có thể phát hiện nếu mua là hợp lệ vì vậy tôi có thể nhập thông tin người dùng vào cơ sở dữ liệu từ xa)
  2. Làm cho ứng dụng trở nên miễn phí, sau đó sử dụng Mua hàng trong ứng dụng để thêm đăng ký (Có thể chấp nhận để có ứng dụng miễn phí sẽ không làm bất cứ điều gì cho đến khi bạn đăng ký không?)
  3. Để nó theo cách hiện tại (nhưng tìm giải pháp lâu dài hơn cho identifierForVendor và identifierForAdv ertising sẽ không hoạt động vì nó có thể được tắt)
+3

Tại sao không lưu trữ nội dung trong keychain? Đó là nghĩa vụ phải là vĩnh viễn. –

+1

http://stackoverflow.com/questions/13602125/how-to-find-the-app-downloaded-date-in-appstore/13602197#13602197 –

+0

Tôi thực sự khuyên bạn nên đọc kỹ hướng dẫn về cửa hàng ứng dụng của Apple. Mô hình đăng ký bạn mô tả không được phép. – duskwuff

Trả lời

2

Điều này sẽ giúp bạn rất nhiều. Về cơ bản nó là một wrapper cho Keychain được tạo hoa văn sau NSUserDefaults. Nó đã giúp tôi rất nhiều. Lưu trữ mọi thứ trong Keychain giúp họ luôn cài đặt lại ứng dụng trong quá khứ.

https://github.com/carlbrown/PDKeychainBindingsController

dự án này được thiết kế để giúp bạn sử dụng Mac OSX và iOS Keychains dễ dàng như NSUserDefaults.

Nó là một Cocoa wrapper KVO tuân thủ xung quanh Mac OSX và iOS Keychains, và mô hình cho wrapper này là NSUserDefaults, vì vậy ý là đối với các trường hợp thông thường bạn sẽ thường muốn gọi:

[NSUserDefaultsController sharedUserDefaultsController] bạn nên thể gọi

[PDKeychainBindingsController sharedKeychainBindingsController] Và cho các trường hợp thông thường bạn thường đã có thể gọi:

[NSUserDefaults standardUserDefaults] Bạn sẽ có thể gọi

[PDKeychainBindings sharedKeychainBindings]

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