Hi Quinn, thanks for your response. I was finally able to get it to work from the command line. At first I've built an app bundle target and the helper binary target (which would be compiled and then copied into the app bundle) and both targets had the exact same bundle identifier (because they'd be both deployed in the same bundle eventually).
That seemed to be what was causing the problem on the command line, because the export options plist would assign both the helper binary as well as the main app bundle binary the same provisioning profile.
Now I've changed the bundle identifier for the helper binary target to something unique and used the same export options plist, which only lists the bundle identifier and the corresponding provisioning profile for the main binary and everything works as expected. (The helper binary does not need a provisioning profile and is a single binary).
In the Xcode GUI I'm able to select the provisioning profile for each target manually, that's probably why it wasn't an issue there.