ฉันจะลบตัวแบบข้อมูลเก่าใน Xcode ได้อย่างไร ตัวเลือกถูกปิดใช้งานบนเมนู (โมเดลที่ฉันต้องการลบยังไม่ได้เผยแพร่สู่สาธารณะ - เป็นโมเดลการพัฒนาชั่วคราว)
ฉันจะลบตัวแบบข้อมูลเก่าใน Xcode ได้อย่างไร ตัวเลือกถูกปิดใช้งานบนเมนู (โมเดลที่ฉันต้องการลบยังไม่ได้เผยแพร่สู่สาธารณะ - เป็นโมเดลการพัฒนาชั่วคราว)
คำตอบ:
มันเป็นแฮ็ค แต่มันใช้ได้กับฉัน:
สิ่งนี้ทำให้ไม่จำเป็นต้องแก้ไขไฟล์ข้อมูลเมตาของโครงการด้วยตนเอง
ฉันเพิ่งพบว่าจำเป็นต้องทำเช่นนี้ ฉันสร้างรุ่นรุ่นใหม่จากนั้นฉันก็รู้ว่าฉันไม่ต้องการมันเลย ฉันประหลาดใจที่พบว่าไม่มีวิธีการลบมัน (ที่ฉันหาได้) จาก Xcode ยังคงเพื่อลบมันฉันทำต่อไปนี้:
ครั้งแรกฉันทำให้แน่ใจว่าไม่ใช่รุ่นปัจจุบันของฉัน จากนั้นฉันไปที่ Finder และพบไฟล์ * .xcdatamodeld ของฉัน คลิกขวาและแสดงเนื้อหาแพ็คเกจที่ ในนั้นคุณจะพบไฟล์รุ่นจริงและสามารถลบได้
สิ่งนี้ยังคงไม่ลบออกจาก Xcode และมันจะแสดงเป็นสีแดงในไฟล์และกลุ่ม หากต้องการหยุดสิ่งนี้ให้กลับไปที่ Finder และแสดงเนื้อหาแพ็คเกจในไฟล์ * .xcodeproj หลักของคุณ (คุณอาจต้องการให้แน่ใจว่าคุณมีการสำรองข้อมูลนี้ก่อน) ในนั้นมีการเปิดและแก้ไข project.pbxproj ทำการค้นหาในชื่อรุ่นของคุณในกรณีของฉัน "ช่วงเวลา 8" สำหรับฉันมันปรากฏในสองบรรทัดแยกกัน ฉันลบบรรทัดเหล่านี้และตอนนี้มันถูกลบออกอย่างสมบูรณ์จาก Xcode
สิ่งนี้ใช้ได้กับฉันใน XCode 10.3 โดยไม่มีปัญหาการสั่งซื้อเมื่อลบโมเดลทั้งหมดและเพิ่มอีกครั้ง:
ลบบรรทัดทั้งหมดที่มีชื่อรุ่นที่คุณลบออก (ตัวอย่าง: "ABC 17.xcdatamodel") คุณจะพบสองบรรทัดคล้ายกับที่แสดงต่อไปนี้:
9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * / = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = " ABC 17.xcdatamodel "; sourceTree = ""; };
9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /,
หมายเหตุหากคุณพบบรรทัดที่สามมันจะเป็นดังนี้:
currentVersion = 9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /;
นั่นหมายความว่าเป็นรุ่นที่เลือกไว้ในปัจจุบัน อย่าลบบรรทัดนี้ เพียงแค่เปลี่ยนข้อความเป็นรุ่นอื่น
เปิด XCode อีกครั้ง
คำตอบของฉันไม่ใช่ปัญหาเฉพาะเลย แต่ก็รวดเร็วและใช้งานได้ สำหรับผู้ที่ใช้คอมไพล์ คุณสามารถละทิ้งการเปลี่ยนแปลงที่ไม่มีการกำหนดสถานะได้
git stash save --keep-index
จากนั้นคุณสามารถวางที่ซ่อนไว้ด้วยgit stash drop
คำสั่งหากคุณต้องการ