我使用 Apple 推送通知。如您所知,有 2 个区域:开发和生产。
所以我决定创建自动确定区域,我们必须使用哪个区域来创建订阅和发送推送。
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 并且我的应用程序使用开发区进行推送。
怎么了?