2017-09-06 17 views
11

Swift içeren bir projenin arşivini dışa aktarırken, "Swift sembolleri" seçeneğini etkinleştiririz. Sadece bir kukla Swift dosyası olan bir projede uygulama boyutunda bir fark görmedim, bu yüzden maksimum soyma için mükemmel bir durum.Xcode'ta "strip Swift sembolleri" neyi gerçekten yapıyor?

Bu tam olarak ne yapar ve son uygulama boyutunu (.ipa) nasıl etkiler?

enter image description here

PS: Xcode 9 beta görüldüğü gibi 6

GÜNCELLEME: Belirli cihazların varyantları bakarken aslında hafif bir ipa boyutu azalma (3.4 MB sıkıştırılmamış) gözlemleyebilirsiniz (değil evrensel bir varyant için olsa)

+1

Bu bağlamda düşünebileceğim tek şey ** tersine mühendislik **. Ancak emin olmak için hala okunabilir çökmeleri görebileceksiniz. Yapıların hala * Strip Swift sembolleri * bayrağı 'etkin' ile hata ayıklama sembolleri * (dSYM) * içerdiğini onaylayabilirim. –

cevap

0

Xcode docs göre:

yeni Şerit Swift Semboller (STRIP_SWIFT_SYMBOLS) inşa ayarıolduğunuvarsayılan olarak etkindir. Yapı sırasının bağlantılı ürünü işaretlendiğinde, işaret sırasının sembol sırasını ayarlar, tüm Swift simgeleri kaldırılır. Bu Swift çerçevelerinin boyutunu önemli ölçüde azaltır. Swift sembollerinin olmaması, dladdr() işlevinin kullanılması gibi sorunlara neden oluyorsa, bu ayar devre dışı bırakılabilir. Dışa aktarılan dosyadan dışa aktarılan sembolleri görüntülemek için, xcrun dyldinfo -export yerine nm kullanın. (31306055)