Mac - локализуйте plist с помощью pyinstaller - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть приложение Mac, созданное с помощью pyinstaller. Я добавил "NSCalendarsUsageDescription", "NSContactsUsageDescription" в Info.plist. Это отлично работает для английского языка по умолчанию.

Теперь я хочу добавить Infoplist.string файлы для локализации над строками. Я попытался скопировать fr.lproj/Infoplist.string в build app/Contents/Resources. Это не сработало.

Нужно ли где-нибудь добавить эту ссылку в файл .spec? Или что-то еще, что мне не хватает.

EDIT

Я создал тестовое приложение в xcode 10. Добавил «NSCalendarsUsageDescription» в Info.plist Добавлен следующий код

NSArray* dirs = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Calendars"] error:&error];

выдает ошибку

Error Domain=NSCocoaErrorDomain Code=257 "The file “Calendars” couldn’t be opened because you don’t have permission to view it." UserInfo={NSUserStringVariant=(
    Folder
), NSURL=file:///Users/insync/Library/Calendars, NSFilePath=/Users/insync/Library/Calendars, NSUnderlyingError=0x600000c5c870 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

Согласно https://developer.apple.com/videos/play/wwdc2018/718/, Mac Mojave должен дать согласие на приглашение пользователя с просьбой предоставить разрешения на использование Календарей.

Я подписал это приложение и попробовал. Все та же ошибка.

1 Ответ

0 голосов
/ 18 сентября 2018

Наконец-то нашел проблему. NSCalendarsUsageDescription при добавлении без кавычек добился цели. Не уверен, почему раньше он не работал должным образом.

О редактируемой части, нам нужно включить доступ к календарю из Возможностей -> Песочница. Тогда только приложение может получить доступ к календарям.

...