2017-09-06 19 views
11

Podczas eksportowania archiwum projektu zawierającego Swift otrzymujemy opcję "usuwania symboli Swift". Nie widziałem żadnej różnicy w wielkości aplikacji, chociaż w projekcie z tylko jednym obojętnym plikiem Swift, a więc idealnym przypadkiem dla maksymalnego zdzierania.Co właściwie robi "strip Swift symbols" w Xcode?

Co to dokładnie robi i jak wpływa na ostateczny rozmiar aplikacji (.ipa)?

enter image description here

PS: jak widać w Xcode 9 beta 6

UPDATE: faktycznie można zaobserwować nieznaczne zmniejszenie rozmiaru IPA (3.4 MB nieskompresowanego), gdy patrzy na konkretnych wariantów urządzeń (nie dla wariantu uniwersalnego chociaż)

+1

Jedyne, co mogę myśleć w tym kontekście, to ** inżynieria odwrotna **. Ale aby się upewnić, nadal będziesz mógł zobaczyć czytelne awarie. Mogę potwierdzić, że kompilacje nadal zawierają symbole debugowania * (dSYM) * z symbolami * Strip Swift * flaga 'enabled'. –

Odpowiedz

0

Według Xcode docs:

nowych symboli Strip Swift (STRIP_SWIFT_SYMBOLS) ustawienie kompilacji jest włączone domyślnie. Dostosowuje poziom usuwania symboli, tak aby po usunięciu połączonego produktu z budowy, wszystkie symbole Swift zostały usunięte. To znacznie zmniejsza rozmiar frameworków Swift. Jeśli brak symboli Swift powoduje problemy, na przykład podczas korzystania z dladdr(), to ustawienie można wyłączyć. Aby wyświetlić wyeksportowane symbole z pliku, który został rozebrany, użyj x-run-dyndinfo -export zamiast nm. (31306055)

Powiązane problemy