Swift기반 실제기기와 시뮬레이터에서 사용가능한 프레임웍 만들기

2016-09-25
34 Views

iOS용 Swift언어를 기반으로 하는 프레임웍을 Xcode에서 일반적인 컴파일 설치하려면 완성된 프레임웍은 iOS시뮬레이터용 바이너리(X86 64바이너리)가 포함되지 않는다. 그래서 이번에는 ARM용, x86용 두가지 바이너리를 포함한 유니버셜 바이너리형의 프레임웍을 만드는 방법을 정리해본다.

개발환경

  • Xcode 8 (8A218a)
  • Swift 3.0
  • iOS 10

이전까지 사용하던 방법

  1. ARM용 및 x86용별 각각 프레임웍을 준비
  2. 두 파일 병합
  3. 라이브러리 자체는 lipo명령은 유니버설 바이너리 생성함

Xcode의 Build Setting

iOS용 프레임웍을 위한 프로젝트의 Build Setting은 다음과 같이 설정한다.

  • 카테고리: Architectures (시뮬레이터용 i386, x86_64 추가)
  • 항목명: Valid architectures
  • 설정: arm64 armv7 armv7s i386 x86_64
  • 카테고리: Deployment (프레임웍 설치위치 지정)
  • 항목명: Installation Directory
  • 설정: 프레임웍이 설치된 폴더명
  • 카테고리: Deployment (설치 프로세스 가능)
  • 항목명: Skip Install
  • 설정: NO
  • 카테고리: Search Paths (다른 프레임웍과 연결하는 경우의 설정)
  • 항목명: Framework Search Paths
  • 설정: 참조한 프레임웍 폴더

Install 처리 추가

Install대상추가

Xcode에 프레임웍을 설치하기 위한 대상을 추가한다.

  • 대상 유형은 Cross Platform과 External Build System으로 한다.
  • Build Phases의 Target Dependences에 설치하는 프레임웍 빌드 단계를 지정한다.
  • Info의 External Build Tool Configuration의 Arguments는 -f <Makefile파일명> 으로 한다.

install_ios.mk스크립트

스크립트 내용은 아래와 같다. 스크립트 중 PROJECT_NAME과 INSTALL_PATH는 Canary Framework 설정이다.

참고내용

How to build Cocoa Touch Framework for i386 and x86_64 architecture? 17번 항목의 해결방법을 참고함

 

Facebook Comments

You may be interested

Gif 애니메이션으로 로딩 구현하기
Swift 3.0
shares5 views
Swift 3.0
shares5 views

Gif 애니메이션으로 로딩 구현하기

MJ Kim - 5월 24, 2017

이번에는 MBProgressHUD 라이브러리와 FLAAnimatedImage 라이브러리를 사용하여 gif 애니메이션을 사용하는 방법을 정리해본다. Cocoapods를 사용하여 라이브러리를 추가해도 되고 Carthage를 사용해서 추가해도 된다.…

Bluetooth기반 iOS기기로 통신하기
Swift 3.0
shares4 views
Swift 3.0
shares4 views

Bluetooth기반 iOS기기로 통신하기

MJ Kim - 5월 23, 2017

제 블로그에 관심이 있는 분이 블루투스를 사용한 방법을 알려달라고 하셔서 좀더 이해하기 쉬운 방법을 고민해서 한가지 팁을 공유합니다. 블루투스(Bluetooth)로 1대1로…

Apple지도 및 구글지도 앱을 여는 방법
Swift 3.0
shares6 views
Swift 3.0
shares6 views

Apple지도 및 구글지도 앱을 여는 방법

MJ Kim - 5월 16, 2017

지도 중심에 핀을 넣기 특정 지점에서 특정지점 루트를 표시하기  Apple 지도 앱 지도 중심에 핀세워서 위치 표시 [crayon-592551a6aec4e784927959/] 경로 표시…