我意识到我在游戏中有点迟到准备好沙箱,但事实就是如此.
我正在为OS X 10.9开发.该应用程序显示日历事件数据,但不允许编辑,因此我启用了日历功能.
当我从Xcode运行它时,该应用程序可以很好地启用沙盒,但是当我使用开发者ID导出它时,应用程序会运行,但无法访问日历数据.更重要的是,系统永远不会要求我允许该应用访问日历数据.
当我运行应用程序时,它会启动,但不会显示任何数据.在Console中,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
.
我觉得我遗漏了一些关于权利,代码签名或部署的非常基本的东西,但我不知道它是什么.所以我把自己放在你的集体怜悯和智慧上.