Swifter {Swift Developer}

메뉴

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

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

카테고리:   Swift 3.0

Tags:  , , ,

댓글

죄송하지만 댓글은 닫혀 있습니다.