Pengiriman aplikasi iOS: dukungan 64-bit tidak ada

91

Saya mengirim aplikasi kemarin untuk ditinjau, tanpa masalah. Saya kemudian menyadari bahwa saya memiliki sedikit perbaikan yang harus dilakukan (mengubah tingkat zoom maksimal peta dari 19 menjadi 18, tidak ada yang lain), jadi saya menghapus biner dari iTunes Connect, dan mencoba mengirim ulang.

Sekarang saya mendapat peringatan ini:

warning_xcode

Saya tidak mengerti mengapa, karena arsitektur saya adalah:

  • arsitektur: armv7
  • arsitektur yang valid: armv6, armv7, armv7s, arm64

Aplikasi berjalan dengan baik di simulator. Jika saya mencoba menggunakan arsitektur standar (armv7, arm64) seperti yang direkomendasikan dalam peringatan, aplikasi tidak akan dibangun dan saya mendapatkan:

  • Simbol tak terdefinisi untuk arsitektur x86_64
  • ld: simbol tidak ditemukan untuk arsitektur x86_64

Saya menggunakan lib route-me, dan saya menetapkan pengaturan arsitektur yang sama.

Tim Autin
sumber
Kami juga memiliki masalah ini. :(
Nazik
Juga sejak kemarin saja?
Tim Autin
1) coba bersihkan DerivedData untuk Xcode setelah Anda mengubahnya; 2) mungkin Anda menggunakan api eksternal yang lebih lama, sdk, kerangka kerja, dll
TonyMkenu
@Tim Apakah Anda berhasil memperbaiki ini? bisakah Anda memposting solusi untuk itu?
pengguna2056563
Hai, maaf saya tidak menemukan solusinya, dan saya tidak lagi mengerjakan proyek ini. Untuk saat ini hanya peringatan, jadi saya sudah bisa mengirimkan aplikasinya.
Tim Autin

Jawaban:

106

Gunakan " Standard architectures" seperti ini:

  • Arsitektur: "Arsitektur standar" arm7, arm64
  • Arsitektur yang Valid: " arm64 ", armv7 ...
  • Bangun Hanya Arsitektur Aktif - TIDAK (khususnya ... jika perangkat Anda yang terhubung tidak kompatibel dengan arm64)

seperti ini:

masukkan deskripsi gambar di sini

  • Selain itu, mencabut iphones dan ipads dari mac telah diketahui membantu, terutama jika versi 32-bit.
TonyMkenu
sumber
2
Terima kasih atas jawaban Anda, tetapi seperti yang dinyatakan dalam pertanyaan saya, saya sudah mencobanya, dan proyek tidak dapat dikompilasi dengan pengaturan ini: /
Tim Autin
3
@ Tim, ya saya juga punya armv7 and arm64di Architechtures. Namun, peringatan dukungan 64-bit yang hilang terjadi saat memvalidasi aplikasi untuk pengiriman.
Nazik
@ Nazik, apakah Anda memiliki arm64 di kedua baris (Arsitektur dan Arsitektur yang Valid)? Saya mengalami kesalahan yang sama dan inilah solusinya
TonyMkenu
@Tim mencoba untuk membersihkan DerivedData Anda dan memeriksa kerangka kerja eksternal atau SDK terbaru Anda jika mereka memiliki dukungan 64 bit
TonyMkenu
3
Selain itu, pastikan perangkat Anda TIDAK terhubung saat mengarsipkan build akhir. Lihat jawaban @powertoold di bawah ( stackoverflow.com/a/26848865/1715004 )
Filipe Borges
68

Setelah mengonfirmasi arsitektur yang benar, pastikan perangkat Anda TIDAK terhubung ke komputer Anda saat MENGARSIPKAN versi akhir untuk dikirim ke App Store.

Alasan peringatan ini muncul adalah karena DEVICE yang Anda sambungkan mungkin tidak kompatibel dengan arm64.

powertoold
sumber
4
Hormat! : D Anda telah menghemat waktu saya
Vaibhav Limbani
1
Bantuan besar !! Menyelamatkan saya banyak waktu untuk yang satu ini. Tip bagus untuk mengupgrade aplikasi lama.
harry
Saya yakin Anda dapat menjaga perangkat non-64bit Anda tetap terhubung jika Anda mengubah pengaturan build Build Active Architecture Onlyke No. Ini akan memaksa xcode untuk membangun biner 64bit terlepas dari perangkat apa yang terhubung.
jxmallett
3
Selain jawaban @jxmallett, pastikan Arsip konfigurasi Skema Anda disetel ke Rilis, di mana Build Active Architecturedisetel ke No. Atur Skema Arsip
KarenAnne
1
FYI saya harus mencabut perangkat saya, beralih ke simulator dan kemudian beralih kembali ke "Perangkat iOS" untuk bekerja.
nwkeeley
37

Seperti yang Tony tulis, penting untuk memiliki kedua baris pengaturan tersebut. Karena proyek saya (dan jelas Anda) dibuat sebelum arm64 ditambahkan ke standar, itu tidak tercermin dalam "Arsitektur yang Valid" meskipun ditampilkan sebagai Standar.

Apa yang saya lakukan:

  • Saya pergi ke konfigurasi Project (vs. Target)
  • Mengetik "arm64" di Arsitektur yang Valid (secara otomatis tercermin dalam target dan skema

Setelah membersihkan / membangun saya bahkan mendapatkan beberapa peringatan tentang konversi float yang tidak tepat ke CGFloat, dll., Jadi pengaturannya jelas diterapkan.

Peringatan validasi juga hilang!

masukkan deskripsi gambar di sini

Nick Entin
sumber
1
> tidak tercermin dalam "Arsitektur yang Valid" bahkan jika itu ditampilkan sebagai Standar. Ini adalah poinnya bagi saya. Terima kasih!
Romain
1
Jika itu membantu orang lain, saya harus mengganti Proyek dan Target untuk mulai bekerja
djburdick
@djburick Terima kasih. Itu berhasil bagi saya ketika tidak ada yang berhasil.
Dave Chambers
27

Cabut perangkat fisik Anda dari Mac. Di XCode pada daftar perangkat pilih Perangkat iOS dan buat Arsip lagi. Itu berhasil untuk saya.

hrast
sumber
5

Hari ini saya menyelesaikan masalah itu dengan langkah-langkah berikut:

Pengaturan Bangunan:

Arsitektur: Arsitektur standar (arm7, arm64) - $ (ARCH_STANDARD)

Arsitektur yang Valid: armv7 armv7s arm64

  1. Bersihkan dan bangun aplikasi Anda dengan iPhone terhubung
  2. Putuskan sambungan iPhone Anda dan periksa bilah atas apakah ada di "Perangkat iOS"
  3. Arsip
  4. Validasi dan Kirim
Leonel Folmer
sumber
@ Timuçin. Maaf atas balasan saya yang terlambat, Anda benar adalah: armv7 armv7s arm64.
Leonel Folmer
3

Cukup Buat Proyek Baru menggunakan versi xCode terbaru dan temukan pengaturan Build. Proyek baru yang dibuat menggunakan versi terbaru memiliki 64 dukungan secara default.

masukkan deskripsi gambar di sini

Kirit Vaghela
sumber
kurang dari 2% orang menggunakan iOS 6 atau kurang. developer.apple.com/support/appstore
Kirit Vaghela
2

Oke, ini gila. Saya mencoba setiap jawaban. Tetapi itu hanya bekerja ketika saya ditempatkan arm64sebelum armv7dan armv7sdi Arsitektur yang Valid.

PS: xcode version : 7.2

prad
sumber
1
Ya. hanya kemudian dan hanya setelah menghubungkan perangkat barulah log kesalahan yang sebenarnya muncul. Kemudian beberapa baris kode yang tidak berlaku lagi dan perlu diperbaiki (merah) dan beberapa masalah dengan RSA lib muncul.
maxweber
1

Saya memecahkan masalah dengan mengubah,

Arsitektur: arm7, arm64

Arsitektur yang valid: arm7, arm64

Bangun arsitektur aktif saja: Ya

pengguna3616535
sumber
1

Saya mengirimkan kesuksesan dengan config sebagai gambar: masukkan deskripsi gambar di sini

(Diarsipkan dengan perangkat nyata)

Bkillnest
sumber
1
Harus mengatur mode rilis ke no
ZYiOS
1

Singkirkan setiap peringatan. Pergi melalui segalanya berulang kali. Temukan jawaban satu kata di sini di atas.

"Buat Hanya Arsitektur Aktif - TIDAK (khususnya ... jika perangkat Anda yang terhubung tidak kompatibel dengan arm64)"

IPad saya bukan 64 bit. Masukkan NO untuk Membangun Arsitektur Aktif dan pengiriman saya berhasil!

Manusia Gunung
sumber
0

Ubah target pengembangan iOS Anda menjadi setidaknya 5.1.1 atau sebagai alternatif, hapus pengaturan arsitektur standar dan terapkan kembali. Anda mungkin telah melihat peringatan bahwa arm64 tidak kompatibel dengan target build Anda. Di halaman ringkasan, periksa setelan "target penerapan" build dan target. Dalam kasus saya, targetnya adalah 6.0, tetapi proyeknya 5.0.

Juga, periksa "Arsitektur yang Valid" di target dan proyek Anda. Saya memiliki pengaturan yang tepat pada proyek tetapi tidak pada target. Setelah ini, saya berhasil.

Beralih di antara proyek / target di halaman ringkasan di sudut kiri atas kotak.

pengguna1122069
sumber
Maksud Anda 5.1.1? 5.1 tidak cukup baru?
Dirk
Sudah lama sekali. Saya tidak tahu atau tidak ingat logika untuk ini. Lakukan saja langkah-langkahnya dan sesuatu mungkin kembali ke tempatnya semula. Bermain-main dengan arsitektur dan semua halaman yang disebutkan.
pengguna1122069
0

Silakan centang opsi Build Active Architecture. Setel ke NO. Ini bekerja untuk saya.

PRITAM SATPUTE
sumber