SORU
27 HAZİRAN 2015, CUMARTESİ


Böyle büyük mükafat etkisi seçenekleri "Etkinleştir bitcode" Evet/Hayır / inşa

Dün uyarılar parse.com kütüphane ile ilgili bir ton tanıdım:

ACİL: tüm bitcode '[yol]/Ayrıştırma.çünkü çökecektir çerçeve/Ayrıştırılamadı(PFAnalytics.o)' bitcode olmadan inşa edilmiştir. Bitcode (Güncellemelerinden ayarı ENABLE_BİTCODE) etkin, üreticisinden güncelleştirilmiş bir kütüphane elde etmek ya da bu hedef için devre dışı bitcode ile yeniden oluşturmanız gerekir. Not: Bu gelecek için bir hata olacaktır.

O this answer uyarı çıkarabilirim aslında farkındayım ama şu an açısından herhangi bir olumsuz etkisi uygulamam sunulması ve / veya performans saklamak zorunda olacak merak ediyorum.

Böyle büyük mükafat bitcode ile ilgili bilgilendirir

Bu ayar aktive hedef ya da proje destek platformları ve mimariler için derleme sırasında bitcode oluştursun gösterir. Arşiv oluşturur, bitcode app Store'a göndermek için bağlantılı ikili oluşturulur. Diğer yapılar için, derleyici ve linker kodu bitcode nesil için gereksinimleri ile uyumludur, ama gerçek bitcode oluşturmaz olup olmadığını kontrol edin. [ENABLE_BİTCODE]

Ama bu metin dışında herhangi bir yararlı bilgi alamıyorum.

  • ileride yakışıklı bir gönderme ödün vermeden herhangi bir olumsuz etkisi olmadan ve yukarıdaki yöntemi kullanabilir miyim?
  • ENABLE_BITCODE aslında, gelecekte isteğe bağlı olmayan bir gereklilik olarak ne yapar?
  • Eğer / devre dışı etkinleştirirsem herhangi bir performans etkileri vardır?

CEVAP
3 Temmuz 2015, Cuma


  • Bu ENABLE_BİTCODE aslında, gelecekte isteğe bağlı olmayan bir gereklilik olarak ne yapar?

Ne düzeyde bir cevap arıyoruz emin değilim, küçük bir geziye çıkalım. Bildiğiniz bu.

Proje oluştururken, böyle büyük mükafat Objective-C hedefler için clang çağırır ve 2*/swiftc *Hızlı hedefler için. Bu iki Derleyiciler intermediate representation (IR) uygulaması derlemek, bu IRs biri bitcode. Bu IR, adında bir program LLVM alır ve oluşturduğu ikililer ihtiyacı için 86 32 ve 64 bit modları (simülatör) ve arm6/arm7/arm7s/arm64 (cihaz). Normalde, bu farklı ikili hep birlikte tek bir dosya fat binary adlı ele alınmış.

ENABLE_BİTCODE seçeneği bu son adım keser. IR bitcode bir ikili ile uygulamanın bir sürümünü oluşturur. Bu güzel bir özellik, ama büyük bir dezavantajı var: her yerde yayınlanamaz. Çalıştırmak için bitcode bir ikili ile bir uygulama almak için, bitcode çekirdekler ihtiyaç duyarbelki monte veya... doğru fiil emin değilim dönüştürülmüşbir x 86 veya ARM ikili.

Bitcode bir uygulama App Store'a gönderildiğinde, Apple ile bu son adım almak ve bitmiş ikililer oluşturmak.

Şu anda bitcode uygulamalar isteğe bağlıdır, ama tarih Apple gereksinimleri (64 bit desteği gibi) içine isteğe bağlı şeyler dönüyor göstermiştir. Bu genellikle üçüncü parti geliştiriciler (Ayrıştırma gibi) güncellemek için zaman var bu yüzden birkaç yıl sürer.

  • ileride yakışıklı bir gönderme ödün vermeden herhangi bir olumsuz etkisi olmadan ve yukarıdaki yöntemi kullanabilir miyim?

Evet, ENABLE_BİTCODE kapatabilirsiniz ve her şey eskisi gibi çalışacak. Apple bitcode uygulamaları App Store için bir gereklilik yapana kadar, iyi olacak.

  • Eğer / devre dışı etkinleştirirsem herhangi bir performans etkileri vardır?

Hiç etkinleştirmek için olumsuz etkileri olacaktır, ama test etmek için bir uygulama iç dağıtım daha karmaşık olabilir.

Olumlu etkilerine gelince... eh o kadar da karmaşık değil.

App Store dağıtımı için Apple her makine mimarisi (arm6/arm7/arm7s/arm64) için app farklı sürümleri yerine şişman bir ikili ile bir uygulama oluşturmak olacak. Bu uygulamayı iOS cihazlarda yüklü daha küçük olacağı anlamına gelir.

Bitcode çekirdekler buna ek olarak, (belki monte ya da... yeniden dönüştürülmüş, doğru fiil, emin değilim), getirilmiştir. LLVM her zaman yeni ve daha iyi bir optimizasyon oluşturma üzerinde çalışıyor. Teorik olarak, App Store, app yeniden optimize edilmiş en son LLVM teknoloji ile olabilir LLVM her yeni sürümü ile App Store app ayrı sürümü yeniden olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS

    ASUS

    22 EKİM 2005
  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • DavidParody

    DavidParody

    17 EKİM 2009