2012-11-09 3 views
0

Apple Push Notification을 사용합니다. 아시다시피 2 개의 구역이 있습니다 : dev & prod.Apple 푸시 알림 영역 자동 결정

그래서 우리는 영역을 자동으로 결정하기로 결정했는데, 어떤 영역을 만들어야합니까? & 푸시를 보내십시오.

embedded.mobileprovision은 나를 도와줍니다.

<key>aps-environment</key> 
<string>development</string> 

및 임시 & 배포 -이 : 내가 개발 조항이 라인이 포함되어 있는지 결정

<key>aps-environment</key> 
<string>production</string> 

그래서 내가이 코드를 썼습니다 : 그래서

+(BOOL)isDevelopmentProvision{ 

    BOOL isDev; 

    NSString *profilePath = [[NSBundle mainBundle] pathForResource:@"embedded.mobileprovision" ofType:nil]; 
    NSString *profileAsString = [NSString stringWithContentsOfFile:profilePath encoding:NSISOLatin1StringEncoding error:NULL]; 
    NSRange apsenvironmentRange = [profileAsString rangeOfString:@"<key>aps-environment</key>"]; 

    if(apsenvironmentRange.location != NSNotFound){ 
     NSRange apstypeRange = [profileAsString rangeOfString:@"</" options:NSCaseInsensitiveSearch 
                 range:NSMakeRange(apsenvironmentRange.location+apsenvironmentRange.length, 100)]; 

     isDev = [profileAsString rangeOfString:@"development" options:NSCaseInsensitiveSearch range:NSMakeRange(apsenvironmentRange.location+apsenvironmentRange.length, apstypeRange.location - (apsenvironmentRange.location+apsenvironmentRange.length))].location != NSNotFound; 

    } 

    return isDev; 
} 

을, 그것을 잘 작동합니다 . 하지만 내 앱을 스토어에 제출 한 후에는 isDev이 항상 TRUE이고 내 앱이 푸시를 위해 개발 영역을 사용합니다.

뭐가 잘못 되었나요?

답변

0

위치를 찾지 못할 수도 있습니다 (어떤 이유로)? isDev을 초기화하지 않았습니다. 지역 변수로서 예측할 수없는 내용이있을 수 있습니다. isDev은 값이 정확히 0 인 경우에만 FALSE/NO을 나타냅니다. 다른 모든 경우에는 TRUE/YES이 표시됩니다. 변경해야합니다

BOOL isDev = NO; 
+0

BOOL isDev; NSLog (@ "isDev = % d", isDev) -> "0"- 괜찮습니다. –

관련 문제