ต้องมีการเซ็นรหัสสำหรับประเภทผลิตภัณฑ์ Unit Test Bundle ใน SDK iOS 8.0


128

การเดินทาง

ต้องมีการเซ็นรหัสสำหรับประเภทผลิตภัณฑ์ 'Unit Test Bundle' ใน SDK 'iOS 8.0'

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

มีวิธีใดในการลบ certs / โปรไฟล์ทั้งหมดในเครื่องเพื่อให้ฉันสามารถติดตั้งใหม่ได้?

อาจมีข้อผิดพลาดบางอย่าง


ฉันมีข้อผิดพลาดที่คล้ายกัน - การแก้ไขของฉันคือไปที่การตั้งค่าการสร้างและเลือกโปรไฟล์การจัดสรรแทนที่จะเลือกโดยอัตโนมัติ
scb998

คำตอบ:


129

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

เห็นได้ชัดว่าหากการปรับใช้กับอุปกรณ์หากมีเป้าหมายการทดสอบหน่วยจะต้องมีการลงนามรหัส

ขั้นตอน:

1) เปลี่ยนเป้าหมายเป็นเป้าหมายการทดสอบของคุณ (AppnameTests)

ป้อนคำอธิบายรูปภาพที่นี่

2) ตรวจสอบให้แน่ใจว่า "รหัสการลงนามรหัส" ไม่ใช่ "ไม่ต้องลงชื่อรหัส" เลือกโปรไฟล์ที่จะเซ็นด้วย

ป้อนคำอธิบายรูปภาพที่นี่

นั่นคือทั้งหมดที่ฉันต้องเปลี่ยนเพื่อให้มันทำงาน


ฉันกำลังเผชิญปัญหาเดียวกันกับที่กล่าวถึงในคำถามข้างต้น แต่ไม่สามารถหาวิธีแก้ปัญหาได้และฉันได้โพสต์คำถามเกี่ยวกับสิ่งเดียวกัน stackoverflow.com/questions/27312745/…
Neal

คุณช่วยบอกฉันทีละขั้นตอนเกี่ยวกับวิธีการทำมันได้ไหม
Neal

พบปัญหาใน Xcode 8 การแก้ปัญหาไม่เหมือนกันกับคุณ แต่ปิด ขอบคุณที่แสดงให้ฉันเห็นทาง!
user3259235

นอกจากนี้ในการตั้งค่า 'รหัสการลงนามรหัส' คุณอาจต้องตั้งค่า 'ทีมพัฒนา' เช่นกัน
bitsand

100

ฉันแก้ไขปัญหา (ชั่วคราว) โดยไปที่ Edit Scheme จากนั้นในส่วน Build ลบเป้าหมายทดสอบหน่วยของฉันจากการถูกเรียกใช้ใน "Run"


1
จับดี! ทำไมคุณพูดชั่วคราว ? มันดูเหมือนทางออกที่สมเหตุสมผลสำหรับฉัน คุณส่งแอปไปยังร้านค้าหรือไม่?
mokagio

ไม่มีปัญหาในการส่งแอพไปยัง App Store ฉันพูดว่า "ชั่วคราว" เพราะฉันคิดว่ามีการแก้ไขที่ถาวรมากขึ้นโดยการเล่นซอกับการเซ็นรหัส แต่นี่เป็นการแก้ไขที่ไม่ยุ่งยากอย่างรวดเร็ว
ZS

2
เจ๋งขอบคุณ ดูเหมือนว่าเป็นทางออกที่ดีสำหรับฉันเป้าหมายการทดสอบหน่วยไม่ควรทำงานต่อไป +1
mokagio

คุณช่วยอธิบายรายละเอียดเพิ่มเติมให้ฉันได้ไหม คุณหมายถึงฉันต้อง 'สร้าง'? และฉันไม่เข้าใจ 'ลบการทดสอบหน่วยของฉันจากการถูกเรียกใช้ใน Run'
LKM

66

คำแนะนำอื่น ๆ ที่นี่ไม่ได้ช่วยฉัน Product > Scheme > Edit Schemeแต่ฉันคงข้อผิดพลาดนี้ได้โดยไปที่ จากนั้นฉันคลิกBuildที่ด้านซ้ายมือและยกเลิกการเลือกช่องทำเครื่องหมายถัดAppNameTestsจาก ฉันใช้ XCode 6.3

ป้อนคำอธิบายรูปภาพที่นี่


@Almo อย่ายกเลิกการเลือกช่องใด ๆ ภายใต้ "ทดสอบ" แต่ให้ยกเลิกการทำเครื่องหมายทุกอย่าง (ซึ่งคุณสามารถยกเลิกการเลือก) ในแถวชื่อ APPNAMEtests ฉันจะรวมภาพหน้าจอในคำตอบของฉันเพื่อช่วยอธิบาย
Olivia Stork

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

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

3
@huggie ¯ \ _ (ツ) _ / ¯ยินดีต้อนรับสู่การเขียนโปรแกรม iOS!
Olivia Stork

1
@OliviaStork คุณบังคับให้ฉัน ขอบคุณมากสำหรับบันทึกงานของฉัน
Anurag Shrivastava

29

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

ทดสอบการตั้งค่าเป้าหมาย -> สร้างการตั้งค่า -> การเซ็นชื่อรหัส -> รหัสประจำตัวของรหัส ก่อนหน้านี้มันถูกตั้งค่าเป็น "Don't code sign"


การเลือกโปรไฟล์การจัดสรรใช้งานได้อย่างชัดเจนสำหรับฉันขอบคุณ
Mike Weller

ตรวจสอบให้แน่ใจว่าได้เลือกตัวกรอง "ทั้งหมด" ที่ด้านบนไม่ใช่ตัวเลือก "พื้นฐาน"
Marty

13

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

ฉันเปลี่ยนของฉันจาก "myIphone" เป็น Simulator iPhone 6 Plus และแก้ปัญหาได้ในขณะที่ฉันกำลังพัฒนาแอพ


1
แต่จะทำอย่างไรถ้าคุณต้องการปรับใช้แอพของคุณไปยังอุปกรณ์ทางกายภาพ±!
Marwen Trabelsi

8

ในกรณีของฉันปัญหาที่ฉันเผชิญคือ:

ข้อผิดพลาดของ CodeSign: ต้องมีการเซ็นรหัสสำหรับประเภทผลิตภัณฑ์ 'Unit Test Bundle' ใน SDK 'iOS 8.4'

โชคดีที่เป้าหมายไม่ได้ดำเนินการใด ๆ ดังนั้นจึงมีวิธีแก้ปัญหาอย่างรวดเร็ว

ป้อนคำอธิบายรูปภาพที่นี่


2

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


2

หากไม่มีอะไรทำงานได้จากการแก้ปัญหาข้างต้นทำตามขั้นตอนเหล่านี้

จากเป้าหมายเลือก appnameTests ภายใต้ "ข้อมูล"

เปลี่ยนการติดตาม

ตัวระบุบันเดิล: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

เพื่อ com.ProjectName.appname

ชื่อชุด: $ (PRODUCT_NAME)

ชื่อชุดรวม: appname

รวบรวมและดำเนินการ


1

ฉันแก้ปัญหาด้วยการเปลี่ยน 'โปรไฟล์การจัดสรร' ในส่วนเดียวกัน ('การเซ็นรหัส') จากอัตโนมัติเป็น 'MyProvisioningProfile ชื่อ'


0

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


0

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

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