"उपयोगकर्ता इंटरैक्शन की अनुमति नहीं है" कोडसिंक का उपयोग करके OSX ऐप पर हस्ताक्षर करने की कोशिश कर रहा है


145

जेनकींस पर हमारा स्वचालित निर्माण चल रहा है। बिल्ड खुद दास पर चल रहा है, जिसमें दास एसएसएच के माध्यम से निष्पादित किए जाते हैं।

मुझे एक त्रुटि मिली:

00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.

मैंने यहाँ अब तक अन्य पदों पर देखे गए प्रत्येक सुझाव की कोशिश की है:

  • चाबी का गुच्छा अनलॉक करने के लिए हस्ताक्षर करने से तुरंत पहले सुरक्षा अनलॉक-किचेन का उपयोग करना।
  • साइनिंग कुंजी को अपने स्वयं के किचेन में स्थानांतरित करना।
  • प्रवेश कुंजी में प्रवेश कुंजी को स्थानांतरित करना।
  • सिस्टम कीचेन में साइनिंग कुंजी को स्थानांतरित करना।
  • केवल कीचेन में सूची-कीचेन को मैन्युअल रूप से सेट करना जिसमें कुंजी शामिल है।

सभी मामलों में, मुझे एक ही त्रुटि मिलती है।

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

इसके बाद, मैंने सभी सुरक्षा आदेशों में -v जोड़ने की कोशिश की:

list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
        "/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.

इससे, यह प्रतीत होता है कि सूची-कीचेन वह है जो काम नहीं कर रहा है। शायद न काम। : /

यहां भी ऐसा ही सवाल है । समाधान दिलचस्प है - लॉन्चर में सच होने के लिए "सेशनक्रिएट" सेट करें। लेकिन मैं मास्टर पर निर्माण नहीं कर रहा हूं - मेरी निर्माण प्रक्रिया एक दास निर्माण मशीन पर एसएसएच से शुरू की गई है। हो सकता है कि जब आप "SessionCreate" चलाते हैं, तो लॉन्चर क्या कर रहा है, यह करने के लिए एक कमांड-लाइन तरीका है।


सर्कल पर कीचेन पासवर्ड कैसे सेट करें?
सचिन कुमारम

@SachinKumaram एक व्यवहार्य नए प्रश्न की तरह लगता है?
तर्जुक

जवाबों:


205

मैं भी इससे लड़ता रहा हूं। जब तक मैंने http://devnet.jetbrains.com/thread/311971 पर सुझाव देने की कोशिश की तब तक कुछ भी मदद नहीं मिली । धन्यवाद आशीष अग्रवाल!

अपने बिल्ड उपयोगकर्ता को GUI के माध्यम से लॉगिन करें और किचेन एक्सेस खोलें। अपनी हस्ताक्षरित निजी कुंजी का चयन करें, राइट-क्लिक करें, गेट इन्फो चुनें, एक्सेस कंट्रोल टैब में बदलें और "सभी एप्लिकेशन को इस आइटम को एक्सेस करने की अनुमति दें" चुनें।

अभिगम नियंत्रण टैब


2
आपका स्वागत है। आप सभी अनुप्रयोगों की अनुमति देने के बजाय नीचे दिए गए एप्लिकेशन सूची में कोडसाइन जोड़ने पर विचार कर सकते हैं। यह पहले से ही मेरे स्क्रीनशॉट में है, लेकिन मुझे लगता है कि मूल रूप से यह नहीं था।
बायम्यूटर

3
मुझे Apple.stackexchange.com/a/34872/6052 के साथ / usr डायरेक्टरी को अनहाइड करना codesignथा ताकि "ऑलवेज अलाउन " सूची में जोड़ सकें
हीथ बॉर्डर

24
बस ध्यान दें कि इसके अलावा आपको पूरा security unlock-keychainसामान भी करना होगा
cwd

13
इसके अलावा, आप अपनी चाबियों को लॉगिन से सिस्टम में ले जाना चाहते हैं ताकि जब आप अपनी मशीन पर रिमोट बिल्ड करते हैं तो वे सुलभ हों।
क्रिस्टियन

8
क्या किसी को कमांड लाइन से ऐसा करने का कोई तरीका पता है? मेरी रिमोट बिल्ड मशीन मुझे सुरक्षा कारणों से स्क्रीन साझा करने की अनुमति नहीं देगी ।
devios1

78

ठीक है, मुझे लगता है कि मुझे आज अपने ही सवाल का जवाब देना है, क्योंकि ढाई दिन में इस पर छुरा भोंकने के बाद, मैंने जो कोशिश की, उनमें से एक काम किया है। मैं अभी इससे दूर जा रहा हूं और आशा करता हूं कि यह काम करता रहेगा।

अनिवार्य रूप से, ऐसा लगता है कि यह -d systemवास्तव में काम नहीं करने के लिए नीचे आता है । तो यहाँ आसपास अन्य प्रश्नों के बहुत से उत्तर शायद प्रतिबिंबित करने के लिए अपडेट किए जाएं।

security -v list-keychains -s "$KEYCHAIN" "$HOME/Library/Keychains/login.keychain"
security list-keychains # so we can verify that it was added if it fails again
security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN"
codesign --sign "$SIGNER_IDENTITY" --force --signature-size 9600 \
         --resource-rules src/AppResourceRules.plist --timestamp --verbose \
         "$APP"

17
धन्यवाद। मैं इसे कम करने में सक्षम हूं। निर्माण करने के प्रयास से ठीक पहले निम्नलिखित कमांड चलाएँ: सुरक्षा -v अनलॉक-किचेन -p "$ KEYCHAIN_PASSWORD" "$ HOME / Library / Keychains / login.keychain"
pir800

3
तो codesignवास्तव में कुछ स्क्रिप्ट के अंदर लॉगिन पासवर्ड संग्रहीत किए बिना ssh के माध्यम से एक्सेस करने का कोई तरीका नहीं है ?
चक्र

2
ऊपर दिए गए उदाहरण में @chakrit, मैं केवल किचेन पासवर्ड पास करता हूँ, लॉगिन पासवर्ड नहीं। मुझे लगता है कि बहुत सारे उपयोगकर्ताओं के लिए, लॉगिन किचेन एकमात्र कीचेन है, लेकिन हमारे मामले में, हम मशीनों को बनाने के लिए सिंक्रनाइज़ करने के लिए उन्हें अलग करने के लिए एक अलग कीस्टोर में साइनिंग कीज़ रखते हैं। लेकिन हाँ, इस सामान का बहुत कुछ स्वचालित बिल्ड के लिए असुविधाजनक लगता है, मुझे आश्चर्य होता है कि क्या Apple भी स्वचालित बिल्ड करता है।
ट्रेकजाज़

@Trejkaz ओह ठीक है, कम से कम एक चाबी का गुच्छा पासवर्ड साझा करना उतना बुरा नहीं है।
चक्र

स्वचालित रिमोट बिल्ड के मेरे उपयोग के मामले में, कीचेन पासवर्ड को एक .envफ़ाइल में संग्रहीत करना इतना बुरा नहीं है, क्योंकि .envफ़ाइल में पहले से ही संवेदनशील कुंजी जैसे उदा। AWS और हरोकू। हमारे मामले में बिल्ड से संबंधित कोड साइन क्रेडेंशियल एक नए बनाए गए कीचेन में संग्रहीत किए जाते हैं जो कि निर्माण के बाद हटा दिया जाता है। फिर इसे अगले निर्माण के लिए फिर से बनाया गया है। हालांकि, loginचाबी का गुच्छा अभी भी खोला जाना चाहिए, इसलिए security unlock-keychain -p pass login.keychainयहां गायब लिंक था। धन्यवाद!
पेट्रस रेपो

19

अन्य किसी भी उत्तर ने मेरे लिए काम नहीं किया।

आखिरकार मुझे बचा लिया यह पोस्ट था

इसे योग करने के लिए, यह 5 मिनट के डिफ़ॉल्ट समयबाह्य के कारण हो सकता है, जो लंबे निर्माण के बाद इस त्रुटि को ट्रिगर करेगा।

तै होना:

security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain

2
El Capitan पर, आप उपयोगकर्ता इंटरफ़ेस के माध्यम से भी ऐसा कर सकते हैं। बस चाबी का गुच्छा ऐप खोलें, अपने किचेन (लॉगिन, सिस्टम आदि) पर राइट क्लिक करें और ऐसी चीज़ पर क्लिक करें, जो 'आपके your_keychain>' के लिए परिवर्तन सेटिंग्स से मेल खाती हो।
रूबाइबजिनर

मैं हमेशा एक्सेस Confirmबदलने के बाद भी अपने सिस्टम किचेन एक्सेस को वापस सेट करता हूं । : /
एलेक्स Zavatone

यह मेरे लिए मददगार था !!
नोरी

मैं 2 दिनों के लिए इसके साथ संघर्ष कर रहा हूं, इससे पहले कि मुझे आपकी टिप्पणी मिली, धन्यवाद !!!
गिलाद नोविक

16

कॉल करने की कोशिश करें security unlock-keychainऔर codesignएक-लाइन कमांड के रूप में। इससे मुझे मदद मिली। कुछ इस तरह:

security unlock-keychain -p <password> /Users/<user>/Library/Keychains/login.keychain && codesign --force --verify --verbose --sign "<certificate id>" <app name>

4
यह दो तर्ज पर ऐसा ही है। मुझे लगता है कि अंतर यह है कि यदि पहला कमांड विफल रहता है, तो यह दूसरा नहीं चलेगा।
तर्जका

1
मेरे लिए वे समान नहीं हैं। मैं उन्हें चींटी के माध्यम से बुलाता हूं sshexecऔर हर बार यह एक नया ssh सत्र बनाता है।
झेकाकोजलोव

2
यदि आप वास्तव में चाहते हैं, तो आप एकल ssh सत्र के माध्यम से एक से अधिक लाइन भी कर सकते हैं। तो ... यह अभी भी एक ही है, त्रुटियों के उपचार से अलग।
तर्जका

13

/ Usr / bin / codeign के लिए किचेन बनाने के लिए सुरक्षा का उपयोग करना

प्रमाणपत्र आयात करना और इसे कोडसिग्न के साथ काम करना प्रोग्रामेटिक रूप से लॉगिन या सिस्टम कीचेन का उपयोग करने या कोडाइन के कुछ देवता से प्रार्थना करने का मामला नहीं है। आपको बस सही अनुमतियाँ सेट करने की आवश्यकता है। मैं विशेष रूप से कोडसाइन प्रयोजनों के लिए एक नया किचेन बनाने की सलाह देता हूं।

इन दिनों आपको codesignउपज प्राप्त नहीं errSecInternalComponentकरने के लिए विभाजन सूची (एसीएल) को सही करने की आवश्यकता है। मैं कदमों से चलूँगा:

किचेन बनाएं

security create-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

इस बिंदु पर चाबी का गुच्छा खुला है, लेकिन अंदर नहीं आएगा Keychain Access

खोज सूची में नया किचेन जोड़ें

security list-keychains -s "${KEYCHAIN_NAME}" "${OLD_KEYCHAIN_NAMES[@]}"

सूची में नया किचेन जोड़ें। यदि आप पहली बार मूल सूची नहीं निकालते हैं, list-keychainsतो login.keychainआप अपनी खोज-सूची में नहीं रहेंगे ।

चाबी का गुच्छा अनलॉक करें

security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

यदि आपने ऊपर किचेन बनाया है तो यह निरर्थक है, लेकिन यदि किचेन पहले से मौजूद है तो यह आवश्यक है।

कीचेन से चूक निकालें

security set-keychain-settings "${TESTING_KEYCHAIN}"

किसी भी तर्क को निर्दिष्ट नहीं करने से यह ऑटो-लॉक टाइमआउट को असीमित रूप से सेट कर देगा और नींद पर ऑटो-लॉक को हटा देगा।

एक .p12 से अपने हस्ताक्षर करने वाले आयात करें

security import "${DIST_CER}" -P "${CERTIFICATE_PASSWORD}" -k "${KEYCHAIN_NAME}" -T /usr/bin/codesign

ऑर्ट आयात करें और विकल्प के codesignमाध्यम से पहुँच प्रदान करता है -T

किचेन पर ACL सेट करें

security set-key-partition-list -S apple-tool:,apple: -s -k "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

यह एक आवश्यकता है जिसे बहुत से लोग याद करते हैं। आप देख सकते हैं कि macOS डंप-किचेन का उपयोग करके क्या करता है। जो कोडिंग के मामले में आवश्यक है apple:और apple-tool:-sप्रमाण पत्र पर हस्ताक्षर करने के लिए संदर्भित करता है।

गिटलब-रनर, जेनकिन्स और पसंद है

किसी भी CI-टाइप रनर या बिल्ड सिस्टम के लिए एक बहुत महत्वपूर्ण बात यह सुनिश्चित करना है कि प्रक्रिया को launchdसही तरीके से शुरू किया जाए। सुनिश्चित करें कि आपकी प्लिस्ट शामिल है <SessionCreate> </true>

निर्माण प्रक्रिया के साथ किचेन के मालिक से सही तरीके से मेल नहीं खा रहा है और यह सुनिश्चित करता है कि एक सुरक्षा सत्र बनाया जाता है जिसके परिणामस्वरूप सभी प्रकार के सिरदर्द होंगे। नैदानिक ​​रूप से बोलना आप परिचय कर सकते हैं list-keychainsऔर देख सकते हैं कि आउटपुट आपकी अपेक्षाओं से मेल खाता है या नहीं।

यह launchd.plistमैन-पेज से है:

SessionCreate <boolean>

यह कुंजी निर्दिष्ट करती है कि संदर्भ के लिए डिफ़ॉल्ट सत्र के बजाय नौकरी को एक नए सुरक्षा ऑडिट सत्र में भेजा जाना चाहिए। विवरण के लिए ऑडिशन (2) देखें।

UserName <string>

यह वैकल्पिक कुंजी उपयोगकर्ता को काम चलाने के लिए निर्दिष्ट करती है। यह कुंजी केवल उन सेवाओं के लिए लागू होती है जो विशेषाधिकार प्राप्त सिस्टम डोमेन में लोड की जाती हैं।

GroupName <string>

यह वैकल्पिक कुंजी समूह को काम चलाने के लिए निर्दिष्ट करती है। यह कुंजी केवल उन सेवाओं के लिए लागू होती है जो विशेषाधिकार प्राप्त सिस्टम डोमेन में लोड की जाती हैं। यदि उपयोगकर्ता नाम सेट है और GroupName नहीं है, तो समूह उपयोगकर्ता के प्राथमिक समूह पर सेट हो जाएगा।

अंत में कोडन

आप साइनिंग प्रमाणपत्र हैश का उपयोग करके देख सकते हैं find-identity

security find-identity -p codesigning -v

एक रूपरेखा, dylib, आदि को संहिताबद्ध करें।

/usr/bin/codesign --verbose=4 -f -s "$SIGNER_HASH" "$SIGNABLE"

कोड बंडल को असाइन करें

/usr/bin/codesign --verbose=4 -f -s "$SIGNER_HASH" --entitlements entitlements.xcent "$SIGNABLE"

अंतिम नोट्स - अगर आप यह देखते हैं कि Xcode में वे किस तरह CODESIGN_ALLOCATEका उपयोग करते हैं, तो यह Xcode में निहित है /usr/bin

export CODESIGN_ALLOCATE="$( xcrun --find codesign_allocate )"

खोज पथ पर सेट किया गया है ${PLATFORM_PATH}:${TOOLCHAIN_PATH}:${PATH}, जहां PLATFORM पथ दिए गए लक्ष्य SDK और TOOLCHAIN_PATH के लिए / usr / bin निर्देशिका है, जो Xcode होस्ट टूल के लिए / usr / bin है।


3
यार आप निश्चित रूप से इसके बारे में एक लेख लिख सकते हैं, मैं 2 दिनों से इस की तलाश कर रहा था। मैं नहीं जानता कि मैंने कितने सामान और स्टैकओवरफ़्लो पोस्ट पढ़े। आपको बहुत बहुत धन्यवाद !
डेमियन

इस सहायक walkthrough के लिए धन्यवाद!
तारस निकुलिन

चाबी का गुच्छा पर ACL मेरे लिए गायब हिस्सा था। स्पष्ट स्पष्टीकरण के लिए धन्यवाद सर!
केहू

11

सिस्टम कीचेन में अपनी चाबी लगाएं


लेकिन यह अभी भी उपयोगकर्ता नाम और पासवर्ड पूछता है
दुरई अमुथान।

सिस्टम कीचेन में चाबी कैसे लगाएं ....... किचेन एक्सेस वर्क से पेस्ट कॉपी करेगा?
आशीष करपे

ड्रैग और ड्रॉप @AishishKarpe
एलिस्ट्रा

क्या ड्रैग और ड्राप में अभी भी वही त्रुटि हो रही है: === निर्माण का पेटेंट पत्र जारी करना .abc.xyz360 '। SDK 'iOS 10.2' में उत्पाद प्रकार 'एप्लीकेशन' के लिए कोड हस्ताक्षर आवश्यक है
आशीष करपे

यह कहता है कि आपके पास मशीन पर एक प्रोविज़निंग प्रोफाइल स्थापित नहीं है, न कि आप चाबियाँ मिस कर रहे हैं @AishishKarpe
एलिस्ट्रा

5

तो यह कमांड है जो काम करता है। -Aमैक को पासवर्ड पूछने से रोकना है। System.keychain पर आयात करने के लिए GUI की आवश्यकता नहीं होती है।

sudo security import <cert.p12> -k "/Library/Keychains/System.keychain" -P <passphrase> -A


3

मेरा किचेन बंद था। इसने इस तथ्य को बदलने के लिए मेरी प्रगति का विरोध किया ...

Keychain Access-> Keychain First Aid-> Repair, et voilá !


2

किचेन को अनलॉक करना पर्याप्त नहीं है। आपको "सभी ऐप्स को इस आइटम को एक्सेस करने की अनुमति दें" के लिए निजी कुंजी एक्सेस सेट करना होगा। और यह करने के लिए कमांड लाइन से कुंजी को पुनः प्राप्त करने की आवश्यकता होती है। तो एक समय में चीजों को लेने के लिए:

लॉक होने पर लॉगिन किचेन को अनलॉक करें। हालांकि इसे बंद नहीं किया जाना चाहिए, लेकिन वैसे भी यहाँ आप ऐसा कैसे करते हैं:

security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "~/Library/Keychains/login.keychain"

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

security create-keychain -p 'temporaryPassword' MyKeychain.keychain
security list-keychains -d user -s login.keychain MyKeychain.keychain

-अब पैरामीटर का उपयोग करके अपने प्रमाणपत्र और संबंधित निजी कुंजियों को लॉगिन किचेन में आयात करें। ध्यान दें कि आपको इस सब के लिए sudo करने की आवश्यकता नहीं है ...

security import <cert.p12> -k "~/Library/Keychains/login.keychain" -P <passphrase> -A

-एक पैरामीटर वह है जो आपकी निजी कुंजी को "इस आइटम तक पहुंचने के लिए सभी एप्लिकेशन को अनुमति दें" के लिए सेट किया जाएगा

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


2

चाबी का गुच्छा अनलॉक करने के अलावा (जैसा कि अन्य उत्तरों में बताया गया है), आपको किचेन में सभी एप्लिकेशन से Xcode ऑथेंटिकेशन टोकन तक पहुंच की अनुमति देने की आवश्यकता है:

  • "लॉगिन" किचेन का चयन करें
  • "सभी आइटम" श्रेणी का चयन करें
  • "Xcode" कीवर्ड के लिए खोजें
  • सभी Xcode टोकन के लिए "सभी एप्लिकेशन को इस आइटम को एक्सेस करने की अनुमति दें" चुनें
  • अनलॉक किचेन स्टेप जोड़ना न भूलें (पिछले उत्तरों से)

स्क्रीनशॉट


1

सिस्टम कीचेन के लिए अपनी चाबियाँ आयात करें। आप इस कमांड का उपयोग कर सकते हैं:

sudo security import YourKey.p12 -k /Library/Keychains/System.keychain -P PasswordToYourKey -T /usr/bin/codesign

1

इसलिए मैंने यहां हर उत्तर की कोशिश की और कुछ जोड़ नहीं रहा था। अंत में मुझे पता चला कि जब मैंने अपनी CI सेवा को रिबूट किया था, तो यह एक अलग उपयोगकर्ता के तहत चल रहा था जितना मैंने उम्मीद की थी। उपयोगकर्ता को बदलना जो वास्तव में उनकी लॉगिन श्रृंखला में कुंजी तक पहुंच था, सब कुछ तय किया। यह एक सामान्य समस्या नहीं हो सकती है, लेकिन इस त्रुटि के लिए मेरे विशिष्ट कारण का दस्तावेजीकरण करना चाहती है, यदि ऐसा दूसरों के साथ होता है।


मेरे साथ भी ठीक यही समस्या आई. आपके उत्तर के लिए धन्यवाद। :)
पावेल के

0

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

यहां तक ​​कि अगर आपको एक ही त्रुटि मिलती है, तो 'अनलॉक कीचैन' सेट करने का प्रयास करें। जेनकींस के भीतर संपत्ति और अपने लॉगिन के लिए रास्ता दें।

मुझे उम्मीद है कि भगवान उसके बाद आपके साथ होंगे।


0

मेरे मामले में, यह 300 के डिफ़ॉल्ट टाइमआउट और 300 से अधिक दिनों तक चलने वाले एक लंबे xcode संकलन के साथ बनाया गया एक किचेन के कारण था। मेरे लिए वर्कअराउंड करना था:

security set-keychain-settings -t <longer timeout in seconds> <keychain>

अस्थायी किचेन बनाने के तुरंत बाद।


0

मैं इन सभी सुझावों के माध्यम से भाग गया और अभी भी gymजेनकींस की नौकरी में फास्टलेन का उपयोग करने में समस्या आ रही थी । मेरे पास प्रमाणपत्र स्थापित था और चाबी का गुच्छा अनलॉक था, और जब मैं मैन्युअल रूप से कमांड लाइन पर कोडसाइन कमांड चलाता था, तो दास पर कोडिंग करने में सक्षम था।

वर्कअराउंड के रूप में, यदि जेनकींस एसएसएच के बजाय जेएनएलपी का उपयोग करके दास से जुड़ जाता है, तो आप कोडाइन कर पाएंगे।


0

मेरे लिए यह तब होता है जब मैन्युअल रूप से जोड़ा गया एक दूसरा चाबी का गुच्छा होता है और यह बंद होता है। किसी कारण codesignसे लॉक किए गए किचेन को एक्सेस करने की कोशिश करता है और भले ही सर्टिफिकेट लॉगिन किचेन में हो (और अनलॉक हो जाता है) फेल हो जाता है। दूसरे को अनलॉक करने से समस्या हल हो जाती है। बस मुझे इससे कोई मतलब नहीं है।


-1

उपरोक्त समाधान के कई प्रयास करने के बाद। मुझे एहसास हुआ कि मेरे पास जो एक कारक था, वह यह था कि मैं आयन कंसोल का उपयोग करके निर्माण शुरू कर रहा था। जब मैंने टर्मिनल ऐप से बिल्ड बनाने के लिए वापस स्विच किया, तो सब कुछ ठीक था।

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