ด้วยการเปลี่ยนแปลงรหัสใด ๆ (แม้ว่าไฟล์จะไม่ได้อยู่ใน. pch) ให้ทำการคอมไพล์โครงการใหม่ทุกครั้ง
ด้วยการเปลี่ยนแปลงรหัสใด ๆ (แม้ว่าไฟล์จะไม่ได้อยู่ใน. pch) ให้ทำการคอมไพล์โครงการใหม่ทุกครั้ง
คำตอบ:
อัปเดต 2017/1/2
ปัญหานี้ยังไม่ได้รับการแก้ไขที่ Xcode 8.2.1 (สำหรับโครงการของฉัน)
จะอยู่รอดได้อย่างไร?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
อัปเดต 2016/12/17
ปัญหานี้ยังไม่ได้รับการแก้ไขที่ Xcode 8.2
อัพเดท 2016/12/12
Atom เพื่อโค้ดและบรรทัดคำสั่งในการสร้างและแก้ไขจุดบกพร่องคือทางเลือกของฉันในตอนนี้ หวังว่า Apple จะแก้ไขข้อผิดพลาดนี้ในไม่ช้า
อัปเดต 2016/12/04
ปัญหานี้ดูเหมือนจะแก้ไขได้ด้วย Xcode 8.2 (เบต้า 2)
แต่สำหรับฉันมันไม่ได้รับการแก้ไขฉันประสบปัญหานี้แม้ว่าฉันจะใช้ Xcode 8.2 ก็ตาม คุณสามารถทดลองใช้งานได้ (ดาวน์โหลด Xcode8.2 beta2 ที่นี่ )
สร้างระบบ• Xcode จะไม่สร้างเป้าหมายใหม่ทั้งหมดเมื่อเกิดการเปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น (28892475)
คำตอบเดิม: นี่คือวิธีแก้ปัญหา:
แท็บ "Build Setting" -> "C Language Dialect" -> เปลี่ยนเป็น "Compiler Default"
"สำเนียงภาษา C" ถูกตั้งค่าเป็น "GNU99" แทน "ค่าเริ่มต้นของคอมไพเลอร์" ก่อนหน้านี้มาตรฐานคือ GNU99 แต่ตอนนี้ไม่ใช่แล้ว ในบางจุด Xcode ไม่ได้ย้ายการตั้งค่าโปรเจ็กต์ไลบรารีอย่างถูกต้องดังนั้นจึงตั้งค่าเป็น GNU99 เมื่อฉันเปลี่ยนเป็น GNU99 มันจะหยุดการคอมไพล์โค้ดใหม่ทุกครั้ง!
ไปที่ Product -> Scheme -> Edit Scheme เลือกสร้างในคอลัมน์ด้านซ้ายและยกเลิกการเลือก " ค้นหาการอ้างอิงโดยนัย "
แต่ควรตรวจสอบแฟล็กนี้เมื่อคุณสร้างโครงการเป็นครั้งแรก ..
การแก้ไขสำหรับฉันเป็นเพียงการปิดสตอรีบอร์ดฉันเปิดไฟล์ต้นฉบับด้วยตัวแก้ไขที่ได้รับความช่วยเหลือและเปิดไฟล์สตอรีบอร์ดด้วย (ปิดสตอรีบอร์ด --- เนื่องจากฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ กับมัน) ลบการรวบรวมที่ไม่จำเป็นทั้งหมดออก
ปรับปรุง
การปรับปรุงที่ใหญ่ที่สุดเพียงครั้งเดียวที่ฉันทำได้คือการทำให้โครงการเป็นโมดูล การแยกชั้น ORM โดยเฉพาะซึ่งใช้ในเกือบทุกคลาสอื่น ๆ การย้ายโค้ดนั้นไปไว้ในเป้าหมายแยกต่างหากภายในโปรเจ็กต์ของฉันและอิมพอร์ตเป็นโมดูลทำให้ฉันสามารถปรับปรุงเวลาในการคอมไพล์ Xcode ไม่ตัดสินใจที่จะคอมไพล์ไฟล์ที่ไม่จำเป็นอีกต่อไปเมื่อฉันสร้างบิลด์
ตอนนี้ฉันใช้วิธีการคอมไพล์ไฟล์เดียวสำหรับบิวด์ดีบักที่เพิ่มขึ้นอย่างรวดเร็ว
มีคำแนะนำที่ดีอื่น ๆ ในลิงค์นี้รวมถึงการปรับโครงสร้างโค้ด https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5
OLD
ยังคงเป็นปัญหาอย่างต่อเนื่องสำหรับฉันกับ Xcode 9 เช่นเดียวกับหลาย ๆ คนฉันกำลังทำงานกับโปรเจ็กต์4 / cocoapodsขนาดใหญ่ที่มีไฟล์ต้นฉบับจำนวนมากและรวบรวมไฟล์ใหม่ทุกครั้งทุกครั้งที่ทำให้โกรธ
จนถึงตอนนี้ฉันได้รับผลลัพธ์ที่ดีที่สุดด้วยการตั้งค่าต่อไปนี้ ฉันขอแนะนำให้คุณลองใช้ดูว่ามันเหมาะกับคุณอย่างไร
เพิ่มการตั้งค่าการสร้างที่กำหนดโดยผู้ใช้ที่กำหนดเอง
หมายเหตุ: ฉันไม่มีการตั้งค่าที่ผู้ใช้กำหนดเองสำหรับการเพิ่มประสิทธิภาพโมดูลทั้งหมด
ฉันเปลี่ยนรหัสบางอย่างเกี่ยวกับส่วนหัวคำนำหน้าซึ่งดูเหมือนว่าจะแก้ไขปัญหานี้ได้แล้ว ฉันไม่รู้ว่าอันไหนทำเคล็ดลับจริงๆ แต่ฉันจะแบ่งปันทั้งหมดโดยหวังว่ามันจะช่วยคนอื่นได้ หากคุณไม่มีชุดส่วนหัวของคำนำหน้าฉันคิดว่านี่ไม่ใช่ปัญหา (หรือปัญหามีหลายแง่มุม)
@import MyModule
) (สำหรับฉันนี่และขั้นตอนที่ 1 เป็นหนึ่งเดียวกัน)หากยังไม่ได้ผลคุณสามารถลองลบการนำเข้าเพิ่มเติมบางส่วนออกจากส่วนหัวคำนำหน้าของคุณ อาจมีบางอย่างสะดุดขึ้น ...
ดูเหมือนว่าพวกเขากำลังทำงานอย่างแข็งขันตามhttps://forums.developer.apple.com/thread/62737แต่วิธีแก้ปัญหาคือการเพิ่ม
HEADERMAP_USES_VFS = YES
ภายใต้การตั้งค่าการสร้างของเป้าหมายของคุณ (Project -> Target -> Build Settings -> User Defined)
วิธีนี้ใช้ได้ผลกับฉันทุกครั้งในวันนี้หลังจากไม่มีวิธีอื่นใดที่ใช้ได้ผลอย่างสม่ำเสมอในเดือนที่ผ่านมา
แก้ไข: บางครั้งการคอมไพล์ใหม่ทุกอย่างแม้ว่าจะดูเหมือนว่าจะทำน้อยกว่ามากเมื่อกำหนดการตั้งค่านี้
ตรวจสอบรหัสทั้งหมดของคุณเกี่ยวกับ @IBDesignable
คำสั่งในโครงการสร้าง Xcode กรณีเฉพาะของฉันตลอดเวลาเพราะฉันมีมุมมองบางอย่างเกี่ยวกับสตอรีบอร์ดของฉันที่มี@IBDesignable
คุณลักษณะนี้อยู่ในนั้น สิ่งที่สองคือฉันยังเปิดสตอรีบอร์ดของฉันในหน้าต่างแยกต่างหาก (ไม่ใช่แท็บ) ซึ่งจะทำให้ Xcode ของฉันสร้างบิลด์สำหรับเครื่องจำลองทั้งหมดตลอดไป
@IBDesignable
คำสั่งค่อนข้างมาก... มีอะไรเป็นพิเศษที่เราควรมองหาหรือไม่?
Madhuri Mane เหมาะสมกับเรื่องนี้โดยสิ้นเชิง เพื่อเพิ่มความชัดเจนอีกเล็กน้อยประเด็นสำคัญที่ควรทราบ:
สิ่งนี้ใช้ได้เฉพาะในกรณีที่คุณมีการพึ่งพาไลบรารี / เฟรมเวิร์กโดยนัยที่เป้าหมายของคุณอาศัยอยู่
หาก "ค้นหาการพึ่งพาโดยนัย" ถูกปิดใช้งาน:
ผลลัพธ์: ไลบรารีจะไม่ถูกสร้างขึ้นก่อนที่จะสร้างแอปพลิเคชันเป้าหมาย แอปพลิเคชันเป้าหมายไม่สามารถสร้างได้
แก้ไข: เพื่อให้แน่ใจว่าสถานการณ์ที่สองจะไม่เกิดขึ้นคุณต้องเพิ่มเป้าหมายที่จำเป็นลงในรายการเป้าหมายและเรียงลำดับอย่างถูกต้อง
ที่มาและอ่านเพิ่มเติมในหัวข้อ: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
ตอนนี้ถ้าโปรเจ็กต์ทั้งหมดของคุณอยู่ในเป้าหมายเดียวและใช้เวลา 4 นาทีในการคอมไพล์คุณจะไม่สามารถทำอะไรได้มากนักนอกจากแยกมันออกเป็นเฟรมเวิร์กเพื่อใช้ประโยชน์จากข้างต้นหรือดูว่าการคอมไพล์ล่าช้าไปที่ใด หากคุณใช้บางอย่างเช่น PaintCode หรือมีโค้ด UIKit จำนวนมากอย่างรวดเร็วให้เปลี่ยนเป็น Objective-c มันจะรวบรวมได้เร็วกว่ามาก
ไปที่เป้าหมายของการตั้งค่าการสร้างและการตั้งค่าไปDefines Module
Yes
ทำงานให้ฉันสร้างสองสามครั้งเร็วเกินไปที่จะอ้างว่านี่เป็นวิธีแก้ปัญหาขั้นสุดท้าย แต่อย่างน้อยเราก็กำลังพยายาม
Apple เปิดตัว Xcode เวอร์ชันเบต้าใหม่เมื่อวานนี้ (14 พ.ย. )
Xcode 8.2 beta 2
และปัญหานี้ได้รับการทำเครื่องหมายว่าได้รับการแก้ไขแล้วในบันทึกประจำรุ่น
สร้างระบบ
• Xcode จะไม่สร้างเป้าหมายทั้งหมดใหม่เมื่อเกิดการเปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น (28892475)
มันทำงานให้ฉัน ความเร็วในการสร้างกลับมาตามปกติ ทุกคนที่กำลังเผชิญกับปัญหานี้ควรลองดู!
โปรดไปที่การตั้งค่าการสร้างของโครงการและเปลี่ยน "สำเนียงภาษา C"
"สำเนียงภาษา C" ถูกตั้งค่าเป็น "GNU99" แทนที่จะเป็น "ค่าเริ่มต้นของคอมไพเลอร์" เมื่อคุณอัปเดตเวอร์ชัน xcode ในบางจุด Xcode ไม่ได้ย้ายการตั้งค่าโปรเจ็กต์ไลบรารีอย่างถูกต้องดังนั้นจึงตั้งค่าเป็น GNU99 วิธีนี้จะช่วยแก้ปัญหาได้
หากคุณได้ทำการเปลี่ยนแปลงกับไฟล์ Swift เพื่อเริ่มสร้างแอปให้ไปที่แท็บสุดท้ายแล้วคลิกที่บันทึกการสร้างระหว่างขั้นตอน "ตรวจสอบการอ้างอิง" ให้หยุดการสร้างและเรียกใช้อีกครั้ง ในการรันครั้งที่สองควรสร้างไฟล์ที่คุณแก้ไขเท่านั้น หากทำอย่างถูกต้องฉันพบว่ามันใช้งานได้ทุกครั้ง ไม่จำเป็นต้องเปลี่ยนแปลงการตั้งค่าโครงการใด ๆ
สิ่งนี้ดูเหมือนจะเป็นจุดบกพร่องใน Xcode
หากคุณเห็นว่าแอปกำลังสร้างแบบเต็มให้หยุดการสร้างและลองใช้เคล็ดลับนี้อีกครั้ง
หากคุณไม่ได้ทำการเปลี่ยนแปลงโค้ดให้ใช้ CMD + CTRL + R เพื่อรันโดยไม่ต้องสร้างแอพที่แนบดีบักเกอร์ จะไม่สร้างแอพ แต่สามารถช่วยประหยัดเวลาที่ไม่จำเป็นได้
ปัญหาจากฝั่งของฉันได้รับการแก้ไขโดยใช้การยกเลิกการเลือกโซลูชัน "ค้นหาการพึ่งพาโดยนัย"
แต่อย่าลืมว่าคุณกำลังใช้ cocoapods ให้ใช้การตั้งค่านี้กับโครงการพ็อดของคุณด้วยโดยเลือกจาก
ผลิตภัณฑ์ -> โครงการ -> พ็อด - "yourProjectName"
ยังใช้ใน:
ผลิตภัณฑ์ -> Scheme -> "yourProjectName"
มันช่วยฉันได้ดังนั้นฉันหวังว่าคำใบ้นี้จะช่วยคนอื่นได้
ขอบคุณ
ลองทำดังนี้ 1. ไปที่ Project 2. คลิก Build Settings 3. ตรวจสอบว่า OptimizationLevel ถูกตั้งค่าเป็น None สำหรับการดีบัก 4. คลิกเพิ่มการตั้งค่าที่ผู้ใช้กำหนด 5. ตั้งค่า SWIFT_WHOLE_MODULE_OPTIMIZATION เป็น YES
เพื่อเพิ่มเวลาในการรวบรวม xcode สามารถใช้ IRAMDISK (ดิสก์หน่วยความจำเสมือน) วิธีที่มีประโยชน์และมีประสิทธิภาพในการลดเวลาในการรวบรวม
ยังสามารถใช้เพื่อเร่งความเร็วแอปพลิเคชันที่ใช้บ่อย
อ้างอิงลิงค์ต่อไปนี้เพื่อดาวน์โหลดและใช้งาน: http://iramdisk.findmysoft.com/mac/