在我的应用程序中,如果发生崩溃,我可以选择向支持团队发送邮件。为此,我使用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商店验收标准。
感谢。
答案 0 :(得分:3)
我的理解是Mail有一个脚本目标,只用于编写邮件,而不是发送邮件。因此,要编写消息,请使用脚本目标,就像您所做的那样。要发送消息,您可能需要请求临时的Apple Events异常,就像您最初尝试过的那样。您应该在审阅者备注中解释为什么需要此例外,并希望他们会批准它。如果没有,那么您可能需要提交申诉并引用Apple的文档,说明您需要使用临时权利的原因。此外,您应该在Radar中提交错误报告,请求Apple添加脚本目标以发送邮件。
请参阅...
https://developer.apple.com/library/Mac/qa/qa1802/_index.html