Dengan perubahan kode apa pun (meskipun file tidak dalam .pch), selesaikan proyek yang dikompilasi ulang setiap waktu.
Dengan perubahan kode apa pun (meskipun file tidak dalam .pch), selesaikan proyek yang dikompilasi ulang setiap waktu.
Jawaban:
Perbarui 2017/1/2
Masalah ini belum diselesaikan di Xcode 8.2.1 (untuk proyek saya)
Bagaimana cara bertahan?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
Pembaruan 2016/12/17
Masalah ini belum diselesaikan di Xcode 8.2.
Pembaruan 2016/12/12
Atom ke kode dan baris perintah untuk membangun dan debug adalah pilihan saya sekarang. Semoga Apple akan segera memperbaiki bug yang sah ini.
Pembaruan 2016/12/04
Masalah ini tampaknya diselesaikan dengan Xcode 8.2 (beta 2) .
Tetapi bagi saya ini tidak dapat diselesaikan, saya menghadapi masalah ini bahkan ketika saya menggunakan Xcode 8.2. Anda dapat mencobanya (unduh Xcode8.2 beta2 di sini )
Build System • Xcode tidak akan membangun kembali seluruh target ketika hanya perubahan kecil yang terjadi. (28892475)
Jawaban lama: Ini adalah solusi:
"Bangun Pengaturan" tab -> "C Bahasa Dialek" -> Ubah ke "Compiler Default".
"C Language Dialect" disetel ke "GNU99" bukan "Compiler Default". Sebelumnya standar adalah GNU99 tetapi sekarang tidak. Pada titik tertentu Xcode tidak memigrasi pengaturan proyek perpustakaan dengan benar dan itu diatur ke GNU99. Setelah saya mengubahnya ke GNU99, ia berhenti mengkompilasi ulang semua kode saya setiap waktu!
Pergi ke Produk -> Skema -> Edit Skema. Pilih Bangun di kolom sisi kiri dan hapus centang " Temukan dependensi tersirat "
Tetapi bendera ini harus tetap diperiksa ketika Anda membangun proyek untuk pertama kalinya ..
Perbaikan untuk saya adalah hanya menutup storyboard, saya memiliki file sumber dibuka dengan editor yang dibantu dan file storyboard dibuka juga (menutup storyboard --- karena saya tidak membuat perubahan padanya) menghapus semua kompilasi yang tidak perlu
DIPERBARUI
Satu-satunya peningkatan terbesar yang dapat saya lakukan adalah memodulasi proyek saya. Secara khusus memodulasi lapisan ORM yang digunakan di hampir setiap kelas lainnya. Dengan memindahkan kode itu ke target terpisah dalam proyek saya dan mengimpornya sebagai modul, saya dapat meningkatkan waktu kompilasi. Xcode tidak lagi memutuskan untuk mengkompilasi ulang file yang tidak perlu ketika saya membangun.
Sekarang saya menggunakan metode kompilasi File Tunggal untuk membangun debug inkremental cepat.
Ada beberapa saran bagus lainnya di tautan ini termasuk refactoring kode, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5
TUA
Masih menjadi masalah konstan bagi saya dengan Xcode 9. Seperti banyak dari Anda, saya sedang mengerjakan proyek swiftap 4 / cocoapods besar dengan banyak file sumber dan mengkompilasi ulang setiap file setiap kali menyebalkan.
Sejauh ini saya mendapatkan hasil terbaik dengan pengaturan berikut. Saya sarankan Anda mencobanya dan melihat cara kerjanya untuk Anda.
Menambahkan pengaturan bangunan Buatan Pengguna yang ditetapkan,
Catatan: Saya tidak memiliki pengaturan kustom yang ditentukan pengguna untuk optimasi seluruh modul.
Saya mengubah beberapa hal dengan kode saya mengenai header awalan yang tampaknya telah memperbaiki masalah ini. Saya tidak tahu yang mana yang benar-benar berhasil, tetapi saya akan membagikan semuanya dengan harapan dapat membantu orang lain di luar sana. Jika Anda tidak memiliki set header awalan, maka saya kira ini bukan masalahnya (atau masalahnya multifaset).
@import MyModule
). (Bagi saya, ini dan langkah 1 adalah satu dan sama.)Jika itu masih tidak berhasil, Anda dapat mencoba menghapus beberapa impor lagi dari header awalan Anda. Mungkin ada sesuatu yang tersandung ...
Sepertinya mereka secara aktif mengerjakannya sesuai dengan https://forums.developer.apple.com/thread/62737 tetapi solusinya adalah menambahkan
HEADERMAP_USES_VFS = YES
di bawah pengaturan build target Anda (Proyek -> Target -> Pengaturan Build -> Ditetapkan Pengguna).
Solusi ini bekerja setiap saat untuk saya hari ini, setelah tidak ada solusi lain yang bekerja secara konsisten selama sebulan terakhir.
EDIT: Kadang-kadang masih mengkompilasi ulang semuanya, meskipun tampaknya melakukannya lebih jarang dengan pengaturan ini ditetapkan.
Periksa semua kode Anda tentang @IBDesignable
arahan dalam kasus khusus saya, proyek pembangunan Xcode sepanjang waktu karena saya memiliki beberapa pandangan di storyboard saya yang berisi @IBDesignable
atribut ini di dalamnya. Hal kedua adalah saya juga membuka storyboard di jendela terpisah (bukan tab) yang mendorong Xcode saya membuat build untuk semua simulator selamanya.
@IBDesignable
arahan ... adakah yang khususnya harus kita cari?
Madhuri Mane benar tentang ini. Untuk menambahkan sedikit kejelasan, beberapa hal penting yang perlu diperhatikan:
Ini HANYA berlaku jika Anda memiliki ketergantungan tersirat pada perpustakaan / kerangka kerja yang diandalkan oleh target Anda.
Jika "Temukan Ketergantungan Tersirat" dinonaktifkan:
Hasil: Perpustakaan tidak akan dibangun sebelum membangun target aplikasi. Target aplikasi gagal dibangun.
Solusi: Untuk memastikan bahwa skenario kedua tidak terjadi, Anda harus menambahkan target yang diperlukan ke dalam daftar target dan memesannya dengan benar.
Sumber dan bacaan lebih lanjut tentang topik ini: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
Sekarang jika seluruh proyek Anda ditempatkan dalam satu target dan yang membutuhkan 4 menit untuk mengkompilasi tidak ada banyak yang dapat Anda lakukan kecuali memecahnya menjadi kerangka kerja untuk mengambil keuntungan dari yang di atas atau mencari tahu di mana kompilasi tertinggal. Jika Anda menggunakan sesuatu seperti PaintCode atau memiliki potongan besar kode UIKit dengan cepat mengubahnya menjadi Objective-c itu mengkompilasi jauh lebih cepat
Apple merilis versi beta baru Xcode kemarin (14 Nov)
Xcode 8.2 beta 2
Dan masalah ini telah ditandai sebagai terselesaikan dalam catatan rilis.
Membangun Sistem
• Xcode tidak akan membangun kembali seluruh target ketika hanya perubahan kecil yang terjadi. (28892475)
Ini bekerja untuk saya. Kecepatan build kembali seperti biasa. Setiap orang yang menghadapi masalah ini, harus mencobanya!
Silakan pergi ke pengaturan build proyek dan ubah "Dialek Bahasa C".
"C Language Dialect" diatur ke "GNU99" dan bukan "Compiler Default" ketika Anda memperbarui versi xcode. Pada titik tertentu Xcode tidak memigrasi pengaturan proyek perpustakaan dengan benar dan itu diatur ke GNU99. Ini akan menyelesaikan masalah
Jika Anda telah membuat perubahan pada file Swift mulai membangun aplikasi, buka tab terakhir dan klik pada log build, selama tahap "Periksa dependensi" hentikan build dan jalankan lagi. Pada jalankan kedua itu seharusnya hanya membangun file yang Anda modifikasi. Jika dilakukan dengan benar, saya menemukan itu berfungsi setiap saat. Tidak perlu melakukan perubahan pengaturan proyek.
Tampaknya ini adalah bug di Xcode.
Jika Anda melihat aplikasi melakukan build penuh maka hentikan build dan coba trik ini lagi.
Jika Anda tidak membuat perubahan pada kode gunakan CMD + CTRL + R untuk menjalankan tanpa membangun aplikasi yang melampirkan debugger. Tidak akan membangun aplikasi tetapi dapat membantu menghemat waktu yang tidak perlu.
Masalah dari sisi saya diperbaiki dengan menerapkan hapus centang pada solusi "Temukan Ketergantungan Implisit".
TAPI ingat jika Anda menggunakan cocoapods, untuk menerapkan pengaturan ini juga ke proyek pod Anda dengan memilihnya
Produk -> Skema -> Pods- "yourProjectName"
juga berlaku di:
Produk -> Skema -> "NamaProyek Anda"
Ini membantu saya, jadi saya harap petunjuk ini membantu orang lain.
Terima kasih
Coba: 1. Navigasikan ke Proyek 2. Klik Bangun Pengaturan 3. Periksa apakah OptimizationLevel diatur ke None untuk debugging. 4. Klik Tambah Pengaturan Buatan Pengguna 5. Setel SWIFT_WHOLE_MODULE_OPTIMIZATION ke YES.
untuk memupuk waktu kompilasi xcode, dapat menggunakan IRAMDISK (disk memori virtual). Berarti sangat berguna dan efektif untuk mengurangi waktu kompilasi.
Juga dapat digunakan untuk mempercepat aplikasi yang sering digunakan.
lihat tautan berikut untuk mengunduh dan menggunakan: http://iramdisk.findmysoft.com/mac/