Appleプッシュ通知を使用しています。ご存知のように、devとprodの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であり、私のアプリはプッシュに開発ゾーンを使用していることがわかります。
どうしたの?