2014-03-03 54 views
1

在我的應用程序中,如果發生崩潰,我可以選擇將郵件發送給支持團隊。爲此,我使用sbsendmail代碼發送郵件。啓用沙箱模式後,我添加了這個Mac App Store拒絕使用已棄用的沙盒權利

<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

什麼OSStatus錯誤的,什麼是控制檯在事件發生後馬上告訴你。我懷疑你運氣不好。如果你這樣做'sdef /Applications/Mail.app/ | grep訪問組「,你沒有太多的工作。您可能可以撰寫郵件但不發送。 –

+0

也看到http://stackoverflow.com/questions/7287060/sandboxing-my-app-with-scripting-bridge-to-send-email –

+0

@WarrenBurton它顯示此錯誤消息「該操作無法完成。( OSStatus錯誤-10004。)「在alertbox中。是的,我可以撰寫我的信息,但無法以編程方式發送。如果我檢查我的郵件,這些撰寫的郵件將保存在草稿中。 – santhosh

回答

3

我的理解是,Mail有一個腳本編寫目標,僅用於撰寫郵件,不發送。因此,要編寫消息,請使用腳本目標,就像您所做的那樣。要發送消息,您可能需要申請一個臨時Apple事件例外,就像您最初嘗試的那樣。你應該在評論者筆記中解釋爲什麼你需要這個例外,並希望他們會批准它。如果沒有,那麼您可能需要提交申訴並引用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

相關問題