Setelah memperbarui ke Xcode 5.1, saya tidak lagi dapat membangun proyek saya untuk simulator 64-bit, menerima kesalahan ini:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
Ini adalah pengaturan build target saya:
Saya mencoba mengubah "Membangun Arsitektur Aktif" menjadi Tidak, serta menambahkan "i386" ke "Arsitektur Valid", sayangnya tidak berhasil. Terima kasih atas sarannya!
Jawaban:
Saya memiliki pesan kesalahan yang sama setelah memutakhirkan ke XCode 5.1. Apakah Anda menggunakan CocoaPods? Jika demikian, ini akan memperbaiki masalah:
sumber
Yang perlu Anda lakukan hanyalah mengatur
ONLY_ACTIVE_ARCH
untukNO
(setidaknya bekerja untuk saya). Di bawah ini adalah tangkapan layar untuk itu:EDIT:
Sejauh yang saya tahu ( tolong tunjukkan jika ada sesuatu yang salah, terima kasih ), jika Anda menyetel
ONLY_ACTIVE_ARCH
keYES
, itu berarti Xcode hanya akan membangun untuk arsitektur aktif (yang merujuk ke perangkat yang aktif di Xcode saat ini). Tampaknya pengaturan default Xcode diatur ke DebugYES
, sehingga tidak akan membuat biner untuk arsitektur lain ketika Anda hanya ingin membangun untuk perangkat khusus yang terhubung ke Mac Anda.Alasan gagal membangun mungkin karena proyek tidak mendukung arsitektur perangkat yang Anda hubungkan. Jadi solusi terbaik adalah menambahkan arsitektur yang tepat untuk perangkat Anda. Di bawah ini adalah daftar untuk arsitektur & perangkat yang mendukung:
iPhone 6
,iPhone 5s
,iPad Air
,Retina iPad Mini
iPhone 5
,iPhone 5c
,iPad 4
iPhone 3GS
,iPhone 4
,iPhone 4S
,iPod 3G/4G/5G
,iPad
,iPad 2
,iPad 3
,iPad Mini
iPhone
,iPhone 3G
,iPod 1G/2G
Jadi mengapa "atur
ONLY_ACTIVE_ARCH
keNO
" berfungsi? Karena perangkat masih dapat menjalankan biner yang dibangun untuk semua arsitektur yang Anda tambahkan (lulus build), tetapi akan kehilangan beberapa kinerja. Ini hanya solusi cepat, tetapi bukan yang terbaik.Catatan : Semakin banyak arsitektur yang Anda tambahkan, semakin besar biner yang akan dihasilkan. Jadi ada baiknya memilih arsitektur yang tepat untuk proyek Anda. ;)
sumber
Menambahkan
arm64
ke targetvalid architectures
. Sepertinya itu menambahkanx86-64
arsitektur ke simulator arsitektur yang valid juga.sumber
Jika Anda menggunakan CocoaPods, masalah yang paling mungkin adalah karena Pengaturan Pods proyek Anda untuk Membangun Arsitektur Aktif Saja diatur ke Ya untuk Debug.
Solusinya sederhana. Ubah ke Tidak .
Demikian pula, ubah ke Tidak untuk proyek aplikasi Anda.
sumber
Saya memiliki masalah serupa. Selesaikan dengan mengubah "Arsitektur" menjadi " $ (ARCHS_STANDARD_32_BIT) " di Bangun Pengaturan untuk Proyek.
Sekarang, Anda harus memilih Arsitektur standar (armv7, arm64) - $ (ARCHS_STANDARD) karena apple merekomendasikan aplikasi untuk dibangun di arsitektur 64-bit. Klik: Dokumen Apple
sumber
$(ARCHS_STANDARD_INCLUDING_64_BIT)
?$(ARCHS_STANDARD_32_BIT)
atau$(ARCHS_STANDARD_INCLUDING_64_BIT)
?Tambahkan: Arsitektur: $ (ARCHS_STANDARD_INCLUDING_64_BIT)
Arsitektur yang valid: arm64 armv7 armv7s
sumber
Untuk jaga-jaga, bagi siapa pun yang masih menghadapi masalah meskipun mengikuti hal di atas, periksa apakah simulator yang Anda jalankan juga merupakan yang didukung. Saya telah menentukan milik saya untuk arm7 dan arm7s tetapi mencoba menjalankan aplikasi pada simulator 64 bit.
sumber
Untuk menghindari "pod install" reset only_active_arch untuk debug setiap kali dijalankan, Anda dapat menambahkan yang berikut ke file pod Anda
sumber
Cukup tambahkan arm64 dalam arsitektur yang valid. Saya harap ini akan bekerja untuk Anda.
sumber
Masalah saya adalah bahwa proyek Pods menargetkan OS X, meskipun Podfile saya miliki
platform :ios
. Saya menggunakan cocoapods 0.35.0.rc2.Untuk memperbaikinya, pilih proyek Pods di navigator proyek, dan periksa apakah simpul Pods PROJECT (ingatlah Anda, bukan target Pods) yang menargetkan iOS. Artinya, pengaturan arsitektur bangunan harus:
$(ARCHS_STANDARD)
iOS 8.1
iOS
$(ARCHS_STANDARD)
Saya juga ingin membangun semua arsitektur, jadi saya menambahkan yang berikut ke Podfile:
sumber
Saya harus menambahkan yang berikut
i386
danx86_64
keValid Architectures
. Saya menjalankan Xcode 7.2 dan menargetkan iOS 8+. Saya sudah punyaarmv7
,armv7s
danarm64
di sana dan itu bekerja di Xcode 6.4.sumber
Saya menghadapi masalah yang sama ketika menjalankan aplikasi saya di iPad menggunakan xcode 5.1. Itu diselesaikan dengan menghapus armv7s dari 'arsitektur yang valid' dan menetapkan nilai 'bangun arsitektur yang aktif' menjadi Tidak. Kedua bidang ini dapat ditemukan di arsitektur app-> target-> build setting-> Anda.
sumber
Saya tiba di pertanyaan ini karena masalah dengan membangun baris perintah untuk simulator di Xcode 7.2. Jika ada orang lain yang datang ke sini dengan masalah yang sama, saya akan membagikan solusi yang saya temukan:
Rupanya ada bug di Xcode 7.2 yang menyebabkan
xcodebuild
gagal ketika mencoba membangun untuk simulator. Solusinya adalah dengan menentukan opsi "-destinasi", misalnya:Memperbarui
Perintah contoh di atas akan membangun biner termasuk grafik untuk iPhone 6 saja. Jika biner dijalankan pada simulator lain, grafik iPhone 6 diskalakan ke platform. Sebuah solusi yang lebih baik yang berisi semua grafis untuk semua platform adalah untuk menentukan parameter
PLATFORM_NAME=iphonesimulator
, misalnya:sumber
Coba hapus semua arsitektur sebelumnya (mis. Hapus pengaturan ARCHS_STANDARD) secara bersamaan saat Anda menambahkan i386 ke Arsitektur. Ini harus mengubah arsitektur aktif ke i386. Saya mengalami masalah serupa ketika saya mencoba membangun untuk armv7 secara default, tetapi terus mencoba membangun untuk arm64. Saya mengubah ARCHS_STANDARD menjadi ARCHS_STANDARD_32_BIT, dan ini mengubah arsitektur aktif yang dipilih.
sumber
Dalam acrhiecture - terkadang untuk mendukung 6.0 dan 7.0, kami mengecualikan arm64
Dalam arsitektur -> acrchitecture - pilih standar arsitektur arm64 armv7 armv7s. Tepat di bawah dalam Arsitektur valid membuat arm64 pengguna armv7 disertakan. Ini berhasil untuk saya.
sumber
Saya memecahkan masalah ini menggunakan jawaban @ Kjuly dan baris tertentu:
"Alasan gagal membangun mungkin karena proyek tidak mendukung arsitektur perangkat yang Anda sambungkan."
Dengan Xcode dimuat secara otomatis mengatur aplikasi iPad saya ke iPad Air
Ini menyebabkan kesalahan analisis ketergantungan.
Mengubah jenis perangkat segera menyelesaikan masalah:
Saya tidak tahu mengapa ini bekerja tetapi ini adalah jawaban yang sangat cepat yang menyelamatkan saya banyak bermain-main di latar belakang dan langsung membuat aplikasi bekerja untuk menguji. Saya tidak akan pernah berpikir bahwa ini bisa menjadi suatu hal dan sesuatu yang sangat sederhana akan memperbaikinya tetapi dalam kasus ini memang demikian.
sumber
Saya menemukan bahwa perlu memasukkan nama arsitektur dengan tangan:
Saya tidak tahu mengapa ini perlu, yaitu mengapa nilai-nilai ini tidak diwarisi dari Xcode itu sendiri. Tapi begitu saya melakukan ini, masalahnya hilang.
sumber
Di Arsitektur yang valid: Pilih setiap entri (lepaskan, debug) dan bangun dan tekan backspace. Itu harus bekerja
sumber