Отказ App Store из-за программного добавления приложения во все пространства - PullRequest
3 голосов
/ 06 октября 2011

У меня есть приложение, отправленное в магазин приложений, которое было отклонено из-за:

2.30 Приложения, не соответствующие документации файловой системы Mac OS X, будут отклонены

Они утверждают, что моиприложение изменяет файл ~ / Library / Preferences / com.apple.spaces.plist, который не поддерживается.

Мое приложение фактически изменяет этот файл, но только с NSUserDefaults через: (я опускаю некоторый коддля краткости ...)

NSMutableDictionary *spacesDefaults = 
    [[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.spaces"];
NSMutableDictionary *dict = [spacesDefaults objectForKey:@"app-bindings"];
NSString *bundleId = [[[NSBundle mainBundle] bundleIdentifier] lowercaseString];

[dict setObject:@"AllSpaces" forKey:bundleId];
[spacesDefaults setObject:dict forKey:@"app-bindings"];

[[NSUserDefaults standardUserDefaults] setPersistentDomain:spacesDefaults 
                                                   forName:@"com.apple.spaces"];

Мне кажется, что это подпадает под первый пункт "Требования к использованию файловой системы для Mac App Store" http://developer.apple.com/library/mac/#releasenotes/General/SubmittingToMacAppStore/_index.html#//apple_ref/doc/uid/TP40010572

* You may use Apple frameworks such as User Defaults, Calendar Store, and Address Book that implicitly write to files in specific locations, including locations is not allowed to access directly.

Кто-нибудь знает, почему это будет отклонено?Я просто не вижу этого ...

Спасибо!

1 Ответ

0 голосов
/ 20 октября 2011

Это действительно важный вопрос , который я оплакивал на форумах Apple Dev ...

И я предполагаю, что подача запроса радара может иметь эффект, когда-нибудь ... Но, очевидно, это ограничение LAME .. , которое ограничивает способность приложения делать НИЧЕГО вне песочницы .. ДАЖЕ ЕСЛИ это что-то ваше пользователь может сделать ... Это серьезный шаг назад в способности сторонних приложений на Mac выполнять ПРОСТЫЕ, неявные команды пользователя.

Этопохоже на фундаментальный сдвиг парадигмы со стороны Apple.Вот список вышеупомянутых форумов ..

NSUserDefaults can be used only for our own app, 
and sandboxing will not allow to modify other apps defaults

Кроме того, вы не можете каким-либо образом изменять ЛЮБОЕ другое приложение .plist, через XML или иным способом.

И, нет,выполнение defaults write через задачу или терминал в другом домене, кроме ВАШЕГО СОБСТВЕННОГО ПРИЛОЖЕНИЯ также запрещено.Тьфу, это очень раздражает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...