“ ไม่อนุญาตให้มีการโต้ตอบกับผู้ใช้” พยายามลงชื่อแอป OSX โดยใช้รหัส


145

งานสร้างอัตโนมัติของเรากำลังทำงานอยู่ที่เจนกินส์ การ build เองกำลังรันบนทาสโดยทาสถูกเรียกใช้ผ่าน SSH

ฉันได้รับข้อผิดพลาด:

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

ฉันได้ลองทุกข้อเสนอแนะที่ฉันเคยเห็นในโพสต์อื่น ๆ ที่นี่:

  • ใช้กุญแจปลดล็อคเพื่อความปลอดภัยทันทีก่อนเซ็นเพื่อปลดล็อคพวงกุญแจ
  • การย้ายคีย์การลงชื่อออกเป็นพวงกุญแจของตัวเอง
  • การย้ายคีย์การลงชื่อเข้าสู่ Keychain Keychain
  • การย้ายคีย์การลงชื่อเข้าสู่ระบบพวงกุญแจ
  • การตั้งค่า list-keychains ด้วยตนเองเฉพาะกับ Keychain ซึ่งมีรหัส

ในทุกกรณีฉันได้รับข้อผิดพลาดเดียวกัน

ในความพยายามที่จะวินิจฉัยปัญหาฉันพยายามเรียกใช้คำสั่ง "ความปลอดภัยปลดล็อก - พวงกุญแจ" บนเทอร์มินัลท้องถิ่นของฉันและพบว่ามันไม่ได้ปลดล็อกพวงกุญแจจริง ๆ - ถ้าฉันดูในการเข้าถึง Keychain สัญลักษณ์ล็อคยังคงอยู่ เป็นกรณีนี้ว่าฉันจะส่งรหัสผ่านบนบรรทัดคำสั่งหรือไม่ก็ให้ฉันแจ้งให้ฉันทราบ การปลดล็อคพวงกุญแจเดียวกันโดยใช้ GUI จะแจ้งให้ฉันใส่รหัสผ่านแล้วปลดล็อค นอกจากนี้ถ้าฉันเรียกใช้ "กุญแจล็อคความปลอดภัย" ฉันจะเห็นล็อคกุญแจทันทีหลังจากเรียกใช้คำสั่ง นี่ทำให้ฉันคิดว่า Unlock-keychain ไม่ทำงานจริง ๆ ฉันได้สัมผัสกับพฤติกรรมแบบเดียวกันกับ Lion (ซึ่งเราใช้สำหรับการสร้างทาส) และ Mavericks (ซึ่งฉันกำลังพัฒนาอยู่)

ต่อไปฉันลองเพิ่ม -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" เป็นจริงใน launchctl แต่ฉันไม่ได้สร้างต้นแบบ - กระบวนการสร้างของฉันเริ่มต้นจาก SSH บนเครื่องสร้างทาส อาจมีวิธีบรรทัดคำสั่งในการทำสิ่งที่ Launchctl กำลังทำอยู่เมื่อคุณเรียกใช้ "SessionCreate"?


วิธีการตั้งค่ารหัสผ่านพวงกุญแจบน circleci?
Sachin Kumaram

@SachinKumaram ดูเหมือนคำถามใหม่ที่ทำงานได้หรือไม่
Trejkaz

คำตอบ:


205

ฉันก็เคยต่อสู้เช่นนี้ ไม่มีอะไรช่วยจนกว่าฉันจะพยายามเสนอแนะในhttp://devnet.jetbrains.com/thread/311971 ขอบคุณ agrawal ขี้เถ้า!

ล็อกอินผู้ใช้บิลด์ของคุณผ่าน GUI และเปิดการเข้าถึง Keychain เลือกรหัสส่วนตัวเซ็นชื่อของคุณคลิกขวาเลือกรับข้อมูลเปลี่ยนเป็นแท็บควบคุมการเข้าถึงและเลือก "อนุญาตให้แอปพลิเคชันทั้งหมดเข้าถึงรายการนี้"

แท็บควบคุมการเข้าถึง


2
ไม่เป็นไร คุณอาจพิจารณาเพิ่มรหัสลงในรายการแอปพลิเคชันที่ด้านล่างแทนที่จะอนุญาตให้แอปพลิเคชันทั้งหมดเหมือนที่ฉันทำ มันมีอยู่แล้วในสกรีนช็อตของฉัน แต่ฉันคิดว่าเดิมไม่ได้
bmauter

3
ฉันต้องยกเลิกการซ่อนไดเรกทอรี / usr ด้วยapple.stackexchange.com/a/34872/6052เพื่อเพิ่มcodesignรายการ "อนุญาตให้เสมอ"
Heath Borders

24
เพียงทราบว่านอกเหนือจากนี้คุณต้องทำทุกsecurity unlock-keychainสิ่งด้วย
cwd

13
นอกจากนี้คุณอาจต้องการที่จะย้ายคีย์ของคุณจากการเข้าสู่ระบบเพื่อระบบเพื่อให้พวกเขาสามารถเข้าถึงได้เมื่อคุณสร้างระยะไกลบนเครื่องของคุณ
Krystian

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 unlock-keychain -p "$ KEYCHAIN_PASSWORD" "$ HOME / Library / Keychains / login.keychain"
pir800

3
ดังนั้นจึงไม่มีวิธีการเข้าถึงcodesignผ่าน ssh โดยไม่ต้องจัดเก็บรหัสผ่านเข้าสู่ระบบภายในสคริปต์บางอย่าง?
chakrit

2
@ จักรกฤษในตัวอย่างด้านบนฉันผ่านรหัสผ่านของพวงกุญแจเท่านั้นไม่ใช่รหัสผ่านสำหรับเข้าสู่ระบบ ฉันรู้ว่าสำหรับผู้ใช้จำนวนมากพวงกุญแจสำหรับเข้าสู่ระบบเป็นเพียงพวงกุญแจเท่านั้น แต่ในกรณีของเราเราเก็บคีย์การลงนามไว้ในที่เก็บคีย์แยกเพื่อให้ง่ายต่อการซิงโครไนซ์เพื่อสร้างเครื่อง แต่ใช่สิ่งนี้มากมายดูเหมือนจะไม่สะดวกสำหรับการสร้างอัตโนมัติทำให้ฉันสงสัยว่า Apple ทำบิลด์อัตโนมัติหรือไม่
Trejkaz

@ Trejkaz โอเคอย่างน้อยการแชร์รหัสผ่านพวงกุญแจก็ไม่เลว
chakrit

ในกรณีที่ฉันใช้งานการสร้างรีโมตอัตโนมัติการจัดเก็บรหัสผ่านของพวงกุญแจไปยัง.envไฟล์นั้นไม่ได้แย่ขนาดนั้นเนื่องจาก.envไฟล์นั้นมีคีย์ที่ละเอียดอ่อนเช่น AWS และ Heroku ในกรณีของเราหนังสือรับรองการสร้างรหัสที่เกี่ยวข้องจะถูกเก็บไว้ใน Keychain ที่สร้างขึ้นใหม่ซึ่งจะถูกลบออกหลังจากการสร้าง จากนั้นจะถูกสร้างใหม่อีกครั้งสำหรับบิลด์ถัดไป อย่างไรก็ตามloginพวงกุญแจจะต้องยังคงเปิดอยู่ดังนั้นจึงsecurity unlock-keychain -p pass login.keychainเป็นลิงค์ที่ขาดหายไปที่นี่ ขอบคุณ!
Petrus Repo

19

ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน

ในที่สุดสิ่งที่ช่วยฉันคือโพสต์นี้

หากต้องการสรุปรวมสิ่งนี้อาจเกิดจากการหมดเวลาเริ่มต้นของ 5 นาทีซึ่งจะทำให้เกิดข้อผิดพลาดนี้หลังจากการบิลด์ที่ยาวนาน

เพื่อแก้ไข:

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

2
บน El Capitan คุณสามารถทำได้ผ่านส่วนต่อประสานผู้ใช้ด้วย เพียงแค่เปิดแอพ Keychain คลิกขวาที่ Keychain (ลงชื่อเข้าใช้ระบบ ฯลฯ ) และคลิกสิ่งที่ตรงกับ 'การตั้งค่าการเปลี่ยนแปลงสำหรับ <your_keychain>' ที่ดีที่สุด
rubybeginner

การทำเช่นนี้จะตั้งค่าการเข้าถึงของระบบพวงกุญแจของฉันกลับเป็นConfirmแม้หลังจากที่ฉันเปลี่ยนการเข้าถึง : /
Alex Zavatone

มันมีประโยชน์สำหรับฉัน !!
โนริ

ฉันดิ้นรนกับมันมา 2 วันก่อนที่ฉันจะพบความคิดเห็นของคุณขอบคุณ !!!
Gilad Novik

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
นั่นเหมือนกับการทำสองบรรทัด ฉันเดาความแตกต่างคือถ้าคำสั่งแรกล้มเหลวก็จะไม่ทำงานที่สอง
Trejkaz

1
สำหรับฉันพวกเขาไม่เหมือนกัน ฉันเรียกพวกเขาผ่านมดsshexecและทุกครั้งที่มันสร้างเซสชั่น ssh ใหม่
ZhekaKozlov

2
คุณสามารถทำมากกว่าหนึ่งบรรทัดผ่านเซสชันเดียว ssh ด้วยถ้าคุณต้องการ ดังนั้น ... มันก็ยังเหมือนเดิมนอกเหนือจากการรักษาข้อผิดพลาด
Trejkaz

13

การใช้ความปลอดภัยเพื่อสร้าง Keychain สำหรับ / usr / bin / codesign

การนำเข้าใบรับรองและการทำงานกับ codesign โดยทางโปรแกรมไม่ได้เป็นเรื่องของการใช้เข้าสู่ระบบหรือระบบพวงกุญแจหรือภาวนาต่อเทพเจ้าแห่ง codeign คุณเพียงแค่ต้องมีการตั้งค่าการอนุญาตที่ถูกต้อง ฉันขอแนะนำให้สร้างพวงกุญแจใหม่โดยเฉพาะสำหรับการใช้รหัส

วันนี้เพื่อcodesignให้ได้ผลตอบแทนerrSecInternalComponentคุณต้องได้รับรายการพาร์ติชัน (ACLs) ที่ถูกต้อง ฉันจะเดินผ่านขั้นตอน:

สร้างพวงกุญแจ

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

ที่จุดนี้พวงกุญแจปลดล็อค Keychain Accessแต่จะไม่ปรากฏใน

เพิ่ม Keychain ใหม่เข้าในรายการค้นหา

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

เพิ่ม Keychain ใหม่เข้าในรายการ หากคุณไม่ได้รับรายชื่อดั้งเดิมจากlist-keychainsคุณจะไม่อยู่login.keychainในรายการค้นหาของคุณอีกต่อไป

ปลดล็อคพวงกุญแจ

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

สิ่งนี้ซ้ำซ้อนหากคุณสร้าง Keychain ด้านบน แต่หาก Keychain มีอยู่แล้วจำเป็นต้องมี

ลบค่าเริ่มต้นจาก Keychain

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

โดยไม่ได้ระบุอาร์กิวเมนต์ใด ๆ สิ่งนี้จะตั้งค่าการหมดเวลาล็อกอัตโนมัติเป็นไม่ จำกัด และเอาการล็อกอัตโนมัติในโหมดสลีป

นำเข้า certs เซ็นชื่อของคุณจาก. p12

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

นำเข้า certs และให้codesignการเข้าถึงผ่าน-Tตัวเลือก

ตั้ง ACL บนพวงกุญแจ

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

นี่เป็นข้อกำหนดที่หลายคนคิดถึง คุณสามารถดูว่า MacOS ทำอะไรโดยใช้ dump-keychain ซึ่งในกรณีของ codesigning ต้องและapple: หมายถึงใบรับรองการลงนามapple-tool:-s

Gitlab-Runner, Jenkins และอื่น ๆ

สิ่งหนึ่งที่สำคัญมากสำหรับนักวิ่งประเภท CI หรือการสร้างระบบคือการทำให้แน่ใจว่ากระบวนการเริ่มต้นlaunchdอย่างถูกต้อง ตรวจสอบให้แน่ใจ plist <SessionCreate> </true>ของคุณมี

ไม่ตรงกับเจ้าของพวงกุญแจกับกระบวนการสร้างอย่างไม่ถูกต้องและทำให้แน่ใจว่าเซสชันความปลอดภัยถูกสร้างขึ้นจะส่งผลให้เกิดอาการปวดหัวทุกประเภท การพูดอย่างวินิจฉัยคุณสามารถแนะนำlist-keychainsและดูว่าผลลัพธ์ตรงกับความคาดหวังของคุณหรือไม่

นี่คือจากlaunchd.plistman-page:

SessionCreate <boolean>

คีย์นี้ระบุว่างานควรถูกวางลงในเซสชันการตรวจสอบความปลอดภัยใหม่แทนที่จะเป็นเซสชันเริ่มต้นสำหรับบริบทที่เป็นของ ดู auditon (2) เพื่อดูรายละเอียด

UserName <string>

คีย์ตัวเลือกนี้ระบุผู้ใช้ให้รันงานเป็น คีย์นี้ใช้ได้กับบริการที่โหลดลงในโดเมนระบบที่มีสิทธิ์เท่านั้น

GroupName <string>

คีย์ที่เป็นทางเลือกนี้ระบุกลุ่มเพื่อรันงานเป็น คีย์นี้ใช้ได้กับบริการที่โหลดลงในโดเมนระบบที่มีสิทธิ์เท่านั้น หากตั้งค่าชื่อผู้ใช้และไม่ได้ระบุชื่อกลุ่มจากนั้นกลุ่มจะถูกตั้งค่าเป็นกลุ่มหลักของผู้ใช้

ในที่สุด codeign

คุณสามารถค้นหาแฮชใบรับรองการลงนามโดยใช้ find-identity

security find-identity -p codesigning -v

Codeign เป็นกรอบ, 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 พา ธ คือไดเร็กทอรี / usr / bin สำหรับ SDK เป้าหมายที่กำหนดและ TOOLCHAIN_PATH คือ / usr / bin สำหรับเครื่องมือโฮสต์ Xcode


3
เพื่อนคุณสามารถเขียนบทความเกี่ยวกับมันได้อย่างแน่นอนฉันกำลังมองหาสิ่งนี้ตั้งแต่ 2 วัน ฉันไม่ทราบว่ามีกี่รายการและโพสต์สแต็คโฟลว์ที่ฉันอ่าน ขอบคุณมากสำหรับคุณ!
ดาเมียน

ขอบคุณสำหรับคำแนะนำที่เป็นประโยชน์นี้!
Taras Nikulin

ACL บนพวงกุญแจเป็นส่วนที่ขาดหายไปสำหรับฉัน ขอบคุณสำหรับคำอธิบายที่ชัดเจนครับ!
Keuha

11

วางกุญแจของคุณในพวงกุญแจระบบ


แต่มันยังคงถามชื่อผู้ใช้และรหัสผ่าน
Durai Amuthan.H

วิธีการใส่กุญแจในระบบพวงกุญแจ ....... จะคัดลอกวางจากการเข้าถึงพวงกุญแจได้อย่างไร
Ashish Karpe

ลากและวาง @AshishKarpe
Alistra

ไม่ได้ลากและวางยังคงได้รับข้อผิดพลาดเดียวกัน: === เป้าหมายเป้าหมาย PatientPortal ของโครงการ PatientPortal พร้อมการกำหนดค่า Debug === ตรวจสอบการพึ่งพาไม่มีโปรไฟล์สำหรับ 'com.abc.xyz360' พบ: Xcode ไม่พบโปรไฟล์การจัดสรรที่ตรงกัน .abc.xyz360' ต้องมีการเซ็นชื่อรหัสสำหรับประเภทผลิตภัณฑ์ 'แอปพลิเคชัน' ใน SDK 'iOS 10.2'
Ashish Karpe

มันบอกว่าคุณไม่ได้ติดตั้งโปรไฟล์การจัดเตรียมไว้ในเครื่องไม่ใช่ว่าคุณพลาดคีย์ @AshishKarpe
Alistra

5

ดังนั้นนี่คือคำสั่งที่ใช้งานได้ -Aคือการป้องกันไม่ให้ Mac ถามรหัสผ่าน การนำเข้าสู่ system.keychain ไม่ต้องการ GUI

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


3

พวงกุญแจของฉันถูกล็อค มันขัดขืนความก้าวหน้าของฉันที่จะเปลี่ยนความจริงนั้น

Keychain Access-> Keychain First Aid-> Repair, และอื่นๆ !


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

จากนั้นนำเข้าใบรับรองของคุณและกุญแจส่วนตัวที่เกี่ยวข้องลงในพวงกุญแจเข้าสู่ระบบโดยใช้พารามิเตอร์ -A โปรดทราบว่าคุณไม่จำเป็นต้อง sudo ทั้งหมดนี้ ...

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

พารามิเตอร์ -A คือสิ่งที่จะทำให้คีย์ส่วนตัวของคุณถูกตั้งค่าเป็น "อนุญาตให้แอปทั้งหมดเข้าถึงรายการนี้"

ดังนั้นการใช้สิ่งเหล่านี้คุณควรจะสามารถสร้างสคริปต์ที่ติดตั้งใบรับรองที่ต้องการเพื่อสร้าง ipa ที่วางจำหน่ายและลงนามโดยไม่ต้องแจ้งให้ทราบ คุณสามารถจัดเก็บไฟล์. p12 ใน repo ของคุณเพื่อให้เครื่องใด ๆ สามารถสร้าง ipa ของคุณได้โดยไม่ต้องตั้งค่าด้วยตนเอง


2

นอกเหนือจากการปลดล็อคพวงกุญแจ (ดังที่กล่าวไว้ในคำตอบอื่น) คุณต้องอนุญาตการเข้าถึงจากแอปพลิเคชันทั้งหมดไปยังโทเค็นการตรวจสอบสิทธิ์ Xcode ในพวงกุญแจ:

  • เลือกพวงกุญแจ "เข้าสู่ระบบ"
  • เลือกหมวดหมู่ "รายการทั้งหมด"
  • ค้นหาคำหลัก "xcode"
  • เลือก "อนุญาตให้แอปพลิเคชันทั้งหมดเข้าถึงรายการนี้" สำหรับโทเค็น Xcode ทั้งหมด
  • อย่าลืมเพิ่มขั้นตอนปลดล็อคพวงกุญแจ (จากคำตอบก่อนหน้า)

ภาพหน้าจอ


1

นำเข้ากุญแจของคุณไปที่ System keychain คุณสามารถใช้คำสั่งนี้:

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

1

ดังนั้นฉันจึงลองทุกคำตอบที่นี่และบางสิ่งบางอย่างก็ไม่ได้เพิ่มขึ้น ในที่สุดฉันก็พบว่าเมื่อฉันรีบูตบริการ CI ของฉันมันก็ทำงานภายใต้ผู้ใช้ที่แตกต่างกว่าที่ฉันคาดไว้ การเปลี่ยนผู้ใช้ที่มีการเข้าถึงกุญแจในห่วงโซ่การเข้าสู่ระบบของพวกเขาแก้ไขทุกอย่าง นี่อาจไม่ใช่ปัญหาทั่วไป แต่ต้องการบันทึกเหตุผลเฉพาะของฉันสำหรับข้อผิดพลาดนี้ในกรณีที่เกิดขึ้นกับผู้อื่น


ฉันมีปัญหาเดียวกันทั้งหมด ขอบคุณสำหรับคำตอบ. :)
Paweł K

0

สำหรับฉันดูเหมือนว่าไม่มีอะไรทำงานต้องติดตั้ง Xcode ซ้ำอีกครั้ง เจนกินส์ให้ข้อผิดพลาดเดียวกัน คุณจะประหยัดเวลาได้มากหากคุณเพิ่งย้ายการติดตั้ง Xcode ไปที่ถังขยะและติดตั้งใหม่ ต้องแน่ใจว่าคุณรันคำสั่ง codesign จากบรรทัดรับคำสั่งอย่างน้อยหนึ่งครั้ง

แม้ว่าหลังจากที่คุณได้รับข้อผิดพลาดเดียวกันลองตั้งค่า 'ปลดล็อคพวงกุญแจ?' สถานที่ให้บริการภายในเจนกินส์และให้เส้นทางไปสู่ ​​login.keychain ของคุณภายใต้ /Users/${USER}/Library/Keychains/login.keychain

ฉันหวังว่าพระเจ้าจะอยู่กับคุณหลังจากนั้น


0

ในกรณีของฉันนี้เกิดจากพวงกุญแจที่ถูกสร้างขึ้นด้วยการหมดเวลาเริ่มต้นของ 300s และ xcode ยาวรวบรวมยาวนานกว่า 300s วิธีแก้ปัญหาสำหรับฉันคือการเรียก:

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

ทันทีหลังจากสร้างพวงกุญแจชั่วคราว


0

ฉันวิ่งผ่านคำแนะนำเหล่านี้ทั้งหมดและยังคงมีปัญหาในการใช้ของ fastlane gymในงาน Jenkins ฉันได้รับการติดตั้งใบรับรองและการปลดล็อคพวงกุญแจและสามารถที่จะ codesign บน slave เมื่อฉันรันคำสั่ง codesign บนบรรทัดคำสั่งด้วยตนเอง

วิธีแก้ปัญหาถ้าเจนกินส์เชื่อมต่อกับทาสโดยใช้ JNLP แทน SSH คุณจะสามารถลงรหัสได้


0

สำหรับฉันมันเกิดขึ้นเมื่อมีการเพิ่มพวงกุญแจที่สองด้วยตนเองและมันถูกล็อค ด้วยเหตุผลบางอย่างcodesignพยายามเข้าถึงพวงกุญแจที่ล็อคและล้มเหลวแม้ว่าใบรับรองจะอยู่ในพวงกุญแจเข้าสู่ระบบ (และถูกปลดล็อค) การปลดล็อคที่สองจะช่วยแก้ปัญหา แค่ไม่สมเหตุสมผลกับฉัน


-1

หลังจากลองวิธีการแก้ปัญหาข้างต้นเป็นจำนวนมาก ฉันตระหนักว่าปัจจัยหนึ่งที่ฉันมีคือฉันเริ่มสร้างโดยใช้ ION Console เมื่อฉันเปลี่ยนกลับเป็นการสร้างจากแอป Terminal ทุกอย่างทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.