iOS 7.0 ไม่พบรหัสการเซ็นชื่อ


124
  • ใบรับรองถูกต้อง
  • xcode 5
  • ไอโอเอส 7

ข้อผิดพลาดในการลงชื่อรหัส: ไม่พบรหัสระบุการระบุรหัส: ไม่พบรหัสระบุการเข้ารหัส (เช่นใบรับรองและคู่คีย์ส่วนตัว) ที่ตรงกับโปรไฟล์การจัดเตรียมที่ระบุในการตั้งค่าการสร้างของคุณ ("โปรไฟล์การจัดสรรทีม iOS: *") ข้อผิดพลาด CodeSign: ต้องมีการลงนามรหัสสำหรับผลิตภัณฑ์ประเภท 'Application' ใน SDK 'iOS 7.0'


24
ฉันเรียกสิ่งนี้ว่าฝันร้ายของการลงชื่อเข้าใช้รหัสแอปเปิ้ลฉันมักจะแก้ปัญหานี้โดยการลบใบรับรอง / โปรไฟล์ของฉันดาวน์โหลดซ้ำแล้วแมปโปรไฟล์ที่ถูกต้อง
meda

ดูคำตอบ SO ของฉันstackoverflow.com/questions/19086395/…
Deepesh

9
การรีสตาร์ท Xcode ช่วยได้
Ronald Randon

2
การรีสตาร์ท Xcode ใช้ได้ผลสำหรับฉัน :)
Hemant Chittora

1
การรีสตาร์ท XCode ครั้งที่สาม
Khanh Nguyen

คำตอบ:


68

สำหรับใบรับรอง

  1. เพิกถอนใบรับรองก่อนหน้า
  2. สร้างใบรับรองการพัฒนาใหม่
  3. ดาวน์โหลดใบรับรอง
  4. ดับเบิลคลิกเพื่อใส่ KeyChain

สำหรับโปรไฟล์การจัดเตรียม

  1. สร้างใหม่หรือแก้ไขโปรไฟล์การจัดสรรที่มีอยู่
  2. ดาวน์โหลดและติดตั้ง

สำหรับ BundleIdentifier

  1. com.yourcompanyName.Something (ใส่เหมือนกับใน AppId)

ใส่คำอธิบายภาพที่นี่

CodeSigningIdentity

  1. เลือกโปรไฟล์การจัดเตรียมที่คุณสร้างขึ้น

ใส่คำอธิบายภาพที่นี่


4
บางครั้งการรีบูตช่วยได้มันช่วยฉันหลังจากรีบูตเครื่อง Mac ของฉัน
หน้ากาก

1
คุณควรตรวจสอบด้วยว่ามีโปรไฟล์การจัดเตรียมการแจกจ่ายที่มีรหัสแอปที่ตรงกับตัวระบุชุดสำหรับแอป เมื่อฉันจับคู่ได้แล้วกล่องโต้ตอบส่งจะหยุดให้ข้อผิดพลาดนั้นแก่ฉัน
Chuck Krutsinger

1
ก่อนที่จะสร้างใบรับรองอีกครั้งฉันขอแนะนำให้ตรวจสอบว่าคุณมีคีย์ส่วนตัวของใบรับรองที่คุณพยายามใช้
jjramos

เหตุผลที่เฉพาะเจาะจงว่าทำไมเราจึงควรเพิกถอนใบรับรองก่อนหน้านี้ ??
iAviatorJose

43

การแก้ไขปัญหานี้ของฉันคือ:

Xcode> ค่ากำหนด ในบัญชีให้คลิกที่ Apple ID ของคุณ คลิกดูรายละเอียดคลิกที่โปรเจ็กต์ของคุณโปรไฟล์การจัดสรร (ฉันคิดว่านี่ช่วยได้) แล้วคลิกปุ่มรีเฟรชด้านล่างซ้าย


17

คิดว่าฉันจะเสริมคำตอบอื่น ๆ ด้วยประสบการณ์ส่วนตัวของฉันเองเกี่ยวกับเรื่องนี้

เมื่อเร็ว ๆ นี้ฉันมีปัญหาที่สองเป้าหมายจะสร้างขึ้นและสองเป้าหมายล้มเหลวด้วยข้อผิดพลาดต่อไปนี้:

ข้อผิดพลาดในการลงชื่อรหัส: ไม่พบรหัสการเซ็นชื่อ: ไม่พบข้อมูลประจำตัวการเซ็นชื่อที่ถูกต้อง (เช่นใบรับรองและคู่คีย์ส่วนตัว) ที่ตรงกับรหัสทีม“ XXXXXXXXXX” ข้อผิดพลาด CodeSign: ต้องมีการลงนามรหัสสำหรับประเภทผลิตภัณฑ์ 'Application' ใน SDK 'iOS 7.1'

นี่คือแม้จะมีการปรับปรุงทุกอย่างใน Xcode และในผู้พัฒนา iOS ของศูนย์

คำใบ้คือ ID ทีมที่แสดงในข้อความความล้มเหลวของการสร้างว่าล้าสมัย

แน่นอนว่าการเปิดproject.pbxprojไฟล์ของ Xcode ในโปรแกรมแก้ไขข้อความพบรหัสทีมเก่า:

D29A93A318AB96440099C177 = {
        DevelopmentTeam = XXXXXXXXXX;
};

ในการรับproject.pbxprojไฟล์ของคุณให้เลือก.xcodeprojไฟล์ของคุณและแสดงเนื้อหาดังที่แสดงไว้ที่นี่:

ใส่คำอธิบายภาพที่นี่

ค้นหารหัสเป้าหมายD29A93A318AB96440099C177ฉันเห็นว่าตรงกับหนึ่งในเป้าหมายที่ล้มเหลว:

targets = (
    F5E8B19A16E64505006F22D4 /* MyTarget1 */,
    93DB2342183F737100BEA69F /* MyTarget2 */,
    D29A93A318AB96440099C177 /* MyTarget3 */,
    D200F4B518AB968A00F58C21 /* MyTarget4 */,
    F5E8B1C016E64505006F22D4 /* MyTarget5 */,
    589FB35119114DED003D9350 /* MyTarget6 */,
);

ในกรณีนี้MyTarget3. ในการแก้ไขปัญหาการค้นหาข้อความธรรมดาจะแทนที่ ID ทีมเก่าด้วย Id ใหม่ที่ถูกต้อง แก้ไขปัญหา.

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


นี่เป็นปัญหาของฉันเช่นกัน ไม่แน่ใจว่าเป็นเพราะฉันหรือใครบางคนในทีมที่แจกจ่ายของฉันที่มีโปรไฟล์ใบรับรอง ฯลฯ ของตัวเองฉันใส่ไว้เพื่อคอมไพล์อัตโนมัติรวมไฟล์ pbxproj ครั้งเดียวไม่ดี DevelopmentTeam ที่ฉันสังเกตเห็นนั้นมาจากดรอปดาวน์ Team ภายใต้แท็บทั่วไปในการตั้งค่าโปรเจ็กต์ของฉัน การลบบรรทัดนั้นใช้ได้ผลสำหรับฉันโดยสิ้นเชิงหากคุณต้องการให้ทีมตั้งค่าเป็นไม่มี
JoshA

ฉันตรวจสอบแล้ว DevelopmentTeam ของฉันถูกต้องว่าฉันจะได้รับรหัสใหม่ได้อย่างไร การติดตั้งใบรับรองมี DevelopmentTeam เดียวกันซึ่งอยู่ในนั้น โปรดช่วย
9to5ios

ทำงานเหมือน Charm เพียงแค่แทนที่รหัสที่แสดงในข้อผิดพลาดด้วยรหัสที่อยู่ด้านบน
vanguard69

ในกรณีของฉันฉันต้องคลิกปุ่ม "แก้ไข" ในTarget -> General -> Identity
Ohad Schneider

9

ฉันมีปัญหาเดียวกันในการพัฒนา ฉันแก้ไขโดย

  1. ไปที่การตั้งค่า XCode ดูรายละเอียดของ Apple ID และลบไฟล์การจัดเตรียมที่บ่น
  2. ไปที่การเข้าถึงพวงกุญแจและลบใบรับรองการพัฒนาที่เกี่ยวข้องกับไฟล์การจัดเตรียมที่คุณเพิ่งลบไป
  3. ใน Apple Member Center ให้ดาวน์โหลดไฟล์การจัดเตรียมการพัฒนาที่คุณเพิ่งลบในเครื่องดับเบิ้ลคลิกที่ไฟล์เพื่อให้แน่ใจว่าปรากฏใน XCode
  4. ดาวน์โหลดใบรับรองการพัฒนาที่คุณเพิ่งลบไปในเครื่องแล้วดับเบิลคลิกเพื่อให้แน่ใจว่าปรากฏในการเข้าถึงพวงกุญแจ
  5. ตอนนี้ควรจะไปแล้ว

2
คำตอบนี้ต้องอยู่สูงกว่าในหน้า
bkSwifty

8

ฉันเพิ่งมีปัญหากับเจนกินส์

วิธีแก้ปัญหาคือคัดลอกใบรับรองและวางลงในพวงกุญแจระบบมิฉะนั้นเจนกินส์จะไม่สามารถอ่านใบรับรองได้


7

คุณไม่ควรลบโปรไฟล์ทั้งหมดเพื่อแก้ไขปัญหานี้

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

ในหน้าเว็บโปรไฟล์ของคุณคลิก "แก้ไข" บนหน้าเว็บโปรไฟล์ของคุณ

คุณอาจเห็นว่าไม่มีใบรับรองที่เกี่ยวข้องแม้ว่าจะเลือก "เลือกทั้งหมด" แก้ไขโปรไฟล์ของคุณ! [] [1]


ฉันกำลังจะลบโปรไฟล์การจัดเตรียมทั้งหมดของฉันและเริ่มจากร่างจากนั้นฉันก็เจอคำตอบของคุณเพื่อนที่สมบูรณ์แบบหนึ่งวันเสียเวลาไปกับปัญหานี้ขอบคุณมากสำหรับการแบ่งปันคำตอบของคุณ
Nilesh Kumar

4

สำหรับฉันการตั้งค่าโครงการ→เป้าหมาย / [โครงการของคุณ] →ทั่วไป→ทีมเป็น "ไม่มี" ช่วยแก้ปัญหาได้


4

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

ฉันพยายามปรับใช้กับ App Store เพื่อทดสอบกับ TestFlight นักพัฒนาก่อนหน้าซึ่งไม่ได้เป็นส่วนหนึ่งของโครงการหรือ บริษัท อีกต่อไปได้สร้างใบรับรองการแจกจ่าย IOS สิ่งที่ xcode พยายามบอกฉันคือใช่ใบรับรองอยู่ในศูนย์สมาชิก แต่คุณไม่สามารถใช้มันได้ทั้งหมดเพราะไม่ใช่ของคุณ ฉันไม่มีคีย์ส่วนตัวที่จำเป็นในการเซ็นชื่อและไม่มีการรีเฟรชรีสตาร์ทการเพิกถอนจะช่วยฉันได้ คุณต้องมีผู้พัฒนาและใบรับรองการจัดจำหน่ายเพื่ออัปโหลดไปยัง App Store

วิธีแก้ปัญหาคือสร้างใบรับรองการแจกจ่ายการผลิตใหม่ในศูนย์สมาชิกโดยใช้คำขอลงนามใหม่จากพวงกุญแจของฉัน กระบวนการนี้ได้รับการจัดทำเป็นเอกสารและอธิบายไว้อย่างดีในขณะที่คุณสร้างใบรับรองออนไลน์ เมื่อเสร็จแล้วให้รีเฟรชบัญชีของคุณใน xcode เพื่อดาวน์โหลดไปยังพวงกุญแจของคุณและคุณจะเป็นสีทอง ฉันหวังว่านี่จะช่วยใครสักคน!


2

มันอาจจะฟังดูแปลก ๆ แต่สำหรับฉันแล้วการรีสตาร์ท mac ของฉันฉันไม่สามารถอธิบายได้ว่าทำไมและเกิดอะไรขึ้น แต่มันใช้งานได้แล้ว หวังว่ามันจะช่วยใครสักคน


2

ฉันมาถึงเธรดนี้เมื่อฉันใช้บรรทัดคำสั่ง / jenkins build script ที่บริสุทธิ์และฉันไม่ต้องการตั้งค่า UI / RDP ด้วยตนเองสำหรับสภาพแวดล้อมการรวม

หลังจากนั้นไม่กี่ชั่วโมงให้ลองแก้ปัญหาเดียวกันโดยใช้เจนกินส์
คีย์คือ "security list-keychains -s <your_keychain_name>"

--- เรื่องยาว ---
ฉันใช้สคริปต์ในเจนกินส์เพื่อลบล้างการตั้งค่าต่อโปรเจ็กต์ (โปรไฟล์การจัดเตรียมและการลงนามข้อมูลประจำตัว)
หลังจากอัปเกรดเป็น Xcode 7 ฉันต้องเปลี่ยนสคริปต์เพิ่มด้านบน "list-keychains" หลังจาก "create- พวงกุญแจ"

Updated สคริปต์ที่นี่


1

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

  • ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งใบรับรองที่ต้องการ (การพัฒนา / การแจกจ่าย) ในพวงกุญแจสำหรับโปรไฟล์การเตรียมการลงนามรหัส (การพัฒนา / การแจกจ่าย)

1

ลองเปลี่ยน Bundle Identifier: Project -> Targets / [your project] -> General -> Bundle Identifier

หากมีการเผยแพร่แอปที่ AppStore XCode ไม่อนุญาตให้สร้างแอปพลิเคชันด้วยตัวระบุบันเดิลเดียวกัน


1

กำหนดเป้าหมาย iOS 8 และ 9 บน Xcode 7 โปรไฟล์การพัฒนาของฉันเรียบร้อยดีฉันได้รับข้อผิดพลาดนี้ขณะเก็บแอปเพื่ออัปโหลดไปยัง App Store นี่คือสิ่งที่ฉันทำ:

Xcode> การตั้งค่า> บัญชี> ดูรายละเอียด ข้าง iOS Distribution ให้คลิกปุ่ม "รีเซ็ต" การดำเนินการนี้จะทำให้โปรไฟล์การจัดสรรการแจกจ่ายที่คุณใช้เป็นโมฆะ (เนื่องจากคุณรีเซ็ตใบรับรองการแจกจ่าย) ดังนั้นให้แก้ไขโปรไฟล์เพื่อรวมใบรับรองที่รีเซ็ตใหม่

อย่าลืมดาวน์โหลดทั้งใบรับรองการแจกจ่ายใหม่และโปรไฟล์การจัดสรรการแจกจ่ายที่แก้ไขใหม่ รีสตาร์ท Xcode


1

ตรวจสอบให้แน่ใจว่าใบรับรองของคุณเชื่อมต่อกับคีย์ส่วนตัวของคุณ :

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

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

ตอนนี้เมื่อคุณมีใบรับรองใหม่ให้สร้างโปรไฟล์การจัดเตรียมที่จำเป็นขึ้นใหม่ซึ่งจะรวมใบรับรองใหม่ไว้ในกระบวนการสร้าง

หมายเหตุเมื่อมีคนในทีมของคุณรีเซ็ตใบรับรองนี้ด้วยคีย์ส่วนตัวปัญหาเดียวกันนี้อาจปรากฏขึ้นอีกครั้งในระหว่างกระบวนการรีเฟรช ฉันไม่แน่ใจ แต่ดูเหมือนว่านักพัฒนาซอฟต์แวร์ทุกคนในทีมจะต้องมีใบรับรองของตัวเองเพื่อแจกจ่าย


1

เห็นได้ชัดว่าปัญหานี้มีสาเหตุที่แตกต่างกัน :)

สำหรับกรณีของฉันการเข้าสู่ระบบบัญชีของฉันหมดอายุ ... ฉันแก้ไขได้โดยเพียง:

XCode -> ค่ากำหนด -> บัญชี -> Apple ID -> เลือก ID ที่เกี่ยวข้องและต่ออายุการเข้าสู่ระบบ ...

หวังว่านี่จะช่วยได้!


0

ไปที่ตัวนำทางปัญหาและตรวจสอบว่าSigning Identity:มีอยู่ในการเข้าถึงพวงกุญแจของคุณหรือไม่ หากไม่มีให้ดาวน์โหลด.cerไฟล์และต่อท้ายเข้ากับพวงกุญแจ


0

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


0

ฉันมีข้อผิดพลาดที่คลุมเครือนี้ "Command / usr / bin / codeign ล้มเหลวด้วยรหัสทางออก 1" เมื่อฉันตั้งค่ากล่อง Jenkins ใหม่สำหรับรุ่น iOS ด้วย Xcode 7.3, OSX 10.11.4

ในกรณีของฉันฉันมีหลายสิ่งที่ถูกต้อง: 1. ใช่ฉันได้เพิ่มใบรับรองของฉันไปยังพวงกุญแจทั้งรูทของ Apple และใบรับรองของทีม 2. ใช่ฉันดาวน์โหลดโปรไฟล์การจัดเตรียมที่ถูกต้องผ่านการตั้งค่า xcode 3. ใช่มันสร้างขึ้นด้วยตนเองใน xcode

อย่างไรก็ตามสำหรับเจนกินส์อาจมีปัญหาในการแคชบน xcode สิ่งที่ได้ผล: 1. ออกจาก Xcode GUI 2. กลับเข้ามาและรันบิลด์ด้วยตนเองหนึ่งครั้ง 3. จากนั้น Xcode จะแจ้งให้อนุญาตการเข้าถึงพวงกุญแจเท่านั้น 4. Jenkins มีการตั้งค่าบางอย่างที่อาจสามารถแก้ไขได้ แต่เครื่องของฉันปลอดภัยฉันจึงคลิก 'อนุญาตให้ xcode เข้าถึงพวงกุญแจเสมอ'


0

เมื่อติดตั้งfastlaneคุณสามารถสร้างและติดตั้งใบรับรองการพัฒนาโดย

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