osx - Jenkins web download corrupts mac app code signing -
i'm seeing bizarre code-signing / file-transfer issue , haven't found clue cause, wonder if else has idea.
i have mac os x build server running jenkins builds , signs mac components , apps fine. these include apps final cut pro x plugins.
when download zip file produced build system through browser (from jenkins build page) these fcpx apps, after unzipping app won't launch - says it's unknown developer, if isn't code signed.
and yet if same build output zip way - downloading via sftp or afp-mounting build machine filesystem - works fine.
it code-signed on build system originally, because installer (which built downstream on build system) deploys app code-signed.
why downloading zip through browser jenkins destroy app's code signature? i've tried few browsers (chrome, firefox, safari) , it's same. i'd suspect it's issue app bundle bits or sim. except download wrapped in zip archive shouldn't matter. it's created os-native /usr/bin/zip command (not ant or python or other possibly non-bundle-savvy version).
so turns out os x gatekeeper's fault - doesn't appear have jenkins. os adds quarantine attribute zip tags along app bundle when unzipped, , seems cause treat app unsigned, though signed.
this seems bug in os x. since app signed , gatekeeper settings allow signed apps, should not screwing app quarantine attribute. app works fine , treated signed if deployed means other browser download.
there few workarounds, of coworker discovered.
one download app method other browser - used sftp, afp mounting of build system volume, , http request python script, , of worked.
another strip off quarantine setting after download:
xattr -dr com.apple.quarantine my_file.zip
yet use 7z instead of native unzip / archive manager unzip archive.
Comments
Post a Comment