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

2016-09-25
9 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

Xcode 기능 확장(Extension) 제거하기
Xcode
shares3 views
Xcode
shares3 views

Xcode 기능 확장(Extension) 제거하기

MJ Kim - 3월 18, 2017

Mac에서 Xcode Source Editor Extension등의 기능확장을 사용하다보면 디버깅시 시스템 환경 설정의 확장이 앱에 등록되는 경우가 있다. 계속해서 목록이 남아 있기…

iOS App Store Review(앱 심사약관) 번역
Swift 3.0
shares126 views
Swift 3.0
shares126 views

iOS App Store Review(앱 심사약관) 번역

MJ Kim - 3월 15, 2017

App Store Review를 번역했다. 사실 이번에 좀 애매한 리젝을 당해서 그걸 이해하고자 정리해본다. 원문링크: https://developer.apple.com/app-store/review/guidelines/ 1. 이약관은? 1.1 앱 개발자로서 프로그램의…

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi
IoT by Raspberry Pi
shares9 views
IoT by Raspberry Pi
shares9 views

Raspberry Pi 타이머 On/Off 전원제어모듈 RPi1114-Raspberry Pi

MJ Kim - 3월 04, 2017

RPi1114-Raspberry Pi전원제어 모듈이 있다. 이 제품은 40Pin GPIO핀헤더에 연결하여 사용하는 모듈로 Cortax-M0마이크로컨트롤러 LPC1114를 내장하고 Raspberry Pi의 시작과 정지 순서등을 프로그래밍할…