ฉันพยายามอัปโหลดแอปไปยังร้านแอปและฉันได้รับข้อผิดพลาดนี้ในหน้าที่มีใบรับรอง เท่าที่ฉันสามารถบอกได้ว่าฉันเปลี่ยนสนามเพื่อให้พวกเขาจับคู่กัน แต่ฉันขาดบางอย่าง
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.
ฉันพยายามอัปโหลดแอปไปยังร้านแอปและฉันได้รับข้อผิดพลาดนี้ในหน้าที่มีใบรับรอง เท่าที่ฉันสามารถบอกได้ว่าฉันเปลี่ยนสนามเพื่อให้พวกเขาจับคู่กัน แต่ฉันขาดบางอย่าง
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.
คำตอบ:
ฉันไม่แน่ใจว่าทำไมสิ่งนี้ได้รับการแก้ไข แต่ฉันเข้าไปในแท็บความสามารถของเป้าหมายของฉันเปิด iCloud พยายามสร้างไฟล์เก็บถาวรมันล้มเหลวฉันปิด iCloud อีกครั้งพยายามสร้างไฟล์เก็บถาวรและมันก็สำเร็จและ หลังจากนั้นก็สามารถแก้ไขใบรับรองโดยอัตโนมัติอีกครั้ง
คลิกขวาที่ Finder -> ไปที่โฟลเดอร์ ...
~/Library/MobileDevice/Provisioning
สำหรับ Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
ลบโปรไฟล์การจัดเตรียมทั้งหมดเสร็จสิ้น
~/Library/MobileDevice/Provisioning Profiles/
แอปที่คุณสร้างขึ้นมีapplication-identifier
ค่าที่ไม่ถูกต้องตามที่โปรไฟล์การจัดเตรียมคาดหวัง ใบรับรองสำหรับ appID com.example.foo สำหรับทีม 2ABCDEFG จะคาดหวังตัวระบุแอปพลิเคชัน: 2ABCDEFG.com.example.foo แอปของคุณประกาศว่า appID คือ com.example.foo แต่ตัวระบุแอปพลิเคชันไม่ตรงกัน ไม่ว่าคุณจะใช้คำนำหน้าทีมผิดหรือคุณกำหนดค่า BundleID ไม่ถูกต้อง
ในกรณีของฉันฉันใช้ build schemes เพื่อให้ฉันสร้างแอพ prod และแอพ qa com.example.foo สำหรับ prod และ com.example.foo.qa สำหรับ QA ฉันได้ตั้งค่า bundleIdentifier ของฉันใน Info.plist เป็น $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX) ซึ่งใช้งานได้ดีในเครื่องจำลองและบนอุปกรณ์สำหรับการมีแอปที่แตกต่างกันอย่างไรก็ตามเมื่อแอปสร้างตัวระบุแอปพลิเคชันในระหว่างขั้นตอนการเก็บถาวร ต้องไม่อ่าน bundleIdentifier ที่สร้างโดย Info.plist
เพื่อแก้ไขสถานการณ์ฉันแก้ไข FooProject.xcodeproj / project.pbxproj (ด้วยโปรแกรมแก้ไขข้อความ) เพื่อเปลี่ยน QA buildSettings PRODUCT_BUNDLE_IDENTIFIER เป็น com.example.foo.qa
คุณสามารถดูคำถามและคำตอบด้านเทคนิคของ Apple เพื่อดูข้อมูลเชิงลึกในการแก้ปัญหานี้ เมื่อคุณเรียกใช้การให้สิทธิ์ codeign ในแอปที่ส่งออกของคุณและดูว่าแอปพลิเคชันของคุณสร้างขึ้นด้วยตัวระบุแอปพลิเคชันใดคุณควรทราบอย่างรวดเร็วว่าคุณทำอะไรผิด https://developer.apple.com/library/content/qa/qa1879/_index.html ฉันไม่พบหน้านั้นในการค้นหาโดย Google ของฉันเพราะพวกเขาไม่ได้ใช้วลีจากข้อความแสดงข้อผิดพลาดหรือเรียกแอปพลิเคชัน -identifier ตามชื่อเต็ม แต่พูด ID แอปแทน
นอกจากนี้วิธีแก้ไขปัญหานี้ไม่ได้เป็นการสร้างโปรไฟล์การจัดเตรียมใหม่ที่มีการให้สิทธิ์ตัวระบุแอปพลิเคชัน แต่ก็มีสิทธิ์ดังกล่าวอย่างไรก็ตามค่าในโปรไฟล์การจัดเตรียมและแอปของคุณต้องตรงกัน
บางทีไฟล์ .entitlements ของ {project} หายไป การทำสิ่งที่ @samkass กล่าวถึงจะสร้างไฟล์โดยอัตโนมัติและมันจะทำงาน โดยพื้นฐานแล้วเพียงไปที่แท็บความสามารถเปิดใช้งานอะไรก็ได้และปิดการใช้งาน
การเปลี่ยนการสลับ iCloud เป็นเปิดสร้างและปิดใช้งาน iCloud กำจัดข้อผิดพลาดที่บอกว่า:
โปรไฟล์ไม่ตรงกับค่าของไฟล์การให้สิทธิ์สำหรับการให้สิทธิ์ตัวระบุแอปพลิเคชันและกลุ่มการเข้าถึงพวงกุญแจ
ใน Xcode 11 สิ่งนี้อาจเกิดขึ้นเมื่อไม่มีไฟล์ .entitlement สำหรับโครงการของคุณ วิธีแก้ปัญหาคือการเพิ่มความสามารถแบบสุ่มโดยคลิกที่ '+ Capability' ภายใต้ 'Signing & Capabilities' (ซึ่งนำไปสู่การสร้างไฟล์ .entitlement) จากนั้นจึงลบความสามารถออก ซึ่งจะช่วยให้คุณสามารถจัดเตรียมใบรับรองโดยอัตโนมัติได้เช่นกัน
โปรดตรวจสอบคุณสมบัติแอปพลิเคชันของคุณที่จำเป็นสำหรับแอปพลิเคชันของคุณเช่นในการซื้อแอปการแจ้งเตือนแบบพุชเสียงระหว่างแอปชุด Siriเป็นต้น
นี่เป็นสาเหตุเดียวสำหรับข้อผิดพลาดประเภทนี้
ตรวจสอบให้แน่ใจว่าในรหัสแอปของคุณควรเปิดแฟล็กด้านบน
เวลาส่วนใหญ่เกิดขึ้นเมื่อคุณไม่ได้กำหนดค่าการแจ้งเตือนแบบพุชในการซื้อแอปในการพัฒนา App ID ของคุณ
ฉันเข้าไปที่แท็บความสามารถของเป้าหมายของฉันเปิดการแชร์พวงกุญแจและมันก็เริ่มทำงาน
สำหรับฉันเคล็ดลับคือการ
ฉันได้รับข้อผิดพลาดเดียวกันนี้และไม่มีวิธีแก้ไขใด ๆ ข้างต้นที่สามารถแก้ปัญหาในกรณีของฉันได้
สิ่งที่ได้ผลสำหรับฉันคือเปลี่ยนการตั้งค่า "สามารถแก้ไขจุดบกพร่อง" ในไฟล์ "Entitlements.plist" จาก "NO" เป็น "YES"
ในกรณีของฉันเกิดปัญหาตามมา: โปรไฟล์การจัดเตรียมที่ใช้สำหรับขั้นตอนการสร้างถูกสร้างขึ้นสำหรับ ID แอปที่แตกต่างจากโปรไฟล์การจัดเตรียมที่ใช้สำหรับขั้นตอนการส่งออก
ดังนั้นตรวจสอบให้แน่ใจว่าคุณใช้โปรไฟล์การจัดเตรียมเดียวกันสำหรับขั้นตอนการสร้างและส่งออก
สิ่งที่ได้ผลสำหรับฉันคือฉันสร้างที่เก็บถาวรใน XCode 11 และทำการอัปโหลดใน Xcode 12 เบต้า
ความสามารถในการตรวจสอบข้ามในแอปพร้อมตัวเลือกที่คุณเปิดใช้งานสำหรับรหัสแอปของคุณในบัญชีนักพัฒนาของคุณ
ฉันลองใช้ตัวเลือกสองสามตัวที่ระบุไว้ในคำตอบที่นี่ แต่ไม่มีวิธีใดช่วยได้อย่างไรก็ตามการสลับช่องทำเครื่องหมาย "จัดการการลงชื่อโดยอัตโนมัติ" และแก้ไขปัญหา
TL; DR: ตรวจสอบ ID แอปของคุณและตรวจสอบให้แน่ใจว่าบริการตรงกับสิ่งที่อยู่ในเป้าหมายของคุณ
สิ่งที่เกิดขึ้นกับฉันคือฉันปล่อยให้ Xcode 10.1 ช่วยฉันสร้าง App ID และหลังจากนั้นฉันก็พบปัญหาตามที่อธิบายไว้ที่นี่ (ฉันเลือกรหัสแอป whildcard เมื่อฉันสร้างแอปใน iTunesConnect ดังนั้นฉันจึงไม่รู้ด้วยซ้ำว่าได้ทำเสร็จแล้ว) เมื่อฉันเปิดพอร์ทัลนักพัฒนา iOS ID แอปใหม่จะเปิดใช้งาน Game Center และในการซื้อแอปโดยอัตโนมัติ
เนื่องจากฉันไม่สามารถเปิดใช้งาน Game Center ในของคุณTarget -> Capabilities
ได้ฉันจึงเปิดใช้ในการซื้อแอปจากนั้นแอปของฉันก็สามารถลงชื่อและอัปโหลดได้
เมื่อเราประสบปัญหาเดียวกันเราได้ลองทำทุกอย่างข้างต้นแล้ว แต่ก็ไม่ได้ผล
สิ่งที่ได้ผลสำหรับเราคือการเปลี่ยนตัวระบุบันเดิลเพื่อให้ไม่เหมือนกับตัวระบุก่อนหน้าตัวอย่างเช่น "com.name.App" เป็น "com.name.App2"; ให้ xcode พยายามดึง / สร้างโปรไฟล์การจัดเตรียมจากนั้นให้โอกาสกลับเป็นโปรไฟล์เดิม
ได้แนวคิดนี้จากกระทู้นี้ในฟอรัมนักพัฒนาของ Apple - https://forums.developer.apple.com/thread/114539
ฉันเพิ่งเจอหน้านี้หลังจากพยายามสร้างเป้าหมายที่ซ้ำกัน - ไม่มีคำแนะนำใดที่ใช้ได้ผลกับฉัน การตรวจสอบเพิ่มเติมและการดึงผมจำนวนหนึ่งในที่สุดทำให้ฉันต้องกำจัดสิ่งสกปรกผ่านการตั้งค่าการสร้างสำหรับแอปของฉันเพื่อลองคิดดูว่ามีอะไรผิดปกติ
ปรากฎว่าโครงการของฉันยังคงชี้ไปที่ไฟล์สิทธิ์ของเป้าหมาย ORIGINAL แทนที่จะเป็นของตัวเอง ในการแก้ไขปัญหานี้ฉันไปที่ไฟล์สิทธิ์ดั้งเดิมใน Finder (เช่น$ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ) สร้างสำเนาภายในโฟลเดอร์เดียวกันแล้วเปลี่ยนชื่อ (เช่น NewTargetName.entitlements)
จากนั้นฉันจึงเปิดไฟล์การให้สิทธิ์ใหม่และเปลี่ยนฟิลด์ตัวระบุแอปพลิเคชันให้ตรงกับตอนจบของตัวระบุบันเดิลเป้าหมายใหม่ของฉัน (เช่นABCDEFGH.US.co.fake-company.superduperapp-newtargetname )
ในที่สุดฉันก็อัปเดตช่อง 'Code Signing Entitlements' ในการตั้งค่าบิลด์ไปยังเส้นทางของไฟล์สิทธิ์ของฉัน (สำหรับฉันนี่คือสิ่งที่อยู่ในบรรทัดของ$ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements )
ฉันกลับไปที่แท็บการลงชื่อและความสามารถและดูปัญหาได้รับการแก้ไขแล้ว หวังว่าใครบางคนจะพบว่าสิ่งนี้มีประโยชน์
ไปที่แท็บข้อมูลของ Xcode และเปลี่ยนช่องตัวระบุ Bundle - หลังจากเปลี่ยนชื่อแอปแล้วก็ไม่เปลี่ยนแม้ว่าฉันจะเปลี่ยน Bundle Identifier บนแท็บทั่วไป การแก้ไขข้างต้นไม่ได้ผลสำหรับฉัน แต่การแก้ไขนี้ทำได้ทันที
ฉันมีปัญหานี้กับแอปใหม่ล่าสุดใน Xcode 12 beta 3 ( การส่งแอปเริ่มแล้ววันนี้ )
Xcode เปิด "จัดการการลงนามโดยอัตโนมัติ" อย่างไรก็ตามรหัสทีมที่แสดงใน "ใบรับรองการลงนาม" ไม่ตรงกับรหัสทีมที่แสดงในเว็บไซต์ iTunes Connect นี่เป็นสาเหตุหลักที่ทำให้ไม่สามารถอัปโหลดแอปได้
ฉันแก้ไขได้อย่างไร:
ฉันพบปัญหาเดียวกันขณะตั้งค่าไปป์ไลน์ Gitlab ที่เรียกใช้ exportArchive cmd และอัปโหลดไปยัง AppStore ฉันสามารถทำให้มันใช้งานได้โดยเปลี่ยน DEVELOPMENT_TEAM ใน Build Settings เป็นทีมเดียวกับที่เลือกใน Signing & Certs
เนื่องจากก่อนหน้านี้ถูกตั้งค่าเป็นค่าว่างซึ่งใช้รหัส DEV TEAM อื่นโดยค่าเริ่มต้นซึ่งไม่ถูกต้องและไม่ตรงกันและมีการร้องเรียนเกี่ยวกับ "application-identifier" = 12331232.com.bannana.apples.peach ไม่ตรงกัน ซึ่งนำฉันไปสู่การตั้งค่า DEV TEAM ที่ถูกต้องและได้ผล
Xcode ver: เวอร์ชัน 11.3.1
ฉันหวังว่านี่จะช่วยใครสักคน
หลายเป้าหมาย:
... และใช้ iCloud
การเปิดและปิด iCloud ไม่ใช่ตัวเลือกสำหรับเรา เราใช้มันในการผลิตอยู่แล้วและค่อนข้างไม่ยุ่งกับมัน ... ฉันได้รับข้อความของคำถามเดิมและรูปแบบนี้ในบางจุดเช่นกัน:
โปรไฟล์ไม่ตรงกับค่าของไฟล์การให้สิทธิ์สำหรับการให้สิทธิ์ตัวระบุแอปพลิเคชันและกลุ่มการเข้าถึงพวงกุญแจ
คำแนะนำจากคำตอบอื่น ๆ ที่นี่เราตรวจสอบให้แน่ใจว่าเป้าหมายทั้งหมดจะมี.entitlements
ไฟล์ หากเป้าหมายไม่มีเราสร้างขึ้นมาว่างเปล่าดังนี้:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
... และชี้เป้าหมายของมันCode Signing Entitlement
ในBuild Settings
การที่ว่างเปล่า.entitlements
ไฟล์
แก้ไขแล้ว!
ลบโปรไฟล์ทั้งหมดที่อยู่ใน ~/Library/MobileDevice/Provisioning Profiles/
entitlements.plist
ไฟล์ของคุณ