изменить язык клавиатуры программно в SANDBOX (TISSelectInputSource)

Я пытаюсь изменить раскладку клавиатуры программно. Я нашел решение здесь программно изменить исходный язык ввода OSx, но оно не работает в изолированном приложении. Я обнаружил, что мне нужно установить исключение в файле прав, точнее com.apple.security.temporary-exception.mach-lookup.global-name

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>com.apple.security.app-sandbox</key>
      <true/>
      <key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
      <array>
        <string>com.apple.tsm.portname</string>
      </array>
    </dict>
</plist>

Когда я запускаю приложение, я все еще получаю сообщение об ошибке 16.03.15 17:47:48,000 kernel[0]: Sandbox: my_app(3704) deny mach-lookup com.apple.tsm.portname в консоли. Вот документация по изменению раскладки клавиатуры, но ничего о песочнице. https://developer.apple.com/library/mac/documentation/TextFonts/Reference/TextInputSourcesReference/index.html#//apple_ref/c/func/TISSelectInputSource Есть идеи?


person Kryštof Matěj    schedule 16.03.2015    source источник