2015-09-03 5 views
7

पर विफल रहता है, इस बारे में मुझे कोई चिंता नहीं है कि लोग निम्नलिखित समस्या का इलाज कैसे करते हैं।कोड हस्ताक्षर संसाधन नियम पथ जेनकींस, CODE_SIGN_RESOURCE_RULES_PATH

मूल रूप से यह लग रहा है जैसे

मेरे परिस्थितियों "बिल्ड ResourceRules.plist: cannot read resources साथ जेनकींस पर विफल रहता है" कर रहे हैं:

1) जेनकींस

2) स्थानीय रूप से मैं एक अलग शाखा पर Xcode में काम 7 बीटा ()

3) मेरे साथियों 6.4.1 में काम करते हैं और उनके लिए सब कुछ ठीक

4) जेनकींस गुलाम Xcode तरह ही कार्य करता 6.4.1 स्थापित

आप में से कुछ कहेंगे "इस सवाल का लाखों बार पूछा गया था", here, here, here, here की तरह।

लेकिनdocumentation कहते हैं निम्नलिखित:

संसाधन नियम

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

तो मेरा सवाल यह है कि हर कोई बाईपास, हैक, इस मुद्दे को हल करने के लिए इतनी जल्दी क्यों है, जब दस्तावेज स्पष्ट रूप से कहता है कि खाली होना चाहिए और यह अप्रचलित है?

इसके पीछे असली समस्या क्या है? क्यों निर्माण कुछ ऐसी चीजों पर विफल रहता है जो कई सालों से जरूरी नहीं है?

+1

मैं पुष्टि, इस समाधान का यह भयानक है कि कैसे हाल ही में अद्यतन सब कुछ तोड़ दिया Xcode 7. के लिए काम नहीं करता। – dreamzor

उत्तर

5

मुझे एक ही समस्या थी। श्री डैन कटिंग here द्वारा सुझाए गए समाधान मेरे लिए काम करता है।

बस कुछ समय बचाने के लिए, हमें वेब लिंक से क्या चाहिए।

"मावेरिक्स के रूप में, संसाधन नियमों विकल्प क्षुधा पर हस्ताक्षर करने के लिए, लेकिन किसी कारण के लिए स्क्रिप्ट अभी भी कोड हस्ताक्षर उपकरण के साथ इस विकल्प से गुजरता है जब शामिल नहीं किया जाना चाहिए।

वैकल्पिक हल PackageApplication को बदलने के लिए है । स्क्रिप्ट इस (जो sudo का उपयोग की आवश्यकता होगी) स्क्रिप्ट की लाइन 155 कोड हस्ताक्षरकर्ता के माध्यम से पारित करने के लिए मानकों का निर्माण करें जिससे अब वह करता है, इसलिए हम बस-नियम संसाधन संदर्भ निकाल सकते हैं: "

//Remove - Begin 
    - my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", 
    - "--sign", $opt{sign}, 
    - "--resource-rules=$destApp/ResourceRules.plist"); 
//Remove - End 

//Add - Begin 
    + my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", 
    + "--sign", $opt{sign}); 
//Add - Starts 
2

यदि आपने Xcode संस्करण का उपयोग 6.1 से अधिक किया है तो नीचे दी गई पंक्ति

बदलें

$ (एसडीकेआरओटी)/संसाधन नियम।plist

CODE_SIGN_RESOURCE_RULES_PATH = $ (SDKROOT) से /ResourceRules.plist

संबंधित मुद्दे