Mac App Store拒绝使用已弃用的沙箱权利

时间:2014-03-03 14:14:04

标签: macos sandbox

在我的应用程序中,如果发生崩溃,我可以选择向支持团队发送邮件。为此,我使用sbsendmail代码发送邮件。启用沙盒模式后,我已添加此

    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
    <string>com.apple.mail</string>
    </array> 

在我的应用程序权利中。它工作正常,我将我的应用程序提交到mac商店。但是由于以下原因,我的应用被拒绝了。

From Apple team: 

We found that your app uses a deprecated sandbox entitlement:

com.apple.security.temporary-exception.apple-events - com.apple.mail

Please revise your app to use the following entitlement:

com.apple.security.scripting-targets 

在此拒绝后,我已将以上权利替换为以下内容。

<key>com.apple.security.scripting-targets</key>
<dict>
    <key>com.apple.mail</key>
    <array>
        <string>com.apple.mail.compose</string>
    </array>
</dict> 

但是我在邮件发送部分得到了osstatus错误异常。正好在这一行

[emailMessage send];

任何人都可以提供完成问题的解决方案,并遵循mac商店验收标准。

感谢。

1 个答案:

答案 0 :(得分:3)

我的理解是Mail有一个脚本目标,只用于编写邮件,而不是发送邮件。因此,要编写消息,请使用脚本目标,就像您所做的那样。要发送消息,您可能需要请求临时的Apple Events异常,就像您最初尝试过的那样。您应该在审阅者备注中解释为什么需要此例外,并希望他们会批准它。如果没有,那么您可能需要提交申诉并引用Apple的文档,说明您需要使用临时权利的原因。此外,您应该在Radar中提交错误报告,请求Apple添加脚本目标以发送邮件。

请参阅...

https://developer.apple.com/library/Mac/qa/qa1802/_index.html

https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html#//apple_ref/doc/uid/TP40011195-CH5-SW3