मैंने अभी मैक ऐप स्टोर में एक ऐप सबमिट किया है जो कुछ बाहरी गतिशील पुस्तकालयों का उपयोग करता है।

मुझे Apple से यह कहते हुए एक ईमेल मिला कि:

अमान्य हस्ताक्षर - निष्पादन योग्य some.app/Contents/Frameworks/some.dylib हस्ताक्षरित नहीं है, हस्ताक्षर अमान्य है, या यह Apple सबमिशन प्रमाणपत्र के साथ हस्ताक्षरित नहीं है। अधिक जानकारी के लिए कोड साइनिंग और एप्लिकेशन सैंडबॉक्सिंग गाइड देखें।

समस्या निश्चित रूप से इस तथ्य के कारण होती है कि मैंने केवल "मेरे" निष्पादन योग्य पर हस्ताक्षर किए हैं, पुस्तकालयों पर नहीं।

क्या पुस्तकालयों पर हस्ताक्षर करना सामान्य/अच्छा अभ्यास है, भले ही वे मेरे द्वारा नहीं लिखे गए हों?

1
houbysoft 29 अक्टूबर 2011, 06:31

1 उत्तर

सबसे बढ़िया उत्तर

फ़ाइल को डिजिटल रूप से हस्ताक्षर करने के बारे में सोचें:

  1. उस फ़ाइल की अखंडता को सत्यापित करने का एक साधन, जिससे यह पता लगाना संभव हो जाता है कि क्या इसे संशोधित किया गया है;

  2. यह सत्यापित करने का एक साधन है कि उस फ़ाइल को प्रकाशित किसने किया, जो संबंधित स्रोत कोड लिखने के समान नहीं है। आप प्रमाणित कर रहे हैं कि वास्तव में आप ही थे जिन्होंने उस फ़ाइल को शिप किया था।

चूंकि गतिशील पुस्तकालयों में निष्पादन योग्य कोड होता है, इसलिए यह अच्छा अभ्यास है (और कुछ मामलों में, जैसे कि एमएएस, अनिवार्य) उन्हें डिजिटल रूप से उसी कारण से हस्ताक्षर करना है जिस कारण से आप मुख्य निष्पादन योग्य फ़ाइल पर हस्ताक्षर करते हैं: यह गारंटी देना कि आपका आवेदन बिल्कुल वही है जो आप (और केवल आप) ) आपकी बिल्ड मशीन से भेज दिया गया है, कोई बदलाव नहीं। एक चल रहे प्रोग्राम में मुख्य निष्पादन योग्य फ़ाइल और सभी लोडेड लाइब्रेरी शामिल हैं। यदि आप केवल मुख्य निष्पादन योग्य फ़ाइल पर हस्ताक्षर करते हैं, तो गतिशील पुस्तकालयों को अहस्ताक्षरित छोड़कर, गतिशील पुस्तकालयों को बदलना संभव होगा (या उन्हें प्रतिस्थापित भी करें), इस प्रकार आपका प्रोग्राम क्या बदलता है।

2
user557219user557219 29 अक्टूबर 2011, 07:36