5 votes

Sandboxing my App with Scripting Bridge to send email

Je suis en train d'utiliser un pont de script pour envoyer des e-mails depuis mon application Mac. Maintenant, je dois sandboxer l'application et l'envoi d'e-mails ne fonctionne plus lorsque le sandboxing est activé.

Est-ce que quelqu'un sait comment résoudre ce problème?

Merci, Andreas

Code:

/* créer un objet Scripting Bridge pour parler à l'application Mail */
    MailApplication *mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];

/* créer un nouvel objet de message sortant */
MailOutgoingMessage *emailMessage =
[[[mail classForScriptingClass:@"outgoing message"] alloc]
 initWithProperties:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [self.subjectField stringValue], @"subject",
  [[self.messageContent textStorage] string], @"content",
  nil]];

/* ajouter l'objet à l'application Mail */
[[mail outgoingMessages] addObject: emailMessage];
...

`

4voto

Fabian Kreiser Points 5239

Vous ne pouvez pas utiliser ScriptingBridge avec le Bac à sable activé. Veuillez soumettre un rapport de bogue. C'est ce qu'Apple recommande, si le Bac à sable pose problème et qu'il n'y a pas d'autres solutions. Ils pourraient ajouter des autorisations (pas seulement des exceptions temporaires) pour le ScriptingBridge, mais pour le moment il n'y a pas plus d'informations disponibles.

Il existe des clés d'autorisation, en particulier la clé com.apple.security.temporary-exception.apple-events, que vous pouvez ajouter à votre fichier Entitlements.plist, mais la clé pour les Apple Events est une exception temporaire.
Malheureusement, je n'ai pas réussi à faire fonctionner ScriptingBridge même avec les autorisations correctes définies. J'espère que vous êtes plus chanceux que moi.

Apple va exiger le Bac à sable pour toutes les applications soumises à l'App Store pour Mac à partir du 1er novembre !

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

3voto

6 1 Points 549

Ajoutez ce code à votre Entitlements.plist, j'ai testé c'est bon. Maintenant je peux obtenir le courrier sélectionné de Mail.

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

    com.apple.mail

2voto

Chuck H Points 406

J'ai modifié l'application d'exemple SBSendEmail d'Apple pour être Sandboxée et je peux composer un e-mail avec succès. Il semble qu'il n'est pas possible d'envoyer l'e-mail, mais au moins vous pourriez tout configurer pour que l'utilisateur n'ait qu'à appuyer sur envoyer.

https://github.com/Whiffer/SBSendEmail

-1voto

feell Points 11
de mac os x 10.8 et ultérieur, il a changé :

com.apple.security.scripting-targets

    com.apple.mail

        com.apple.mail.compose

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X