摘要:判斷 ipa 檔所屬簽名類型
因為小弟文彩不好,總是不喜歡在技術文章講太多廢話,於是本文大家就諒解我不怎麼講解吧,XD
最近公司要求小弟在應用程式中加入對自身簽署證書的校驗,防止ipa檔被破解。於是小弟就想到ipa中embedded.mobileprovision這個檔案(欸,不要問我這個檔案是什麼)
於是 :
- (void)readMobileprovision{
NSData *provisioningProfile = nil;
NSData *raw = [NSData dataWithContentsOfFile:[NSBundle.mainBundle URLForResource:@"embedded" withExtension:@"mobileprovision"]];
char *start = memmem(raw.bytes,
raw.length,
"",
8);
if (end) {
provisioningProfile = [NSData dataWithBytes:start length:8 + end - start];
}
}
if (provisioningProfile) {
NSDictionary* plist = [NSPropertyListSerialization propertyListWithData:provisioningProfile
options:NSPropertyListImmutable
format:0
error:0];
NSLog(@"\n\n\nTeam name: %@", plist[@"TeamName"]);
if ([plist[@"ProvisionsAllDevices"] boolValue]) {
NSLog(@"Enterprise");
} else if ([plist[@"ProvisionedDevices"] count] > 0) {
if ([plist[@"Entitlements"][@"get-task-allow"] boolValue]) {
NSLog(@"Development");
} else {
NSLog(@"Ad Hoc");
}
} else {
NSLog(@"App Store");
}
}
}
tips : 如果讀取檔案失敗,那就表明ipa已經被破解了