2011-09-02 11 views
5

Utilizzo un bridge di script per l'invio di messaggi dalla mia app per Mac. Ora ho bisogno di sandbox l'app e l'invio di mail non funziona più mentre è abilitato il sandboxing.Sandboxing della mia app con Scripting Bridge per inviare e-mail

Qualcuno sa come risolvere il problema?

Grazie, Andreas

Codice: `

/* create a Scripting Bridge object for talking to the Mail application */ 
    MailApplication *mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"]; 


/* create a new outgoing message object */ 
MailOutgoingMessage *emailMessage = 
[[[mail classForScriptingClass:@"outgoing message"] alloc] 
initWithProperties: 
[NSDictionary dictionaryWithObjectsAndKeys: 
    [self.subjectField stringValue], @"subject", 
    [[self.messageContent textStorage] string], @"content", 
    nil]]; 

/* add the object to the mail app */ 
[[mail outgoingMessages] addObject: emailMessage]; 
... 

`

+0

hai trovato una soluzione? – Tibidabo

risposta

4

Non è possibile utilizzare la ScriptingBridge con Sandboxing abilitato. Si prega di presentare una segnalazione di bug. Questo è ciò che Apple consiglia, se Sandboxing è un problema per te e non ci sono altre soluzioni. Potrebbero aggiungere diritti (non solo eccezioni temporanee) per ScriptingBridge, ma al momento non sono disponibili ulteriori informazioni.

ci sono Entitlements Keys, in particolare la chiave com.apple.security.temporary-exception.apple-events, è possibile aggiungere al file Entitlements.plist, ma la chiave per Apple Event è un'eccezione temporanea.
Purtroppo, non sono riuscito a far funzionare ScriptingBridge anche con il set di autorizzazioni corretto. Spero tu sia più fortunato di me.

Apple sta per richiedere Sandboxing per tutti applicazioni presentate al Mac App Store a partire sulla 1 novembre!

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

+0

È possibile utilizzare ScriptingBridge con Sandboxing abilitato. Tuttavia, sarai in grado di comporre un'e-mail. L'invio di un'e-mail non sembra consentito dalle app in modalità sandbox. Vedi la mia nuova risposta per un progetto di esempio. –

+0

Cool, grazie! Questo però non risolve il problema dell'eccezione temporanea. –

3

Aggiungi questo codice al vostro Entitlements.plist, ho provato E 'ok.I può essere selezionato la posta da Mail ora.

<key>com.apple.security.temporary-exception.apple-events</key> 
    <array> 
    <string>com.apple.mail</string> 
    </array> 
-1
of mac os x 10.8 and later, it has changed: 

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

Ho modificato applicazione di esempio SBSendEmail di Apple per essere in modalità sandbox e possono comporre con successo una e-mail. Sembra che non sia possibile inviare l'e-mail, ma almeno è possibile impostare tutto per l'utente solo per premere invio.

https://github.com/Whiffer/SBSendEmail

Problemi correlati