2011-05-13 4 views
5

안녕하세요 inapp 구매 iphone 응용 프로그램을 만들고 있습니다. 내 응용 프로그램은 모델로 빌드되어 있습니다. 그것은 6 항목이있는 테이블보기가 있습니다. 무료 앱에서는 3 가지 항목을 사용할 수 있으며 3 가지 항목을 잠그고 싶습니다. 사람들은 $ 0.99의 단일 거래만으로 세 가지 항목 모두를 잠금 해제 할 수 있습니다.In App Purchase-Unlock 기능

깃발을 포함 할 내 응용 프로그램에서 plist 파일을 만들고 싶습니다. flag = 0이면 몇 가지 기능을 잠그고 flag = 1이면 모든 항목의 잠금을 해제합니다. 내 plist는 0 또는 1 일 수있는 단 하나의 "깃발"을 포함합니다.

나는 plist 파일을 만드는 방법을 모른다. 고객이 액세스 할 수 없도록 plist 파일을 어디에 보관해야합니까? 리소스 폴더에 보관해야합니까?

SKTransactionStatePurchased 이후에 .plist 파일의 플래그를 변경하고 싶습니다. flag.plist 파일에서 플래그 값을 0에서 1로 변경하는 코드를 제발 주시겠습니까?

감사합니다.

답변

2

난 당신이 몇 가지 이유를 들어, 문제를 해결하기 위해 다른 방법을 찾아야한다 생각 :

  • 속성 목록은 내부 아이폰 OS 파일 시스템에 대한 액세스 권한이있는 모든 사용자가 편집 할 수 있습니다 : 그것은 탈옥을 포함하고 특정있다 비 jailbreakers도 액세스 할 수있는 도구.
  • 코드를 사용하여 plist를 편집하려면 사용 권한이 필요합니다. 앱의 문서 폴더에서만 수정 권한이 있습니다. 즉, 누군가가 쉽게 앱의 문서 폴더에 액세스하여 그 값을 상당히 쉽게 편집 할 수있는 탈옥구 응용 프로그램을 만들 수 있다고합니다.

질문에 직접 대답하지 않고 앱에서 사용하는 문서에 그런 종류의 것을 저장하는 것에 대한 사과는 정말 나쁜 생각입니다. 필자는 자신의 서버를 사용하는 것과 같은 다른 방법을 찾아 볼 것을 적극 권장합니다. 단지

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

이 yourKey가 자신의 선택의 아무것도 할 수 있습니다 전화 SKTransactionStatePurchased 후

:

+0

저는 회사가 아닌 개인이고 서버 나 웹 사이트가 없습니다. 나는 또한 그 (것)들을 지불하고 싶지 않다. 나는 애플 리케이션 구매 응용 프로그램에서 만드는 몇 가지 다른 개인이 있다는 것을 알고. 그들이 plist 방법을 사용하지 않을 경우 어떤 방법이 사용됩니까? 그것을하는 일반적인 접근 방식은 무엇입니까? – chits12345

+0

나는 인앱 구매를 직접했다. 그러나 나는 몇 가지를 알고있다. 사람들은 자신의 서버를 사용하고 때로는 앱 자체에서 "잠금 해제"를합니다. 마지막 방법에 대해서는 정확히 알지 못합니다. 왜냐하면 엔지니어링 할 수있는 모든 것이 리버스 엔지니어링 될 수 있기 때문입니다. 내가 너라면 NSUserDefaults를 사용하는 방법을 살펴볼 것이다. 그러나 항상 어떤 종류의 설명을 사용한다. –

+0

(공극) provideContent (는 NSString *)는 PRODUCTID { 경우 ([제품 isEqualToString : kInAppPurchaseProUpgradeProductId]) { [NSUserDefaults standardUserDefaults] setBool : YES forKey "isProUpgradePurchased"@]; [[NSUserDefaults 표준 사용자 정의]] 동기화]; } }이 코드를 사용하면 NSUserDefaults에서 "IsProUpgradePurchased"플래그를 설정하고 구매 또는 탈옥 자에 의해 액세스 및 변경할 수 없음을 의미합니까? NSUserDefaults를 구현하려면 서버가 필요합니까? – chits12345

2

실제로 귀하의 질문에 대답합니다. 아마도 은 해커가 앱 구입과 관련이 있다는 것을 알고 이 알 수 없도록 무의미한 단어를 사용하는 것이 가장 좋습니다.