ओएस एक्स 10.11 का उपयोग कर एक शैल स्क्रिप्ट लपेटने वाले .app को साइन करना 10.10 या उससे नीचे की पुष्टि करने में विफल रहता है। मैं 10.10 और 10.9 पर हस्ताक्षर कर सकता हूं और यह 10.9, 10.10 और 10.11 पर सत्यापित करता है।ओएस एक्स 10.11 में टूटी शेल स्क्रिप्ट रैपिंग अनुप्रयोगों पर हस्ताक्षर कर रहा है?
मैंने इसे दिखाने के लिए github पर दो उदाहरण ऐप्स और एक स्क्रिप्ट डाली है। दो HelloWorld.app की सामग्री केवल बाइनरी में सामग्री/मैकोज़/हैलोवर्ल्ड में भिन्न होती है। एक शेल स्क्रिप्ट है, दूसरा संकलित उद्देश्य सी है। दोनों संस्करणों के लिए
साइन इन करना काम करता है और 10.11 पर पुष्टि करता है:
शैल स्क्रिप्ट संस्करण:
codesign -s "${signing_identity}" -v shell-script/HelloWorld.app
signed bundle with generic [liamsharp.helloworld]
codesign -vv shell-script/HelloWorld.app
shell-script/HelloWorld.app: valid on disk
shell-script/HelloWorld.app: satisfies its Designated Requirement
ऑब्जेक्टिव-सी संस्करण:
codesign -s "${signing_identity}" -v objective-c/HelloWorld.app
signed bundle with Mach-O thin (x86_64) [liamsharp.helloworld]
codesign -vv objective-c/HelloWorld.app
objective-c/HelloWorld.app: valid on disk
objective-c/HelloWorld.app: satisfies its Designated Requirement
लेकिन खोल स्क्रिप्ट संस्करण पर सत्यापित करने में विफल 10.10 और 10.9:
codesign -vv shell-script/HelloWorld.app
shell-script/HelloWorld.app: invalid signature (code or signature have been modified)
मुझे दूसरी 10.11 मशीन तक पहुंच मिली है और यह एक ही समस्या तब होती है जब यह .app की ओर संकेत करता है। मुझे 10.9 मशीन तक पहुंच मिली है, और यह भी सत्यापित करने में विफल रहता है।
शैल स्क्रिप्ट .app के लिए उत्पादित _CodeSignature निर्देशिका में कोई अंतर है।
यहाँ है कि यह कैसे जब 10.10 पर हस्ताक्षर किए गए:
CodeDirectory
CodeRequirements
CodeResources
CodeSignature
लेकिन जब 10.11 पर हस्ताक्षर किए हम कुछ अतिरिक्त फ़ाइलें प्राप्त:
CodeDirectory
CodeRequirements
CodeRequirements-1
CodeResources
CodeSignature
CodeTopDirectory
वहाँ एक जादू विकल्प मैं करने के लिए codesign के लिए याद कर रहा हूँ है इसे काम करने की अनुमति दें? या कोई बग है?
यह ओएस एक्स 10.11 पर 'कोडइन' के साथ एक बग प्रतीत होता है। बग ऑटोमेटर के 'डीफिनिशन' बंडलों को भी प्रभावित करता है। मैंने ऐप्पल के साथ आरडीआर: // 26297046 के रूप में बग दायर किया है। –
मैंने 26363618 भी भर दिया है। – CodeBuddy
धन्यवाद। मैं इस सवाल पूछने और परीक्षण मामले तैयार करने की सराहना करता हूं। यह ओएस एक्स बग का सामना करने वाले अन्य लोगों को ढूंढने के लिए आश्वस्त था। –