2012-07-29 10 views
13

पर कोडिंग का उपयोग करते समय मैं एक ऐप्पल डेवलपर आईडी प्रमाणपत्र का उपयोग कर एक ऐप बंडल पर हस्ताक्षर कर रहा हूं। मुझे कमांड लाइन टूल का उपयोग करके साइन इन करने की आवश्यकता है क्योंकि हमारा निर्माण स्वचालित है और हमारे टूलचेन से चलता है। समय यह इस आदेश के साथ ठीक काम करता है के 90%:त्रुटि, "टाइमस्टैम्प सेवा उपलब्ध नहीं है।" मैक ओएस एक्स 10.8

ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app 
ws5:bin nick$ spctl --assess MyApp.app 
ws5:bin nick$ 

नोट: MyApp.app मेरा असली आवेदन नाम नहीं है, और <my name here> वास्तविक मूल्य नहीं है।

तो, शायद 1 10 बार में यह रुक-रुक कर इस त्रुटि के साथ विफल:

MyApp.app: The timestamp service is not available. 

मैंने सत्यापित .app spctl --assess साथ संगरोध तंत्र के माध्यम से और यह ज़िप करने और हस्ताक्षर किए फ़ाइल डाउनलोड करके हो जाता है - इसलिए कृपया यह न कहें "आप इसे गलत कर रहे हैं, एक्सकोड का उपयोग करें"। मुझे पता है कि ऐप्पल डेवलपर आईडी प्रमाणपत्र (WWDC video के अनुसार) codesign का उपयोग करके "आधिकारिक तौर पर" अनुशंसा नहीं करता है, लेकिन हमें इसे स्वचालन के लिए उपयोग करने की आवश्यकता है और क्योंकि हमारा ऐप जीसीसी और क्यूटी बिल्ड आउटपुट का एक अजीब संयोजन है।

क्या इस त्रुटि के आसपास की सबसे अच्छी रणनीति फिर से काम करने तक पुनः प्रयास करने के लिए है? मैं बस इतना करना चाहता हूं।

उत्तर

2

मुझे लगता है कि इस पर हस्ताक्षर करने के तरीके से इसका कोई लेना-देना नहीं है। मैंने इस परियोजना को बिना किसी समस्या के, एक्सकोड में आज दो बार अपनी परियोजना का निर्माण किया। लेकिन इस शाम, बिना किसी इंटरनेट एक्सेस के बस पर सवार होने पर, मैंने तीन बार निर्माण करने की कोशिश की और हर बार यह त्रुटि मिली। तो मैंने अपना मैकबुक एयर बंद कर दिया और हम दोनों ने झपकी ली। जब मैं वायरलेस इंटरनेट पर वापस घर आया, तो मैं फिर से निर्माण करने में सक्षम था।

तो जाहिर है, एक्सकोड कोड कोड नहीं करेगा, और इसलिए एक कोड किए गए ऐप को बनाने में विफल रहता है, जब तक कि यह इंटरनेट पर टाइम्स सर्वर तक पहुंच न सके, या ऐसा कुछ। काफी परेशान है कि त्रुटि संदेश यह समझा नहीं है! क्या आपका इंटरनेट एक्सेस अस्थायी है?

जाहिर है, कोडिंग निर्माण चरण को हटाने का ब्रूट फोर्स वर्कअराउंड शायद इसे ठीक करेगा। मुझे easier workaround भी मिला, सिवाय इसके कि मैं शिपिंग के निर्माण के पहले उस टाइमस्टैंप स्विच को चालू करने के लिए याद रखने के लिए एक अनुस्मारक सेट करूंगा। अन्यथा मुझे लगता है कि आपका अन-टाइमस्टैम्प उत्पाद मैक ऐप स्टोर समीक्षा या गेटकीपर विफल हो सकता है।

4

यह ऐप्पल रडार द्वारा ट्रैक किया गया है: // 11785270, मेरे लिए काम करने वाला एक कामकाज हर निर्माण से पहले एक परियोजना को साफ करना है।

+0

ठीक है, यह उतना आसान है जितना आसान है। – codingFriend1

6

यह समस्या नेटवर्क/फ़ायरवॉल समस्याओं से उत्पन्न होती प्रतीत होती है। कम प्रतिबंधक नेटवर्क प्राप्त करने के लिए मुझे वीपीएन का उपयोग करने से पहले लगातार यह त्रुटि मिल रही थी। मुझे आश्चर्य है कि यह कोडिंग उपकरण कौन सा सर्वर एक्सेस करने का प्रयास कर रहा है।

एक वर्कअराउंड --timestamp=none ध्वज (यदि आप एक्सकोड का उपयोग कर रहे हैं तो "अन्य कोड हस्ताक्षर ध्वज" जोड़ना प्रतीत होता है)।

-1

अपनी परियोजना को साफ करें + सुनिश्चित करें कि आपके पास एक सक्रिय इंटरनेट कनेक्शन है। यह सिर्फ मुझे कम से कम मदद की।

7

मैं --timestamp = कोई भी कामकाज की अनुशंसा नहीं कर सकता। यदि आप अपने हस्ताक्षर टाइमस्टैम्प नहीं करते हैं, तो प्रमाणपत्र समाप्त होने पर आपकी बाइनरी हस्ताक्षरित/अमान्य हो जाएंगी। कम से कम यदि आप अपने हस्ताक्षर को समयबद्ध करते हैं, तो सत्यापन तब तक जारी रहेगा जब तक कि प्रमाणपत्र अभी भी मान्य नहीं था, तब तक बाइनरी पर हस्ताक्षर किए गए थे। यह वास्तव में निरस्त किए जाने वाले प्रमाण पत्र को छूट नहीं देता है, लेकिन आपको किसी मामले में कवर किया जाना चाहिए, संभवतः आपको, प्रमाणपत्र की समाप्ति से कुछ समय पहले अपनी अभिलेखीय प्रतियों का उपयोग करने की आवश्यकता है।

यदि आपके पास अपने हस्ताक्षर टाइमस्टैम्प करने के लिए इंटरनेट नहीं है, तो आप अपने कनेक्शन का बैक अप लेने तक पूरी तरह से साइनिंग अक्षम कर सकते हैं।

संपादित करें: या, यह मानते हुए कि आपका कनेक्शन ऊपर है, लेकिन ऐप्पल का डिफ़ॉल्ट टाइमस्टैम्प सर्वर फ्लैकी हो रहा है, तो आप अपना स्वयं का वैध टाइमस्टैम्प सर्वर प्रदान करने का विकल्प चुन सकते हैं।

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