Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Human interface guide
- 리팩토링
- 리펙터링
- uitableview
- ios
- Refactoring
- uiscrollview
- ribs
- 애니메이션
- swiftUI
- collectionview
- rxswift
- RxCocoa
- map
- UITextView
- tableView
- HIG
- Protocol
- UICollectionView
- Xcode
- 클린 코드
- 리펙토링
- combine
- clean architecture
- SWIFT
- Observable
- Clean Code
- 스위프트
- MVVM
- swift documentation
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - Swift] 1. Build Setting 개념 - Architecture (archs, EXCLUDED_ARCHS, excluded architecture ONLY_ACTIVE_ARCH, Valid Architectures, arm64, x86_64) 본문
iOS 응용 (swift)
[iOS - Swift] 1. Build Setting 개념 - Architecture (archs, EXCLUDED_ARCHS, excluded architecture ONLY_ACTIVE_ARCH, Valid Architectures, arm64, x86_64)
jake-kim 2022. 12. 16. 01:12Architecture란?
- 디바이스 및 맥북의 CPU를 의미
- 실물 디바이스 - 대부분 arm64 (아이폰 5s이상은 모두 arm64)
- 시뮬레이터 - 맥북의 아키텍쳐에 따라감 (인텔 맥북은 x86_64, Apple Silicon 맥북은 arm64)
- 시뮬레이터에 관한 아키텍쳐는 디폴트로 arm64, x86_64를 제공
- terminal에서 시뮬레이터 관한 정보 확인 방법
open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/SDKSettings.json
Architecture 세팅 방법
- Valid Architectures - 예전에는 Xcode의 Build Setting항목에 존재했던 것이며, 활성화하고싶은 아키텍쳐를 이곳에 기입했지만 현재(Xcode14) 부터는 deprecated
- ONLY_ACTIVE_ARCH (Build Active Architecture Only) 옵션
- 만약 내 iPhone14를 Xcode에 연결하고 빌드할 경우, arm64, armv7 바이너리 파일을 모두 만들 필요 없이 arm64만 만들면 되는데, 이 옵션을 활성화하면 해당 아키텍쳐 바이너리 파일만 생성
- debug모드에서 arm64만 쓴다고 생각할 때, 이 옵션을 활성화하여 사용 (이미 디버그 모드는 Yes가 디폴트)
EXCLUDED_ARCHS(excluded architecture) 옵션
- 예전에는 Valid Architectures라는 옵션이 있어서 활성화하고 싶은 아키텍쳐를 나열했다면 현재는 제외하고 싶은 아키텍쳐만 적용
- 일반적으로 디폴트로 두는게 맞지만, 최적화를 원할때 (시뮬레이터 빌드 시 팀원들이 모두 apple silicon 맥북이라면 x86_64를 제외하는 방법 사용)
ex) 팀원들이 모두 Apple Silicon 맥북을 사용할 때, simulator 빌드 최적화를 위해 x86_64 제외하는 방법
= 인텔 맥북에서 시뮬레이터 빌드 x
- Xcode > Target > EXCLUDED_ARCHS 검색
- Debug 오른쪽 + 버튼 클릭
- Any SDK 생성
- x86_64 기입하면 완료
Cocoapods에서 EXCLUDED_ARCHS 사용 방법
- 인텔 맥북에서 시뮬레이터 빌드 중지
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["ONLY_ACTIVE_ARCH"] = "YES"
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "x86_64"
end
end
end
- Apple Silicon 맥북에서 시뮬레이터 빌드 중지
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["ONLY_ACTIVE_ARCH"] = "YES"
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
end
* 전체 코드: https://github.com/JK0369/ExApp
* 참고
https://jusung.github.io/Xcode12-Build-Error/
'iOS 응용 (swift)' 카테고리의 다른 글
Comments