Как изменить Info.plist в подписанном пакете?

959
zyklus

Я хочу изменить флаг в Info.plistподписанном OSX-приложении (в частности, я просто хочу установить Application is agent (UIElement) = trueтак, чтобы он не отображался в доке).

Во- первых, он не позволит мне изменить файл непосредственно, в значительной степени независимо от того, что (он игнорирует sudo chmod, sudo chflagsи т.д.)

Поэтому я скопировал список в другом месте, изменил его и скопировал обратно. Теперь OSX не будет открывать приложение, потому что подпись кода не совпадает.

Я понимаю, что это общая проблема безопасности, но есть ли у кого-нибудь обходной путь?

2
Возможно, у вас есть обходной путь сейчас :(? #zoidbergface Liviu 7 лет назад 0
Этому вопросу 2 года, задайте новый. Я не думал об этом годами :) zyklus 7 лет назад 0
Спасибо, я пытаюсь это здесь: https://stackoverflow.com/questions/46650134/how-to-change-info-plist-in-a-signed-package Liviu 7 лет назад 0
`codesign --force --verbose = 4 --sign" Приложение с идентификатором разработчика: (`занимает менее 10 секунд. Liviu 7 лет назад 0

1 ответ на вопрос

2
Tom Carpenter

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" Приложение с идентификатором разработчика: (`. Заметьте, здесь нет `--deep`. Это займет менее 10 секунд. Liviu 7 лет назад 0