2015-06-08 15 views
6

için derleme yapılması gerekti Yeni bir şirkete geçtiğim ve bir projedeki Xcode ayarları ile uğraşmaya çalışıyorum. Şu anda proje "armv7 armv7s arm64 armv8 i386" için derleniyor. Birisi i386 için niçin derleme gerekli olduğunu açıklayabilir mi ve neden?I386 sürümünde iOS

Eğer kaldırırsam projem tamam derler. Unutulmaması gereken bir şey, aynı mimarilerle derlenen bir C++ lib'e bağlantı kurmaktır. Simülatör veya herhangi bir iOS cihazı için i386 kullanılıyor mu?

Teşekkür

cevap

8

i386 versiyonu OS X dogal olarak çalışır ve altta yatan x86/x64 donanım kullanır iOS simülatörü, içinde uygulamayı çalıştırmak için gereklidir. Bu, ARM'yi taklit etmekten daha hızlıdır.

+1

Hızlı bir not: 3. taraf kitaplıklarının tümü sim'in altında çalışmaz, bu da sonunda, yalnızca telefonda hata ayıklayabileceğiniz ve i386 seçeneğini listeden kaldırmanız gereken bir uygulama ile karşılaşacağınız anlamına gelir. –

0

Özellikle mimariler yapı ayarlarınızda i386 belirtmeniz gerekmemelidir. İdeal olarak, ARCHS ve VALID_ARCHS öğelerini varsayılan değerler olarak bırakmanız gerekir ve her şey "sadece çalışır" olmalıdır. Sadece listelenen kol mimarilerini göreceksiniz, ancak sim için inşa ederken sahnelerin arkasında doğru şey olur.

Simülatör için bina oluştururken, projeniz i386, x86_64 veya her ikisi için (dağıtım hedefine ve ARCHS ve ONLY_ACTIVE_ARCH oluşturma ayarlarına bağlı olarak) oluşturulacaktır. Simülatörde, 32bit cihazların sadece i386 kodunu çalıştırmasına izin verilir ve 64 bit cihazlar hem i386 hem de x86_64b kodunu çalıştırabilir (tıpkı gerçek cihazlar gibi ancak kol yerine intel kullanarak).

İlgili konular