एसडीके आईओएस 8.0 में उत्पाद प्रकार यूनिट टेस्ट बंडल के लिए कोड हस्ताक्षर की आवश्यकता है


128

मिल रहा

SDK 'iOS 8.0' में उत्पाद प्रकार 'यूनिट टेस्ट बंडल' के लिए कोड हस्ताक्षर आवश्यक है

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

स्थानीय रूप से सभी समारोहों / प्रोफाइल को पोंछने का कोई तरीका ताकि मैं पुनः स्थापित कर सकूं?

शायद किसी तरह का बग।


मेरे पास एक समान त्रुटि थी - मेरा फिक्स बिल्ड सेटिंग्स में जाना था, और प्रोविजनिंग प्रोफाइल का चयन करना था, इसके बजाय स्वचालित रूप से उन्हें चुनना था।
scb998

जवाबों:


129

समस्या यह है कि परियोजना स्रोत नियंत्रण में है और हर बार जब मैं .xcodeproj खींचता हूं तो अद्यतन किया जाता है। और जब से मेरा प्रावधान प्रोफ़ाइल स्रोत नियंत्रण में एक से अलग है, यूनिट टेस्ट लक्ष्य स्वचालित रूप से "साइन कोड न करें" पर स्विच हो जाता है। इसलिए मुझे बस प्रत्येक गिट्ट पुल के बाद वहां प्रोफाइल सेट करना होगा।

जाहिरा तौर पर अगर एक उपकरण की तैनाती, अगर एक इकाई परीक्षण लक्ष्य है, तो इसे कोड पर हस्ताक्षरित होना चाहिए।

कदम:

1) अपने परीक्षण लक्ष्य को बदलें (AppnameTests)

यहाँ छवि विवरण दर्ज करें

2) "कोड साइनिंग आइडेंटिटी" न "कोड साइन न करें" सुनिश्चित करें। साइन इन करने के लिए एक प्रोफ़ाइल चुनें

यहाँ छवि विवरण दर्ज करें

यह सब मुझे काम करने के लिए बदलने के लिए था।


मैं उसी समस्या का सामना कर रहा हूं जैसा कि उपरोक्त प्रश्न में वर्णित है, लेकिन यह पता लगाने में सक्षम नहीं है कि इसे कैसे हल किया जाए और मैंने उसी के संबंध में एक प्रश्न पोस्ट किया है। stackoverflow.com/questions/27312745/…
नील

क्या आप मुझे बता सकते हैं कि यह कैसे करना है पर एक चरणबद्ध प्रक्रिया।
नील

Xcode 8 में समस्या थी। संकल्प आपके समान नहीं था, लेकिन करीब था। मुझे रास्ता दिखाने के लिए धन्यवाद!
user3259235 12

इसके अलावा, 'कोड साइनिंग आइडेंटिटी' को सेट करने के अलावा आपको 'डेवलपमेंट टीम' भी सेट करनी पड़ सकती है।
15

100

मैंने एडिट स्कीम में जाकर (फिर अस्थायी रूप से), बिल्ड सेक्शन में, "रन" में अपने यूनिट टेस्ट टारगेट को हटाते हुए इश्यू तय किया।


1
अच्छी पकड़! आप अस्थायी रूप से क्यों कहते हैं ? यह मेरे लिए एक उचित समाधान की तरह लग रहा है। क्या आपने स्टोर पर ऐप सबमिट किया है?
मोकागियो 22

ऐप को ऐप स्टोर में सबमिट करने में कोई समस्या नहीं है। मैंने कहा "अस्थायी रूप से" क्योंकि मुझे लगा कि कोड साइनिंग के साथ चक्कर लगाकर एक और अधिक स्थायी समाधान संभव है, लेकिन यह त्वरित परेशानी मुक्त फिक्स था।
ZS

2
धन्यवाद। यह मेरे लिए अच्छा समाधान की तरह दिखता है, यूनिट टेस्ट लक्ष्य को वैसे भी नहीं चलाना चाहिए। +1
मोकागो

क्या आप मुझे और विस्तार से समझा सकते हैं? आपका मतलब है कि मुझे 'निर्माण' करना है? और मुझे समझ में नहीं आ रहा है कि '' रन में मेरा यूनिट टेस्ट '
रद्द किया जाए

66

यहाँ अन्य सलाह ने मेरी मदद नहीं की, लेकिन मैंने इस त्रुटि को ठीक कर दिया Product > Scheme > Edit Scheme। फिर मैंने Buildबाएं हाथ की तरफ क्लिक किया और बगल में मौजूद किसी भी चेकबॉक्स को अचयनित कर दिया AppNameTests। मैं XCode 6.3 का उपयोग कर रहा हूं

यहाँ छवि विवरण दर्ज करें


@Almo "टेस्ट" के नीचे किसी भी बॉक्स को अनचेक न करें, बल्कि APPNAMEtests लेबल वाली पंक्ति में सब कुछ (जो आप अनचेक कर सकते हैं) को अनचेक करें। मैं स्पष्ट करने में मदद करने के लिए अपने उत्तर में एक स्क्रीनशॉट शामिल करूँगा।
ओलिविया स्टॉर्क

1
मैंने ऐसा किया, और टेस्ट को छोड़कर सब कुछ अनियंत्रित था। यह पता चला कि मुझे एक .plist फ़ाइल निकालनी थी ताकि वह कोड पर हस्ताक्षर करने की कोशिश को रोक सके। मेरी परियोजना एक स्थिर पुस्तकालय का निर्माण करती है, इसलिए इसमें से किसी को भी कोड किए जाने की आवश्यकता नहीं है।
अल्मो

1
ठिक है। वैसे यह निश्चित है कि ऐसा लगता है कि इस समस्या के कारण और इसे ठीक करने के कई तरीके हो सकते हैं। यदि किसी और ने आपके समाधान का उल्लेख नहीं किया है, तो आप इसे एक और संभावित उत्तर के रूप में पोस्ट करने पर विचार कर सकते हैं।
ओलिविया स्टॉर्क

3
@huggie h \ _ (ツ) _ / programming iOS प्रोग्रामिंग में आपका स्वागत है!
ओलिविया स्टॉर्क

1
@OliviaStork यू ने मुझे बाध्य किया। मेरी नौकरी बचाने के लिए बहुत बहुत धन्यवाद।
अनुराग श्रीवास्तव

29

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

परीक्षण लक्ष्य सेटिंग्स -> सेटिंग बनाएँ -> कोड पर हस्ताक्षर -> कोड पर हस्ताक्षर पहचान। पहले, इसे "कोड साइन न करें" पर सेट किया गया था।


प्रोविजनिंग प्रोफाइल का चयन करते हुए स्पष्ट रूप से मेरे लिए काम किया, धन्यवाद।
माइक वेलर

यह भी सुनिश्चित करें कि "ऑल" फिल्टर शीर्ष पर चुना गया है, न कि "बेसिक"।
मार्टी

13

इसके अलावा, यदि आप अपना बिल्ड टार्गेट डिवाइस सेट करते हैं, तो परीक्षण और डीबगिंग करने पर समस्या दूर हो जाएगी। जब आप अपने ऐप को वास्तव में भौतिक उपकरण पर लागू करने का प्रयास कर रहे हों, तो हस्ताक्षर किए गए कोड की आवश्यकता होती हैअंजीर

मैंने अपने "myIphone" से सिम्युलेटर iPhone 6 प्लस में बदल दिया, और जब मैं ऐप विकसित कर रहा हूं तो यह समस्या को हल करता है।


1
लेकिन अगर आप एक भौतिक उपकरण के लिए अपने ऐप को तैनात करना चाहते हैं तो क्या होगा!
मार्वेन ट्रेबसेली

8

मेरे मामले में मुझे जो समस्या आई वह थी:

CodeSign त्रुटि: SDK 'iOS 8.4' में उत्पाद प्रकार 'यूनिट टेस्ट बंडल' के लिए कोड हस्ताक्षर आवश्यक है

Fortunatelly, लक्ष्य ने कुछ भी लागू नहीं किया है, इसलिए एक त्वरित समाधान इसे हटा देता है।

यहाँ छवि विवरण दर्ज करें


2

मुझे अपने काम के CI पर एकीकरण परीक्षणों के लिए कमांडलाइन से xcodebuild चलाते समय यह त्रुटि हो रही थी। मैं प्रोजेक्ट लेवल सेटिंग को कोडसिग्न पर सेट करके इसे प्राप्त करने में कामयाब रहा। किसी कारण से लक्ष्य सेटिंग को अनदेखा किया जा रहा था और यह परियोजना की सेटिंग में वापस आ गया।


2

यदि उपरोक्त समाधानों से कुछ भी काम नहीं करता है तो इन चरणों का पालन करें

लक्ष्य से "जानकारी" के तहत appnameTests का चयन करें

निम्नलिखित बदलें

बंडल पहचानकर्ता: com.ProjectName। $ (PRODUCT_NAME: rfc1034identifier)

to com.ProjectName.appname

बंडल नाम: $ (PRODUCT_NAME)

बंडल नाम: appname

संकलित करें और निष्पादित करें


1

मैं एक ही खंड ('कोड साइनिंग') में 'प्रोविजनिंग प्रोफाइल' को स्वचालित से 'MyProvisioningProfile नाम' में बदलकर समस्या हल करता हूं


0

हाय मैं आज उसी समस्या का सामना कर रहा हूं। "स्पेंटक" के उत्तर को पढ़ने के बाद मैंने iOSDeveloper को सेट करने के लिए अपने लक्ष्य के कोड पर हस्ताक्षर करने की कोशिश की, और फिर भी काम नहीं किया। लेकिन "प्रोविजनिंग प्रोफाइल" को "ऑटोमैटिक" में बदलने के बाद, प्रोजेक्ट बिना किसी कोड साइनिंग त्रुटियों के निर्मित और चला गया।


0

कभी-कभी ऐसा होता है जब आप किसी प्रोजेक्ट को github या अन्य थर्ड पार्टी ट्यूटोरियल साइट्स से डाउनलोड करते हैं। इन ऐप्स पर आमतौर पर एक अलग पहचान या कंपनी / नाम के साथ हस्ताक्षर किए जाते हैं। ऐसा तब होता है, जब आप समाधान को हल नहीं कर सकते, तो बस एक नया xcode प्रोजेक्ट बनाएं और अपने नए प्रोजेक्ट में सभी हेडर और कार्यान्वयन फ़ाइलों को कॉपी करें। इसके अलावा निर्भरता फ़ाइलों को मत भूलना। फ्रेमवर्क फ़ाइलों के रूप में। यह मेरे लिए काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.