ข้อผิดพลาดของรหัสลับ: ไม่พบโปรไฟล์การจัดสรรหลังจากลบโปรไฟล์ที่หมดอายุแล้ว


500

พยายามสร้างแอพที่ใช้งานได้เมื่อวานนี้ มีข้อความว่าโปรไฟล์หมดอายุดังนั้นฉันจึงลบออกจาก iPod และจาก iTunes เมื่อฉันเลือกโปรไฟล์ใหม่ (อันที่มี * ในตัวระบุ) ตอนนี้ฉันได้รับข้อผิดพลาด:

ข้อผิดพลาดในการเซ็นรหัส: ไม่พบโปรไฟล์การจัดสรร (สตริงยาว)

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

คำตอบ:


856

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

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

210
จริง ๆ แล้วไฟล์. xcodeproj เป็นไดเรกทอรีเช่นชุดแอปพลิเคชันหากคุณคลิกขวาในตัวค้นหาคุณสามารถเลือกแสดงเนื้อหาของแพ็คเกจและจากนั้นคุณจะเห็นไฟล์หลายไฟล์อยู่ภายใน ไฟล์โครงการจริงคือไฟล์ที่อยู่ในนั้นพร้อมกับส่วนขยาย. pbxproj เมื่อคุณเปิดด้วยโปรแกรมแก้ไขข้อความบรรทัดที่คุณค้นหาควรเริ่มต้นด้วย 'PROVISIONING_PROFILE = หรือ' '"PROVISIONING_PROFILE [sdk = iphoneos *]" =' ลบทั้งหมดจากนั้นคุณควรจะดี
แบรด The App Guy

2
ฉันพบว่านอกเหนือจากข้างต้นฉันต้องลบโปรไฟล์ทั้งหมดของฉันดาวน์โหลดไฟล์เหล่านั้นใหม่จากพอร์ทัลการจัดสรรและนำเข้าลงใน XCode อีกครั้ง จากนั้นในการตั้งค่าการสร้าง / การลงนามรหัสให้เลือกโปรไฟล์ที่เหมาะสมสำหรับการกำหนดค่าการสร้างทั้งหมด
Jay Imerman

11
ยังคงเป็นคำแนะนำที่มีค่ากับ XCode4 ในปี 2012 ขอบคุณ!
Alexey Rusakov

6
... aaaaand ยังมีคำแนะนำที่มีค่ากับ Xcode6 ในปี 2014! ขอบคุณมาก ๆ!
Tom van Zummeren

4
สิ่งเดียวที่ใช้ได้กับฉัน: การตั้งค่า -> บัญชี -> ดูรายละเอียด -> รีเฟรช ที่โหลดโปรไฟล์การจัดเตรียมทั้งหมดใหม่จาก dev พอร์ทัล หวังว่าจะช่วยให้ใครบางคน
blackhawk4152

129

นี่เป็นวิธีที่ง่ายกว่าสำหรับฉันและไม่ต้องการแก้ไขไฟล์โครงการด้วยตนเอง:

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

โปรดทราบว่าสิ่งนี้แตกต่างจากการดับเบิลคลิกที่ไอคอนโครงการของคุณและเปลี่ยนโปรไฟล์จากที่นั่น น่าทึ่งมาก :)

Ori


1
ขอบคุณ! ผมจะพยายามต่อไปเวลานี้มันเกิดขึ้น :)
quantumpotato

6
และตรวจสอบให้แน่ใจว่าได้เลือกการกำหนดค่า
บิวด์

1
มันไม่ได้ผลเสมอไป บางครั้งคุณยังต้องเข้าไปข้างในและเปลี่ยนมันด้วยตนเองเหมือนที่แสดงในคำตอบแรก
SpaceTrucker

เป็นอีกหมายเหตุสำหรับ echo SpaceTrucker: วิธีนี้ใช้ไม่ได้เสมอไป คำตอบที่ยอมรับได้รับประกันว่า Xcode จะหยุดมองหาโปรไฟล์แฟนทอมนั้น
Simone Manganelli

ฉันพบว่านอกเหนือจากข้างต้นฉันต้องลบโปรไฟล์ทั้งหมดของฉันดาวน์โหลดไฟล์เหล่านั้นใหม่จากพอร์ทัลการจัดสรรและนำเข้าลงใน XCode อีกครั้ง จากนั้นในการตั้งค่าการสร้าง / การลงนามรหัสให้เลือกโปรไฟล์ที่เหมาะสมสำหรับการกำหนดค่าการสร้างทั้งหมด
Jay Imerman

76
  1. คุณสมบัติของโครงการ & เป้าหมาย -> "Don't Code Sign" -> OK -> cmd + S (หรือ cmd + B);
  2. คุณสมบัติโครงการ & เป้าหมาย -> "โปรไฟล์การจัดสรรของคุณ" -> ตกลง

  3. ทุกอย่างทำงานได้อีกครั้ง!


4
นี่เป็นทางออกเดียวที่ทำงานได้สำหรับฉัน (ใช้ XCode4) การสร้างแอปด้วย "Don't Code Sign" ที่เลือกเป็นขั้นตอนบังคับสำหรับฉัน
Chazbot

ดูเหมือนว่าจะเป็นโซลูชันที่ดีกว่ารุ่นที่มี upvotes มากกว่า 200+ รายการเนื่องจาก Xcode อาจเปลี่ยนวิธีที่จะเขียนไฟล์โครงการในอนาคต
Danyal Aytekin

1
นี่คือการแก้ปัญหาที่ถูกต้องซึ่งทำงานให้ฉันใน Xcode 4.2
Selvin

10

ฉันเห็นด้วยกับคำตอบของแบรดว่าคุณสามารถแก้ไขปัญหานี้ได้ด้วยการแก้ไขเป้าหมาย / โครงการของคุณด้วยมือลบบรรทัดใด ๆ ดังนี้:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

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


ติดตามสิ่งนี้คุณไม่ต้องปิดและเปิดโครงการ แนวทางที่ดีกว่า :)
ไวรัส

6

เพิ่งเห็นการเปลี่ยนแปลงในปัญหานี้: ฉันเข้าไปในไฟล์ project.pbxproj ตามบันทึกของแบรดสมิ ธ ข้างต้นยกเว้นในกรณีนี้บรรทัด PROVISIONING_PROFILE ทั้งหมดดูเหมือนว่าจะถูกต้องโดยไม่มีสตริงโปรไฟล์ "เลว" ที่ XCode ไม่สามารถทำได้ หา

อย่างไรก็ตามการแก้ไขเหมือนกัน: การลบบรรทัด PROVISIONING_PROFILE ทั้งหมดใน project.pbxproj แม้ว่าพวกเขาจะดูดีในทางทฤษฎีแล้วเปิดโครงการใน XCode อีกครั้ง


4

เพื่อให้ได้โซลูชันของ Brad ทั้งหมดใน Terminal ให้ใช้คำสั่งเหล่านี้

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - ลบทั้งบรรทัด
  5. กด n จนกว่าจะไม่พบอีก
  6. Ctrl + x เพื่อบันทึกและปิด

3

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

นอกจากโปรไฟล์ดังกล่าวแล้วโปรไฟล์ใหม่ก็ปรากฏขึ้น (ด้วยชื่อเดียวกัน) และหลังจากเปิดใช้งานแอปพลิเคชันใหม่อีกครั้งฉันก็สามารถทำงานได้อย่างราบรื่น


+1 บางครั้งฉันไม่สามารถติดตั้งได้เนื่องจากโปรไฟล์หมดอายุ - ไม่ได้มีตัวระบุเดียวกัน! - อยู่ในอุปกรณ์ของฉัน
quantumpotato

อันนี้ใช้ได้สำหรับฉัน แต่ฉันก็ต้องเรียกใช้ XCode อีกครั้งเพื่อให้มันทำงานได้
Matt

3

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

ฉันทำสิ่งนี้โดยใช้สิ่งต่อไปนี้: 10.7.3, Xcode 4.3.2, iOS 5.1 btw

1) คลิกขวาบนของคุณmyapp.xcodeprojและเลือกเนื้อหาแพ็คเกจ

2) เปิดproject.pbxprojด้วยโปรแกรมแก้ไขข้อความ (ไม่แนะนำ textedit เพราะอาจทำให้การฟอร์แมตเกิดขึ้น)

3) เลื่อนลงไปจนสุด /* Begin XCBuildConfiguration section */

4) ขอให้สังเกตว่าคุณมีส่วนที่ debug และ release

5) ในส่วนปล่อยให้ดูCODE_SIGN_IDENTITY& "CODE_SIGN_IDENTITY[sdk=iphoneos*]"มันควรมีลักษณะเช่นนี้:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) ดูที่PROVISIONING_PROFILEและ"PROVISIONING_PROFILE[sdk=iphoneos*]"พวกเขาควรมีลักษณะเช่นนี้:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

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

7) เลื่อนลงในproject.pbxprojและค้นหาอินสแตนซ์ที่สองของส่วนปล่อย อินสแตนซ์ที่สองของส่วนปล่อยควรลงท้ายด้วยความคิดเห็นว่า/* End XCBuildConfiguration section */

8) ตรวจสอบให้แน่ใจว่าส่วนที่สองตรงกับส่วนแรกเพื่อให้CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]และPROVISIONING_PROFILEถูกกรอกข้อมูลทั้งหมด


2

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

ความสามารถในการถอยกลับจากการแก้ไขอาจมาจากสวรรค์


ใช่นี่คือเหตุผลที่พระเจ้า SCM สร้างการควบคุมแหล่งที่มา
Br.Bill

1

ฉันเพิ่งพบปัญหานี้ใน XCode4 ของฉัน ในการแก้ไขคุณต้องใส่บทบัญญัติที่ถูกต้องทั้งหมดลงในการกำหนดค่า Debug และ Release

ฉันพยายามส่ง (โดยเก็บถาวร) แอปของฉัน ดังนั้นฉันเพิ่งเปลี่ยนบทบัญญัติ Debug เป็น "Don't Code Sign" และบทบัญญัติ Release เป็นบทบัญญัติของ appstore ในแอปของฉัน

แก้ไขได้และทำให้ฉันสามารถเก็บถาวรได้ตามปกติ หวังว่าจะช่วย


1

เลือกบรรทัดในการกำหนดรหัสที่ว่างเปล่าภายใต้ iOS SDK ใด ๆ และเลือกใบรับรองที่ถูกต้อง


1

วิธีแก้ปัญหาของแบรดสมิ ธ ใช้งานได้สำหรับฉัน แต่ฉันต้องลบฟิลด์ CODE_SIGN_IDENTITY เพื่อให้ทำงานได้


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

0

น่าเสียดายที่วิธีการนี้ไม่ได้ผลสำหรับฉัน แต่นี่คือการแก้ไขที่ใช้งานได้สำหรับฉัน (เพื่อให้ได้งานนี้คุณต้องใช้ไฟล์โครงการที่ทำงานในการโค่นล้มหรือมากกว่านั้น):

ฉันย้อนกลับเป็นไฟล์โครงการเวอร์ชันที่ใช้งานได้ เนื่องจากไม่สามารถย้อนกลับด้วย Xcode ( ตัวเลือก 'เปลี่ยนกลับ' ในการควบคุมซอร์สของ Xcode 4 อยู่ที่ไหน ) - ฉันใช้ Tortoise, เครื่อง Windows ของฉันและบทช่วยสอนนี้ ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html ) เพื่อย้อนกลับไปยังไฟล์โครงการที่เก่ากว่า

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


0

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

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

0

อย่างน้อยใน Xcode 5 นี่คือสิ่งที่แก้ไขปัญหาให้ฉัน:

ภายใต้โปรไฟล์การจัดเตรียมเลือกโปรไฟล์การจัดเตรียมที่ละเมิดจากนั้นเลือกโปรไฟล์การจัดเตรียมที่ถูกต้องในเมนูแบบเลื่อนลง

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


0

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

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