2017-09-06 4 views
11

Swift가 포함 된 프로젝트의 아카이브를 내보낼 때 "Swift 기호 제거"옵션이 제공됩니다. 나는 하나의 더미 Swift 파일을 가진 프로젝트에서 앱 크기의 차이를 보지 못했기 때문에 최대 스트립핑을위한 완벽한 경우입니다.Xcode에서 "Swift Symbol"은 실제로 무엇을합니까?

정확하게 무엇을하며 최종 앱 크기 (. ipa)에 어떤 영향을 줍니까?

enter image description here

PS : 엑스 코드 9 베타에서 볼 수 있듯이 6

UPDATE : 특정 장치의 변형을 볼 때 사실 나는 약간의 IPA 크기 감소 (3.4 MB 압축)을 관찰 할 수있다 (안 보편적 인 변형에 대한 생각)

+1

이 컨텍스트에서 생각할 수있는 유일한 것은 ** 리버스 엔지니어링 **입니다. 그러나 확실히하기 위해, 당신은 여전히 ​​읽을 수있는 충돌을 볼 수있을 것입니다. 빌드가 * Strip Swift 심볼 * 플래그가 활성화 된 디버그 심볼 * (dSYM) *을 포함하고 있음을 확인할 수 있습니다. –

답변

0

Xcode docs에 따르면

새로운 스트립 스위프트 기호 (STRIP_SWIFT_SYMBOLS) 빌드 설정은입니다이 기본적으로 사용됩니다. 빌드의 링크 된 제품이 제거 될 때 이되도록 기호 제거 수준을 조정하면 모든 빠른 기호 이 제거됩니다. 이렇게하면 Swift 프레임 워크의 크기가 크게 줄어 듭니다. dladdr()을 사용할 때와 같이 Swift 기호가 없으면이 설정을 사용하지 못할 수 있습니다. 벗겨진 파일에서 내 보낸 기호 을 보려면 of nm 대신 xcrun dyldinfo -export를 사용하십시오. (31306055)