NSTask is pretty easy to do this with. For a synchronous call, you can use something like this fragment:
NSString *path = @"/path/to/executable";
NSArray *args = [NSArray arrayWithObjects:..., nil];
[[NSTask launchedTaskWithLaunchPath:path arguments:args] waitUntilExit];
The -waitUntilExit
call makes sure it finishes before proceeding. If the task can be asynchronous, you can remove that call and just let the NSTask do it’s thing.