LinkMap 분석 초기 정보
,LinkMap
1.우리가 왜 링크맵을 써야 하는지
중대형 iOS 프로젝트가 계속 갱신되는 과정에서 코드의 양이 점점 커지고 재구성과 리뷰가 필요한 코드도 점점 많아진다. 그러나 코드가 어느 정도에 이르면 제어할 수 없게 된다. 프로젝트가 지속적으로 통합되고 안정적으로 개발될 수 있도록 iOS 설치 패키지의 크기를 줄이는 것은 필수적인 일이다. 보통 그림과 오디오 파일을 압축하는 것부터 시작한다.개발 도구를 사용하여 불필요하게 사용하지 않는 자원 파일을 찾습니다. 이 단계 이후에는 코드에 대한 재구성을 통해 실행 가능한 파일 전체의 다이어트 효과를 얻을 수 있습니다.
가 참여한 프로젝트가 계속 교체되는 과정에서 App의 설치 패키지가 계속 커지고 자신의 셸 스크립트 분석을 통해 수십만 줄에 달하는데 이럴 때 몸을 뺄 필요가 있다. 여기에 포함된다.h.m.mm.cpp.rss 형식 파일.프로젝트에 도입된 Pods 파일과 관련된 제3자 라이브러리를 살펴보면 수백 개의 라이브러리에 달한다. 이 때 중대형 앱은 다이어트를 응용하는 문제와 관련된다. 코드가 제어할 수 없는 문제를 어떻게 효과적으로 해결하고 프로젝트의 밑바닥 기초 구조의 안정성과 건장성을 높일 수 있는지 링크맵이 우리에게 답을 줄 수 있다고 믿는다.
2. 링크맵은 무엇인가
iOS 개발 분야에서 LinkMap은 초보자에게 낯선 명사일 수 있다. 쉽게 말하면 LinkMap의 출력은 순수한 텍스트 형식의 파일로 중요한 컴파일 정보와 오류 정보를 포함한다. 이것은 Apple가 당신의 응용을 분석하는 주요한 방식이다. 이런 방식을 통해 응용 프로그램에서 개인 라이브러리를 사용했는지 등 Apple가 응용 규범에 부합되지 않는 내용을 발견할 수 있지만 우리 개발자에게LinkMap은 소스를 분석하고 Crash를 보는 데 유용한 방법입니다.
3. 링크맵의 구성
전체 LinkMap 파일에는
# Path: /Users/XXXXX/Library/Developer/Xcode/DerivedData/XXXXXXXXXXXX-fwtuexpkzxsfkjaootcqwizogrhf/Build/Products/Debug-iphonesimulator/XXXXX.app/XXXXXXX
# Arch: x86_64
[1] /Users/XXXX/Library/Developer/Xcode/DerivedData/XXXXXXX-fwtuexpkzxsfkjaootcqwizogrhf/Build/Intermediates/XXXXX.build/Debug-iphonesimulator/XXXX.build/Objects-normal/x86_64/main.o
[2] /Users/XXXX/Library/Developer/Xcode/DerivedData/XXXX-fwtuexpkzxsfkjaootcqwizogrhf/Build/Products/Debug-iphonesimulator/libPods-XXXX-XXX-AFHTTPRequestOperationLogger.a(AFHTTPRequestOperationLogger.o)
[3] /Users/XX/Library/Developer/Xcode/DerivedData/XXXX-fwtuexpkzxsfkjaootcqwizogrhf/Build/Products/Debug-iphonesimulator/libPods-XXX-XXX-AFHTTPRequestOperationLogger.a(Pods-XXX-XXX-AFHTTPRequestOperationLogger-dummy.o)
[4] /Users/XX/Library/Developer/Xcode/DerivedData/XXXXXX-fwtuexpkzxsfkjaootcqwizogrhf/Build/Products/Debug-iphonesimulator/libPods-XXX-XXX-AFNetworking.a(AFHTTPClient.o)
...
# Address Size Segment Section
0x100001E80 0x0176F009 __TEXT __text
0x101770E8A 0x00002C58 __TEXT __stubs
0x101773AE4 0x00003288 __TEXT __stub_helper
0x101776D6C 0x000CD35C __TEXT __objc_methname
0x1018440D0 0x0011D09D __TEXT __cstring
0x10196116D 0x0001A327 __TEXT __objc_classname
0x10197B494 0x0001F64C __TEXT __objc_methtype
0x10199AAE0 0x00077720 __TEXT __const
...
0x100001E80 0x00000097 [ 1] _main
0x100001F20 0x000000B0 [ 2] +[AFHTTPRequestOperationLogger sharedLogger]
0x100001FD0 0x00000050 [ 2] ___44+[AFHTTPRequestOperationLogger sharedLogger]_block_invoke
0x100002020 0x00000010 [ 2] ___copy_helper_block_
0x100002030 0x00000010 [ 2] ___destroy_helper_block_
0x100002040 0x000000D0 [ 2] -[AFHTTPRequestOperationLogger init]
0x100002110 0x00000060 [ 2] -[AFHTTPRequestOperationLogger dealloc]
...
4. LinkMap 서비스 시작 방법 및 파일 디렉토리
5. LinkMap 서비스화
6. 앱 다이어트 및 전망
앱 다이어트는 현재 티몰 앱이 해결해야 할 문제이다. 링크맵을 통해 원본 코드를 분석하는 것이 아니라 실제적으로 여러 차원에서 다이어트를 할 수 있다. 이는 자원 파일 최적화, 컴파일 옵션 최적화, 실행 가능한 파일 최적화를 포함한다. 물론 이런 것들은 계속 깊이 있게 세분화할 수 있다.
애플 정부에서도 앱 다이어트에 대한 좋은 소식을 가져왔다. WWDC2015는 앱 Thining의 앱 다이어트 기능을 가져왔다. 이것은 Xcode7 테스트 버전의 기능 중 하나이다. 앱 Thining은 사용자 장비 유형과 화면 해상도에 따라 다양한 다운로드 패키지를 맞춤형으로 만들어서 사용자에게 저장 공간을 절약할 수 있다. 이것은 좋은 앱 다이어트 방식이라고 믿는다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.