I tried copying git to the test bundle, but still got the same error.
How I did it:
- Created a copy files phase to copy /usr/bin/git into the bundle's executable folder, with "code sign on copy" checked
- Used Bundle(identifier: ···)!.url(forAuxiliaryExecutable("git") to find it at runtime
- Set it as the launchPath of a Process object (rather than /usr/bin/git like I was before)
I tried adding CODE_SiGNING_ALLOWED=NO to the build settings for my test target, and it built successfully, but the tests wouldn't run since the test runner is still signed so it couldn't run an unsigned test bundle.
Is there a way to un-codesign an application? Maybe I can do that to the test runner before it runs.
It turns out the fix was to copy git out of Xcode.app, rather than using the one in /usr/bin which is just a little placeholder that forwards to xcrun, and that breaks the sandbox.