I want to change a flag in the Info.plist of a signed OSX app (specifically I just want to set Application is agent (UIElement) = true so that it doesn't show up in the dock).

First, it won't let me change the file directly, pretty much no matter what (it ignores sudo chmod, sudo chflags, etc)

So I copied the plist elsewhere, modified it and copied it back. Now OSX won't open the app because the code signature doesn't match.

I realize this is a general security issue, but does anyone have a workaround?

  • did you have a workaround now maybe :( ? #zoidbergface – Liviu Oct 9 '17 at 14:36
  • This question is 2 years old, ask a new one. I haven't thought about this in ages :) – zyklus Oct 9 '17 at 14:44
  • Thank you, I try it here: stackoverflow.com/questions/46650134/… – Liviu Oct 9 '17 at 15:37
  • codesign --force --verbose=4 --sign "Developer ID Application: <your name> (<team ID>)" <application> takes less than 10s. – Liviu Oct 11 '17 at 13:34

If you change any file in a signed package, no matter what platform or OS the application is for, it will breaks the digital signature. That's pretty much the whole point of signing it, you place trust in who the publisher is and know that it hasn't been tampered with since being released.

In order to get it to work, you would have to resign the application which would require at the very least a signing certificate valid for signing OSX apps. Not 100% sure what the process is, but getting a certificate wouldn't be free. It may be possible to self sign applications, I'm not sure about the specifics.

  • codesign --force --verbose=4 --sign "Developer ID Application: <your name> (<team ID>)" <application>. Notice, there is no --deep. It takes less than 10s. – Liviu Oct 11 '17 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.