Với bất kỳ thay đổi nào về mã (mặc dù tệp không ở .pch), hãy hoàn thành biên dịch lại dự án mỗi lần.
Với bất kỳ thay đổi nào về mã (mặc dù tệp không ở .pch), hãy hoàn thành biên dịch lại dự án mỗi lần.
Câu trả lời:
Cập nhật 2017/1/2
Vấn đề này chưa được giải quyết tại Xcode 8.2.1 (đối với dự án của tôi)
Làm thế nào để sống sót?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
Cập nhật 2016/12/17
Vấn đề này chưa được giải quyết tại Xcode 8.2.
Cập nhật 2016/12/12
Nguyên tử mã và dòng lệnh để xây dựng và gỡ lỗi là lựa chọn của tôi bây giờ. Hy vọng Apple sẽ sớm sửa lỗi hợp pháp này.
Cập nhật 2016/12/04
Vấn đề này dường như được giải quyết với Xcode 8.2 (beta 2) .
Nhưng đối với tôi nó không được giải quyết, tôi phải đối mặt với vấn đề này ngay cả khi tôi sử dụng Xcode 8.2. Bạn có thể dùng thử (tải xuống Xcode8.2 beta2 tại đây )
Xây dựng hệ thống • Xcode sẽ không xây dựng lại toàn bộ mục tiêu khi chỉ xảy ra những thay đổi nhỏ. (28892485)
Câu trả lời cũ: Đây là một công việc xung quanh:
Tab "Xây dựng cài đặt" -> "Phương ngữ ngôn ngữ C" -> Thay đổi thành "Mặc định trình biên dịch".
"Phương ngữ ngôn ngữ C" được đặt thành "GNU99" thay vì "Mặc định trình biên dịch". Trước đây tiêu chuẩn là GNU99 nhưng bây giờ thì không. Tại một số điểm, Xcode không di chuyển chính xác các cài đặt dự án thư viện và do đó, nó được đặt thành GNU99. Khi tôi đổi nó thành GNU99, nó sẽ ngừng biên dịch lại tất cả mã của tôi mỗi lần!
Chuyển đến Sản phẩm -> Lược đồ -> Chỉnh sửa lược đồ. Chọn Xây dựng trong cột bên trái và bỏ chọn " Tìm phụ thuộc ngầm "
Nhưng cờ này vẫn được kiểm tra khi bạn xây dựng dự án lần đầu tiên ..
Khắc phục cho tôi chỉ là đóng bảng phân cảnh, tôi đã mở tệp nguồn với trình soạn thảo được hỗ trợ và tệp bảng phân cảnh cũng được mở (đóng bảng phân cảnh --- vì tôi không thực hiện bất kỳ thay đổi nào đối với nó) đã xóa tất cả các biên dịch không cần thiết
CẬP NHẬT
Cải tiến lớn nhất tôi có thể thực hiện là mô đun hóa dự án của mình. Cụ thể mô đun hóa lớp ORM được sử dụng trong hầu hết các lớp khác. Bằng cách di chuyển mã đó vào một mục tiêu riêng trong dự án của tôi và nhập nó dưới dạng một mô-đun, tôi có thể cải thiện đáng kể thời gian biên dịch. Xcode không còn quyết định biên dịch lại các tệp không cần thiết khi tôi xây dựng.
Bây giờ tôi sử dụng phương pháp biên dịch tệp đơn để xây dựng gỡ lỗi tăng nhanh.
Có một số đề xuất tốt khác trong liên kết này bao gồm tái cấu trúc mã, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5
CŨ
Vẫn là một vấn đề thường xuyên đối với tôi với Xcode 9. Giống như nhiều bạn đang làm việc trong một dự án 4 / cocoapods swift lớn với nhiều tệp nguồn và biên dịch lại mỗi tệp mỗi lần gây phẫn nộ.
Cho đến nay tôi đang nhận được kết quả tốt nhất với các cài đặt sau. Tôi đề nghị bạn hãy dùng thử và xem nó hoạt động như thế nào với bạn.
Đã thêm cài đặt bản dựng do người dùng xác định tùy chỉnh,
Lưu ý: Tôi không có cài đặt do người dùng xác định tùy chỉnh để tối ưu hóa toàn bộ mô-đun.
Tôi đã thay đổi một vài điều với mã của tôi về tiêu đề tiền tố dường như đã khắc phục vấn đề này. Tôi không biết ai thực sự đã lừa, nhưng tôi sẽ chia sẻ tất cả với hy vọng rằng nó sẽ giúp được người khác ngoài kia. Nếu bạn không có bộ tiêu đề tiền tố, thì tôi đoán đây không phải là vấn đề (hoặc vấn đề là nhiều mặt).
@import MyModule
). (Đối với tôi, bước này và bước 1 là một và giống nhau.)Nếu điều đó vẫn không hoạt động, bạn có thể thử xóa thêm một số nhập từ tiêu đề tiền tố của bạn. Có thể có thứ gì đó vấp ngã ...
Có vẻ như họ đang tích cực làm việc với nó theo https://forums.developer.apple.com/thread/62737 nhưng một cách giải quyết là thêm
HEADERMAP_USES_VFS = YES
trong cài đặt bản dựng của mục tiêu của bạn (Dự án -> Mục tiêu -> Cài đặt bản dựng -> Xác định người dùng).
Giải pháp này hoạt động mọi lúc đối với tôi hôm nay, sau khi không có giải pháp nào khác hoạt động ổn định trong tháng qua.
EDIT: Đôi khi vẫn biên dịch lại mọi thứ, mặc dù có vẻ như nó được thực hiện ít thường xuyên hơn với cài đặt này được xác định.
Kiểm tra tất cả các mã của bạn trên các @IBDesignable
chỉ thị trong trường hợp cụ thể của tôi về dự án xây dựng Xcode vì tôi có một số lượt xem trên bảng phân cảnh có chứa các @IBDesignable
thuộc tính này trong đó. Điều thứ hai là tôi cũng mở bảng phân cảnh của mình trong cửa sổ riêng biệt (không phải tab), đó là đẩy Xcode của tôi tạo các bản dựng cho tất cả các trình giả lập mãi mãi.
@IBDesignable
chỉ thị ... có điều gì đặc biệt mà chúng tôi nên tìm kiếm không?
Madhuri Mane hoàn toàn đúng về điều này. Để thêm một chút rõ ràng hơn, một số điểm quan trọng cần lưu ý:
Điều này CHỈ áp dụng nếu bạn có các phụ thuộc ngầm định vào các thư viện / khung mà mục tiêu của bạn dựa vào.
Nếu "Tìm phụ thuộc ngầm định" bị tắt:
Kết quả: Thư viện sẽ không được xây dựng trước khi xây dựng mục tiêu ứng dụng. Mục tiêu ứng dụng không xây dựng được.
Khắc phục: Để đảm bảo rằng kịch bản thứ hai không xảy ra, bạn phải thêm các mục tiêu cần thiết vào danh sách mục tiêu và sắp xếp chúng một cách chính xác.
Nguồn và đọc thêm về chủ đề: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
Bây giờ nếu toàn bộ dự án của bạn được đặt trong một mục tiêu và mất 4 phút để biên dịch, bạn sẽ không thể làm gì nhiều về điều này ngoại trừ chia nó thành các khung để tận dụng lợi thế của phần trên hoặc tìm ra nơi biên dịch bị trễ. Nếu bạn đang sử dụng một cái gì đó như PaintCode hoặc có nhiều đoạn mã UIKit nhanh chóng, hãy đổi nó thành Objective-c, nó biên dịch nhanh hơn nhiều
Apple đã phát hành phiên bản beta mới của Xcode vào ngày hôm qua (14/11)
Xcode 8.2 beta 2
Và vấn đề này đã được đánh dấu là đã được giải quyết trong ghi chú phát hành.
Xây dựng hệ thống
• Xcode sẽ không xây dựng lại toàn bộ mục tiêu khi chỉ xảy ra những thay đổi nhỏ. (28892485)
Đó là làm việc cho tôi. Tốc độ xây dựng đã trở lại như bình thường. Mọi người đang đối mặt với vấn đề này, nên thử xem!
Vui lòng vào cài đặt bản dựng của dự án và thay đổi "Phương ngữ ngôn ngữ C".
"Phương ngữ ngôn ngữ C" được đặt thành "GNU99" thay vì "Mặc định trình biên dịch" khi bạn cập nhật phiên bản xcode. Tại một số điểm, Xcode không di chuyển chính xác các cài đặt dự án thư viện và do đó, nó được đặt thành GNU99. Điều này sẽ giải quyết vấn đề
Nếu bạn đã thực hiện các thay đổi đối với tệp Swift bắt đầu xây dựng ứng dụng, hãy chuyển đến tab cuối cùng và nhấp vào nhật ký xây dựng, trong giai đoạn "Kiểm tra phụ thuộc", dừng quá trình xây dựng và chạy lại. Trong lần chạy thứ hai, nó chỉ nên xây dựng các tệp bạn đã sửa đổi. Nếu được thực hiện chính xác, tôi đã tìm thấy nó hoạt động mọi lúc. Không cần phải thực hiện bất kỳ thay đổi thiết lập dự án.
Điều này dường như là một lỗi trong Xcode.
Nếu bạn thấy ứng dụng đang thực hiện quá trình xây dựng đầy đủ thì hãy dừng quá trình xây dựng và thử lại thủ thuật này.
Nếu bạn không thực hiện thay đổi mã nào, hãy sử dụng CMD + CTRL + R để chạy mà không cần xây dựng ứng dụng có trình gỡ lỗi. Sẽ không xây dựng ứng dụng nhưng có thể giúp tiết kiệm thời gian không cần thiết.
Vấn đề từ phía tôi đã được khắc phục bằng cách áp dụng bỏ chọn cho giải pháp "Tìm phụ thuộc ngầm".
NHƯNG hãy nhớ nếu bạn đang sử dụng cocoapods, để áp dụng cài đặt này cho dự án pod của bạn bằng cách chọn nó từ
Sản phẩm -> Lược đồ -> Pods - "yourProjectName"
cũng áp dụng trong:
Sản phẩm -> Lược đồ -> "yourProjectName"
Nó giúp tôi, vì vậy tôi hy vọng gợi ý này sẽ giúp người khác.
Cảm ơn
Cố gắng: 1. Điều hướng đến Dự án 2. Nhấp vào Cài đặt bản dựng 3. Kiểm tra xem Tối ưu hóa được đặt thành Không để gỡ lỗi. 4. Nhấp vào Thêm cài đặt do người dùng xác định 5. Đặt SWIFT_WHOLE_MODULE_OPTIMIZATION thành CÓ.
để giảm bớt thời gian biên dịch của xcode, có thể sử dụng IRAMDISK (Đĩa bộ nhớ ảo). Rất hữu ích và hiệu quả có nghĩa là để giảm thời gian biên dịch.
Cũng có thể sử dụng để tăng tốc ứng dụng thường xuyên sử dụng.
tham khảo liên kết sau để tải xuống và sử dụng: http://iramdisk.findmysoft.com/mac/