2011-05-13 37 views
5

Hi Tôi đang tạo một ứng dụng mua hàng trong ứng dụng inapp. Ứng dụng của tôi đã xây dựng theo mô hình. Nó có một cái nhìn bảng trong đó có 6 mặt hàng. Trong ứng dụng miễn phí 3 mặt hàng có sẵn và tôi muốn khóa 3 mặt hàng. Mọi người có thể mở khóa tất cả ba mục bằng cách chỉ thực hiện một giao dịch duy nhất là 0,99 đô la.Trong các tính năng Mở khóa mua hàng của ứng dụng

Tôi muốn tạo tệp plist trong ứng dụng của tôi sẽ chứa cờ. Nếu flag = 0 thì khóa vài tính năng và nếu flag = 1 thì mở khóa mọi thứ. Chỉ số của tôi sẽ chỉ chứa một "cờ" có thể là 0 hoặc 1.

Tôi không biết cách tạo tệp plist. Tôi nên giữ một tập tin plist ở đâu để khách hàng không thể truy cập? Tôi có nên giữ nó trong thư mục tài nguyên không?

Sau khi SKTransactionStatePurchased, tôi muốn thay đổi cờ trong tệp .plist. Bạn có thể vui lòng cho tôi mã sẽ thay đổi giá trị cờ từ 0 đến 1 trong tệp flag.plist không?

Cảm ơn.

Trả lời

2

Tôi tin rằng bạn nên tìm kiếm cách tiếp cận khác để giải quyết vấn đề của bạn, cho một vài lý do:

  • plists có thể được chỉnh sửa bởi bất cứ ai có quyền truy cập vào hệ thống tập tin iOS nội bộ: Điều đó bao gồm jailbreakers và có một số các công cụ cho phép những người không sử dụng jailbreaker truy cập nó.
  • Chỉnh sửa một plist với mã yêu cầu quyền. Ứng dụng của bạn chỉ có quyền chỉnh sửa trong thư mục Tài liệu của nó. Điều đó nói rằng, ai đó có thể dễ dàng tạo một ứng dụng jailbreak để truy cập vào thư mục tài liệu của ứng dụng của bạn để chỉnh sửa giá trị của nó khá dễ dàng.

Xin lỗi vì đã không trả lời trực tiếp câu hỏi của bạn nhưng lưu trữ những thứ đó trong tài liệu mà ứng dụng sử dụng thực sự là một ý tưởng tồi. Tôi khuyên bạn nên tìm kiếm các phương pháp thay thế để thực hiện việc này (như sử dụng máy chủ của riêng bạn).

+0

Tôi là một cá nhân không phải là công ty và tôi không có máy chủ hoặc trang web. Tôi cũng không muốn trả tiền cho họ. Tôi biết có một số cá nhân khác đang tạo ứng dụng mua ứng dụng. Phương pháp nào đang được họ sử dụng nếu họ không sử dụng phương pháp plist? Một cách tiếp cận phổ biến để làm điều đó là gì? – chits12345

+0

Tôi đã tự mua hàng trong ứng dụng, nhưng tôi biết một vài điều; mọi người sử dụng máy chủ của riêng họ và đôi khi, họ làm cho "mở khóa" trong chính ứng dụng. Tôi không chắc chắn chính xác về phương pháp cuối cùng mặc dù, bởi vì tất cả mọi thứ có thể được thiết kế có thể được đảo ngược thiết kế. Tôi sẽ xem xét sử dụng NSUserDefaults nếu tôi là bạn, nhưng luôn luôn sử dụng một số loại mô tả. –

+0

(void) provideContent: (NSString *) ProductID { if ([productId isEqualToString: kInAppPurchaseProUpgradeProductId]) { [[NSUserDefaults standardUserDefaults] setBool: YES forKey: @ "isProUpgradePurchased"]; [[NSUserDefaults standardUserDefaults] synchronize]; } } Nếu tôi sử dụng mã này, điều đó có nghĩa là tôi đang đặt cờ "IsProUpgradePurchased" trong NSUserDefaults không thể truy cập và thay đổi bởi người dùng đang thực hiện mua hàng hoặc bằng jailbreakers. Tôi có cần một máy chủ để thực hiện NSUserDefaults không? – chits12345

2

Để thực sự trả lời câu hỏi của bạn:

Sau SKTransactionStatePurchased, chỉ cần gọi

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setInteger:1 forKey:@"yourKey"]; 
[defaults synchronize]; 

yourKey có thể bất cứ điều gì của sự lựa chọn của riêng bạn. Có lẽ nó là tốt nhất để sử dụng từ vô nghĩa và ngẫu nhiên cho nó để tin tặc sẽ không biết rằng nó có liên quan đến trong mua ứng dụng.

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