Ни с того ни с сего я не могу получить закладки с областью безопасности

Черт возьми, эта песочница приводит меня в отчаяние: у меня есть приложение, которое было выпущено в магазине Apple (так что, теоретически, оно прошло проверку...), это проигрыватель слайд-шоу — ничего особенного — пользователь может перетаскивать изображения на NSTableView или выберите через NSOpenPanel. В любом случае, я подумал, что буду использовать его сам, поэтому я перекомпилировал копию на свой ноутбук, и внезапно мне не разрешено делать закладки безопасности:

QuickSlide(1412) deny mach-lookup com.apple.scopedbookmarksagent.xpc

Вышеприведенное появляется всякий раз, когда я перетаскиваю изображения или выбираю их через NSOpenPanel.

У меня есть следующие права:

введите здесь описание изображения

Код, который я использую для создания закладок:

-(NSData*)genSec:(NSURL*)aURL
{
    NSError *error;
    NSData  *secData = [aURL bookmarkDataWithOptions:(NSURLBookmarkCreationWithSecurityScope | NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess | NSURLBookmarkCreationPreferFileIDResolution)
                     includingResourceValuesForKeys:nil relativeToURL:nil error:&error];
    if (error) {
        [self setReport: [NSString stringWithFormat:@"Can't access %@ due to SandBoxing",aURL]];
        return nil;
    }
    return secData;
}

Разумеется, метод report также запускается вместе с ведением журнала консоли.

Это никогда не делалось раньше за те месяцы, что я потратил на разработку. Я также попробовал это на своем ящике Mac Pro для разработчиков, попробовал подписать код с другой подписью или без нее и даже загрузил его из App Store (дважды пробовал с двумя разными учетными записями); все с тем же результатом. Я также использовал очень удобное приложение Receigen для проверки прав в скомпилированном пакете. У меня 10.7.5. Единственное, что мешает ему выдавать ошибки, - это снять флажок «включить песочницу» в Xcode и скомпилировать.

Ааааааааааааааааааааааааа Может ли кто-нибудь указать на очевидную ошибку, которая каким-то образом проскользнула через двух бета-тестеров, меня и обозревателя App Store...?!!!!

Это должно быть что-то очевидное, не так ли?

ОБНОВЛЕНИЕ: я попросил коллегу загрузить свежую копию на свой ноутбук, и проблем с песочницей не возникло. Я все еще был бы признателен, если бы кто-нибудь мог пролить свет на то, что происходит с моими установками...

Тодд.


person Todd    schedule 10.03.2013    source источник


Ответы (1)


Конечно, из ваших прав кажется, что это что-то очевидное. Вам также необходимо добавить это:

com.apple.security.files.bookmarks.app-scope

Я не знаю, почему это работало раньше, а теперь нет, но я уверен, что вам нужно объявить это право для работы закладок в области безопасности.

person Alex    schedule 24.03.2013
comment
Алекс, спасибо, попробую. - person Todd; 24.03.2013
comment
Да, это было так. Я не могу поверить, что это прошло проверку и было замечено как работа на машине тестировщика. Это странно. Моя единственная мысль заключается в том, что повторная компиляция в какой-то момент неправильно перезаписала файл прав. Я знаю, что вещи в группе вспомогательных файлов могут зависать, если вы не сделаете надлежащую очистку старой сборки. - person Todd; 25.03.2013
comment
Что ж, даже если мы не понимаем, почему это не сработало, я рад, что мы исправили проблему. - person Alex; 25.03.2013
comment
Возможно, это сработало, потому что это право было введено только в 10.7.3, а проверка приложения / ваш тестер использовали более старую версию. - person Mojo66; 05.10.2019