2014-06-25 5 views
1

내 앱은 6 개월 동안 무료입니다. 6 개월이 지난 후 앱을 업그레이드하려면 인앱을 구현해야합니다. 상황을 상상해보십시오. 사용자가 inapp 구매를 선택하지 않고 6 개월이 지난 후에 앱을 삭제했습니다. 이제 그들은 앱 스토어에서 다시 설치합니다. 그래서 어떻게 특정 사용자가 내 앱을 다시 설치할 수 있는지 찾아 볼 수 있습니다.iOS 앱에서 구현할 인앱 구매 유형은 무엇입니까?

나는 인앱 스토어 유형을 읽었습니다. 그 작은 나를 위해 혼란. 나는 Non-cpnsumable 타입을 구현하여 기본적으로 한 번 제품을 구매하고 오랫동안 사용합니다. 내 경우도 비슷하지만 사용자는 무료로 첫 6 개월 이상 내 앱을 사용하지 않아야합니다.

+0

구현에 관계없이 위험한 디자인처럼 보입니다. "11.9 승인 된 특정 콘텐츠 (예 : 영화, TV 프로그램, 음악, 도서)를 제외하고 제한된 시간 후에 만료되는 콘텐츠 또는 서비스가 포함 된 앱은"https : //developer.apple.com/appstore/resources/approval/guidelines.html – Jonah

답변

0

키 체인을 사용하여 처음 시작 날짜를 저장할 수 있습니다. 앱이 점심 식사를 할 때마다 저장된 날짜와 현재 날짜의 차이를 확인합니다. 사용자가 6 개월 이상 구매할 수없는 경우. 키 체인은 앱이 설치 해제 되어도 데이터를 삭제하지 않습니다. 앱을 제거한 후에도 저장된 데이터가 유지됩니다. 다시 앱을 설치하고 실행하면 이전 스토어 데이터가 제공됩니다.

+0

사용자가 기기의 날짜를 변경하면 어떻게됩니까? – Apurv

+0

복용하는 날짜는 장치 날짜에 따라 다릅니다. 날짜를 완전히 제어하려면 서버에서 날짜를 가져옵니다. 앱이 실행될 때마다 서버에 현재 날짜를 알려주십시오. – user3663584

+0

그런 경우 연결이없는 기기는 앱이 6 개월 후에도 실행되도록 허용합니다 .. – Apurv

0

앱 설치의 현재 날짜를 백그라운드 프로세스에서 계속 확인하고 6 개월이 지나면 인앱 구매 프로세스의 유효성을 검사해야합니다. 참조 용 코드를 첨부했습니다.

-(void)dateCheck 

{ 

NSDate *current = [NSDate date]; 

NSDateFormatter *weekFormatter = [[NSDateFormatter alloc] init]; 

[weekFormatter setDateFormat:@"dd-MM-yyyy"]; 

NSDate *expirDate=[current dateByAddingTimeInterval:60*60*24*14]; 

NSString *expireString = [weekFormatter stringFromDate:expirDate]; 


[[NSUserDefaults standardUserDefaults]setValue:expirDate forKeyPath:@"expireDate"]; 

[[NSUserDefaults standardUserDefaults]synchronize]; 

} 
+1

사용자가 앱을 제거하면 NSUserDefaults 값도 삭제됩니다. – user3663584

0

장치 식별을 위해 장치 UDID 또는 장치 토큰을 사용할 수 있습니다. 그리고 UDID 장치는 6 개월 이상 허용되지 않습니다. 동일한 계정 로그인을 사용할 수도 있습니다. 새 사용자 ID로 로그인하십시오. 그리고 두 가지를 모두 고려하여 식별 할 수 있습니다.