2012-08-09 24 views
6

Tôi hiện đang phát triển một trò chơi câu đố dành cho Android và tôi muốn có các tính năng sau khi hoàn thành:Làm thế nào để đảm bảo một cách chính xác một ứng dụng sử dụng mua trong ứng dụng và DB địa phương

  • miễn phí để chơi (quảng cáo -supported) để kết nối internet hoạt động được yêu cầu (không thể chơi nếu không có khả năng hiển thị quảng cáo)
  • tùy chọn mua trong ứng dụng để loại bỏ quảng cáo và kiểm tra kết nối
  • mua trong ứng dụng cho nội dung bổ sung

Tuy nhiên tôi nhận ra rằng có rất nhiều câu hỏi mà xuất phát từ yêu cầu của tôi ...

  1. có phải là một ý tưởng tốt để có một phiên bản duy nhất và cung cấp tùy chọn để loại bỏ quảng cáo thông qua một mua trong ứng dụng thay vì phải 2 phiên bản của trò chơi trên Cửa hàng Play? Có lẽ nó là một ý tưởng tốt hơn để có 2 ứng dụng riêng biệt nhưng sau đó, làm thế nào tôi có thể chia sẻ dữ liệu giữa 2? ví dụ. nếu người dùng mua thêm nội dung trên phiên bản miễn phí và sau đó quyết định mua phiên bản không có quảng cáo, tôi muốn nội dung mà anh ta mua trong phiên bản miễn phí cũng có sẵn trong phiên bản trả tiền của anh ấy.

  2. Thực tiễn tốt nhất để đảm bảo rằng trò chơi không thể bị 'tấn công' để có được nội dung bổ sung một cách tự do? Tôi hiểu rằng nội dung mới không nên được đưa vào ứng dụng gốc và được tải xuống riêng lẻ khi mua hàng được thực hiện, nhưng tôi có thể làm gì để ngăn chặn người dùng đã mua một số nội dung không thể phân phối lại nó một cách tự do? Sau khi tất cả, 'tải xuống nội dung bổ sung' chỉ đơn giản là liên hệ với một máy chủ để có được dữ liệu và sau đó thêm nó vào DB địa phương. Cách duy nhất tôi thấy để triển khai phiên bản 'không có quảng cáo và ngoại tuyến' (không có 2 phiên bản phân biệt trên cửa hàng Play) là bằng cách cập nhật một trường đơn giản trong DB cục bộ, nhưng điều này có vẻ không giống như giải pháp thông minh bởi vì sau đó một người dùng có hiểu biết công nghệ có thể đơn giản chuyển đổi bit này một mình để mở khóa phiên bản không có quảng cáo, cách tốt nhất để ngăn chặn điều này là gì?

Cảm ơn!

p.s. Vâng, câu trả lời là không đổ ... Upvote câu hỏi này cho khả năng hiển thị nhiều hơn nếu bạn muốn nó trả lời!

+0

Bạn đang lo lắng về những người đưa vào giờ làm việc để crack game của bạn để không phải trả một vài đô la ? – mach

+0

vâng, đó là những gì tôi cuối cùng đã đi đến kết luận lol. Tuy nhiên, một vấn đề thú vị. – ibiza

+0

bạn có thể sử dụng các kỹ thuật này [link] (https://www.airpair.com/android/posts/adding-tampering-detection-to-your-android-app) –

Trả lời

1

Cũng rất khó có thể một người dùng bình thường có thể phân vùng/dữ liệu dư thừa (dữ liệu ứng dụng), nhưng nếu bạn có thể chơi an toàn; bạn có thể sử dụng SqlCipher (mã hóa AES 256-bit trong suốt của các tệp cơ sở dữ liệu).

Bạn có thể kiểm tra, nó dụ tại địa chỉ:

http://sqlcipher.net/sqlcipher-for-android/

Cảm ơn, Munish

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