2016-02-29 10 views
2

Qt4 приложения со структурой расслоения, как что:OS X CodeSign вложенный код модифицируется или недействительный

QtCore.framework/ 
    QtCore -> Versions/Current/QtCore 
    Resources -> Versions/Current/Resources 
    Versions/ 
     4/ 
      QtCore 
      Resources/ 
       Info.plist 
     Current -> 4 

codesign --verbose --force --deep --sign "Certificate Name" Test.app 

Результата: Test.app: подписан пакет с Mach-O тонкими (x86_64) [...] " Название сертификата "является сертификатом кодового знака Комодо

codesign --verify -vvvv Test.app 
Test.app: nested code is modified or invalid 

codesign --verbose --verify Test.app/Contents/Frameworks/QtCore.framework 
Test.app/Contents/Frameworks/QtCore.framework: valid on disk 
Test.app/Contents/Frameworks/QtCore.framework: does not satisfy its designated Requirement 

ps Я попытался подписать вручную всю фреймворк/dylib без опции --deep и тот же результат.

ответ

0

создать папку с именем A внутри версией с тем же содержанием 4, изменить символические ссылки на Папку особенно current->

пытается подписать сейчас, и это может подписать. Но проблема может быть в двоичном коде, он будет использовать другую структуру, чем A, которую вы можете проверить с помощью otool -L (берегите большой L и не маленький l)

Чтобы изменить его, вам необходимо использовать install_name_tool

удачи вам и получите удовольствие