След скорошно изпращане получих следната грешка:
Невалиден подпис – вложеният пакет приложения (FooBar.app/Contents/Frameworks/GData.framework) не е подписан, подписът е невалиден или не е подписан със сертификат за подаване на Apple. Обърнете се към Ръководството за подписване на код и тестова среда на приложения за повече информация.
Невалиден подпис – вложеният пакет с приложения (FooBar.app/Contents/Frameworks/Growl.framework) не е подписан, подписът е невалиден или не е подписан със сертификат за подаване на Apple. Обърнете се към Ръководството за подписване на код и тестова среда на приложения за повече информация.
Невалиден подпис – вложеният пакет от приложения libcurl (FooBar.app/Contents/Frameworks/libcurl.framework) не е подписан, подписът е невалиден или не е подписан със сертификат за подаване на Apple. Обърнете се към Ръководството за подписване на код и тестова среда на приложения за повече информация.
Така че подписах всички рамкови пакети според Technote 2206:
codesign -f -v -s "3rd Party Mac Developer Application: Name" ./libcurl.framework/Versions/A/libcurl
codesign -f -v -s "3rd Party Mac Developer Application: Name" ./libcurl.framework/Versions/A/libssh2.1.dylib
codesign -f -v -s "3rd Party Mac Developer Application: Name" ./Growl.framework/Versions/A/Growl
codesign -f -v -s "3rd Party Mac Developer Application: Name" ./GData.framework/Versions/A/GData
Technote 2206 казва:
Рамки за подписване
Тъй като рамките са пакети, изглежда логично да заключим, че можете да подпишете рамка директно. Това обаче не е така. За да избегнете проблеми при подписване на рамки, уверете се, че подписвате конкретна версия, а не цялата рамка:
# Това е грешният начин:
codesign -s my-signing-identity ../FooBarBaz.framework
# Това е правилният начин:
codesign -s my-signing-identity ../FooBarBaz.framework/Versions/A
И когато се опитам да проверя резултатите, изглежда добре за мен:
% codesign -vvv FooBar.app/Contents/Frameworks/libcurl.framework
FooBar.app/Contents/Frameworks/libcurl.framework: valid on disk
FooBar.app/Contents/Frameworks/libcurl.framework: satisfies its Designated Requirement
% codesign -vvv FooBar.app/Contents/Frameworks/Growl.framework
FooBar.app/Contents/Frameworks/Growl.framework: valid on disk
FooBar.app/Contents/Frameworks/Growl.framework: satisfies its Designated Requirement
За забавление се опитах да подпиша пакета рамка директно и той все още беше отхвърлен. Но точно това е, което документацията каза да не се прави.
Някакви предположения защо това ще се счита за невалидно? Използвам същия сертификат, който използвам за кодиране на моето приложение -- този, който е работил в миналото.
Единственото ми предположение би било нещо общо със съществуващите plists (трябва ли да притежавам идентификаторите в Info.plists на рамката?) или права - някакви предложения?