2011-09-02 14 views
5

Estoy utilizando un puente de scripting para enviar correos desde mi aplicación Mac. Ahora necesito guardar la aplicación en una zona de pruebas y enviar correos ya no funciona mientras el espacio aislado está habilitado.Sandboxing mi aplicación con Scripting Bridge para enviar correo electrónico

¿Alguien sabe cómo solucionarlo?

Gracias, Andreas

Código: `

/* 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

¿Encontró una solución? – Tibidabo

Respuesta

4

No se puede utilizar el ScriptingBridge con Sandboxing habilitado. Por favor presente un informe de error. Esto es lo que Apple recomienda, si Sandboxing es un problema para ti y no hay otras soluciones. Pueden agregar derechos (no solo excepciones temporales) para ScriptingBridge, pero a partir de ahora no hay más información disponible.

Hay Entitlements Keys, especialmente la clave com.apple.security.temporary-exception.apple-events, se puede añadir a su archivo Entitlements.plist, pero la clave para Apple Events es una excepción temporal.
Lamentablemente, no he podido hacer funcionar ScriptingBridge incluso con los derechos correctos establecidos. Espero que seas más afortunado que yo.

Apple va a requerir Sandboxing para todos aplicaciones presentadas a la Mac App Store a partir de la 1 ª de de noviembre de!

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

+0

PUEDE utilizar ScriptingBridge con Sandboxing habilitado. Sin embargo, solo podrá redactar un correo electrónico. Enviar un correo electrónico no parece estar permitido por las aplicaciones de Sandboxed. Ver mi nueva respuesta para un proyecto de muestra. –

+0

Genial, gracias! Sin embargo, eso no resuelve el problema de la excepción temporal. –

3

añadir este código a su Entitlements.plist, he probado Es ok.i puede ser seleccionado a partir de correo electrónico ahora.

<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

he modificado aplicación de ejemplo SBSendEmail de Apple para ser espacio aislado y se pueden componer con éxito un e-mail. Parece que no es posible enviar el correo electrónico, pero al menos puede configurar todo para que el usuario simplemente presione enviar.

https://github.com/Whiffer/SBSendEmail

Cuestiones relacionadas