I'm deveoping a network management app, and I need help using App Sandboxing. Terminal is essential to the operation of our app, and not using it would render our app useless. it doesn't need to access any files within terminal other than the SSH, Screen and Telnet applications.
Basically, our app opens terminal and runs a script that automatically types in the credentials of whatever network device you want to configure.
This is not compatible with sandboxing. Consider the script your posted later on; if you can tell Terminal to SSH to a particular server, you could tell Terminal to "rm -rf ~", and that's obviously nonsensical for a sandboxed app.
There's no clear way forward here. AFAICT your options are:
distribute outside of the Mac App Store
put the terminal emulation code within your app — That's a lot of work.
file a bug requesting that Terminal support a scripting access group for setting up Telnet and SSH connections — If you do this, please post your bug number, just for the record.
implement your scripting with NSUserScriptTask — Be aware that App Review has strict rules on how folks can use NSUserScriptTask and a single-purpose app that uses NSUserScriptTask simply to bypass a sandbox restriction is unlikely to be well received.
These options aren't mutually exclusive, so you could explore more than one avenue simultaneously.
Share and Enjoy
—
Quinn "The Eskimo!"
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"