Песочница для моего приложения с использованием Scripting Bridge для отправки электронной почты - PullRequest
5 голосов
/ 02 сентября 2011

Я использую скриптовый мост для отправки писем из моего Mac App.Теперь мне нужно изолировать приложение от песочницы, и отправка писем больше не работает, когда включена песочница.

Кто-нибудь знает, как это исправить?

Спасибо, Андреас

Код:`

/* 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];
...

`

Ответы [ 4 ]

4 голосов
/ 02 сентября 2011

Вы не можете использовать ScriptingBridge с включенной песочницей.Пожалуйста, отправьте отчет об ошибке.Это то, что Apple рекомендует, если Sandboxing является проблемой для вас, и нет других решений.Они могут добавлять права (не только временные исключения ) для ScriptingBridge, но на данный момент больше нет никакой доступной информации.

Есть Ключи с правами , особенноКлюч com.apple.security.temporary-exception.apple-events можно добавить в файл Entitlements.plist, но ключ для событий Apple - временное исключение .
К сожалению, мне не удалось заставить работать ScriptingBridge даже с правильными установленными правами,Я надеюсь, что вы удачливее меня.

Apple будет требовать «песочницу» для всех приложений, представленных в Mac App Store начиная с 1 ноября !

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

3 голосов
/ 30 октября 2012

Добавьте этот код в свой Entitlements.plist, я проверял. Все в порядке. Теперь я могу получить выбранную почту из Mail.

    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
    <string>com.apple.mail</string>
    </array>
2 голосов
/ 22 апреля 2014

Я изменил образец приложения Apple SBSendEmail, чтобы он был изолированным и я мог успешно создать электронное письмо. Похоже, что отправить электронное письмо невозможно, но, по крайней мере, вы можете настроить все, чтобы пользователь просто нажал кнопку отправки.

https://github.com/Whiffer/SBSendEmail

0 голосов
/ 13 ноября 2013
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>
...