Я делаю приложение iOS 9 Safari AdBlocker. Я использую модуль AdBlockPlusSafari. Приложение работает хорошо на симуляторе.не может загрузить содержимое SafariBlocker. потому что не может получить доступ к NSUserDefault группы приложений
Но когда вы пытаетесь запустить его на устройстве (iPhone6), он не может перезагрузить contentBlocker.
[SFContentBlockerManager
reloadContentBlockerWithIdentifier:self.contentBlockerIdentifier
completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Error in reloadContentBlocker: %@", error);
}
dispatch_async(dispatch_get_main_queue(), ^{
wSelf.reloading = NO;
[wSelf checkActivatedFlag];
if (completion) {
completion(error);
}
});
}];
дает ошибку Error Domain = ContentBlockerErrorDomain Код = 3 "(NULL)"
Это вызванное доступа к значениям в NSUserDefault (App Group).
- (instancetype)init
{
if (self = [super init])
{
_bundleName = [[[[[NSBundle mainBundle] bundleIdentifier] componentsSeparatedByString:@"."] subarrayWithRange:NSMakeRange(0, 2)] componentsJoinedByString:@"."];
NSString *group = [NSString stringWithFormat:@"group.%@.%@", _bundleName, @"AdBlockerPro"];
NSLog(@"Group name: %@", group);
_adblockProDetails = [[NSUserDefaults alloc] initWithSuiteName:group];
[_adblockProDetails registerDefaults:
@{ AdblockProActivated: @NO,
AdblockProEnabled: @YES
}];
_enabled = [_adblockProDetails boolForKey:AdblockProEnabled];
_activated = [_adblockProDetails boolForKey:AdblockProActivated];
}
return self;
}
Название App Group в приложение хоста и сафари расширения такой же. Но в расширении Safari, когда приложение получает доступ к настройке в NSUserDefault, оно дает мне ошибку. В настройках проекта/возможностях я сделал все для группы приложений. В id приложения это точно относится к имени группы приложений. Это происходит только на устройстве. На симуляторе это работает хорошо. Я не могу найти причину этой ошибки.
Пожалуйста, помогите мне, если вы испытываете это. Ждем вас к вашей помощи.