Я понимаю, что немного опоздал с подготовкой к песочнице, но так оно и есть.
Я разрабатываю для OS X 10.9. Приложение отображает данные о событиях календаря, но не позволяет редактировать, поэтому я включил функцию календарей.
Приложение отлично работает с включенной песочницей, когда я запускаю его из Xcode, но когда я экспортирую его, подписанное с идентификатором разработчика, приложение запускается, но не может получить доступ к данным календаря. Более того, система никогда не просит разрешить приложению доступ к данным календаря.
Когда я запускаю приложение, оно запускается, но не показывает никаких данных. В консоли sandboxd выдает кучу ошибок, которые выглядят так:
sandboxd: ([54]) appleeventsd(54) deny file-read-metadata /Library
а также
sandboxd: ([54]) appleeventsd(54) deny mach-lookup com.apple.ocspd
Я проверил права приложения с помощью codesign -d --entitlements
, и он подтверждает, что оно изолировано и имеет права календаря. Однако, когда я проверяю в приложении, есть ли у него разрешение на доступ к [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]
, оно, что неудивительно, учитывая, что оно никогда не спрашивало, возвращает EKAuthorizationStatusNotDetermined
.
Я чувствую, что мне не хватает чего-то довольно простого, касающегося прав, подписи кода или развертывания, но я не могу понять, что это такое. И поэтому я отдаюсь на ваше коллективное милосердие и мудрость.
10/4/14 2:23:42.841 PM appleeventsd[24]: <rdar://problem/11489077> A sandboxed application with pid 1671, "XXX" checked in with appleeventsd, but its code signature could not be validated ( either because it was corrupt, or could not be read by appleeventsd ) and so it cannot receive AppleEvents targeted by name, bundle id, or signature. Error=ERROR: #100013 { "NSDescription"="SecCodeCopySigningInformation() returned 100013, -." } (handleMessage()/appleEventsD.cp #2100) com.apple.root.default-qos
- person Hendrik   schedule 04.10.2014