20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS用Staticライブラリのビルドおよびインストール方法

Last updated at Posted at 2014-08-05

##概要
Xcodeを使用したiOS用Staticライブラリのビルドおよびインストール方法について整理します。

##環境

  • 作成日: 2014/08/05
  • OS: Mac OS X 10.9.4
  • Xcode: Xcode6 beta5
  • 言語: Objective-c

##参考文献

##インストールディレクトリ
Staticライブラリ、ヘッダファイル、その他のリソースファイルを、下記にインストールします。図中のPROJECT_NAMEは、ライブラリのプロジェクト名です。

$(HOME)/local
  include/<PROJECT_NAME> ... ヘッダファイル
  lib/ ... ライブラリ(*.a)ファイル
  resource/ ... xibなどのリソースファイル

##実行/設定手順
###プロジェクトの作成
File → New → Projectから、Cocoa Touch Static Libraryを選択。

###ライブラリインストール用ターゲットの追加
インストール用のターゲットを追加します。Target → Other → External Build Systemを選びます。

  1. install.mkなるMakefileを作成します。 install.mkファイルの内容を文末に添付します。
  2. 本ターゲットを、ライブラリのビルドターゲットに依存させます。
  3. ターゲット → Info → External Build Tool Configurationの、Argumentsの項を、-f install.mkとします。
  4. 追加したターゲットでビルドすると、各種ファイルがインストールされます。

###install.mkの概要

  1. build_commandマクロを用いて、プロジェクトをReleaseビルドします、
  2. lipoコマンドを使って、iPhoneOS用のライブラリと、シミュレータ用のライブラリをマージします。参考: lipo を使って簡単に Universal Binary を作成する方法
  3. installコマンドを使ってヘッダファイルを目的のディレクトリ$(HOME)/local/lib/$(PROJECT_NAME)にコピーします。
  4. installコマンドを使って、*.xibファイルを、resourceディレクトリ下にコピーします。

###install.mkファイルの記述内容
INSTALL_PATH = $(HOME)/local
LIB_NAME = lib${PROJECT_NAME}.a
CONFIGURATION = Release

build_command  = xcodebuild build -target $(PROJECT_NAME) \
	-project $(PROJECT_NAME).xcodeproj \
	-configuration $(CONFIGURATION) \
	ONLY_ACTIVE_ARCH=NO \
	BUILD_DIR=$(BUILD_DIR) \
	BUILD_ROOT=$(BUILD_ROOT)

all: build_library install_library install_header install_resource

build_library: dummy
	$(build_command) -sdk iphoneos
	$(build_command) -sdk iphonesimulator

install_library: dummy
	mkdir -p $(INSTALL_PATH)/lib
	lipo -create -output $(INSTALL_PATH)/lib/$(LIB_NAME) \
	  ${BUILD_DIR}/${CONFIGURATION}-iphoneos/$(LIB_NAME) \
	  ${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/$(LIB_NAME)

install_header: dummy
	mkdir -p $(INSTALL_PATH)/include/$(PROJECT_NAME)
	install -m 0644 ${BUILD_DIR}/${CONFIGURATION}-iphoneos/include/$(PROJECT_NAME)/*.h \
	  $(INSTALL_PATH)/include/$(PROJECT_NAME)

install_resource: dummy
	mkdir -p $(INSTALL_PATH)/resource
	find $(PROJECT_DIR) -name "*.xib" -exec install -m 0644 "{}" $(INSTALL_PATH)/resource ";"

dummy:

##備考

  • Swiftを使ったstatic libraryは生成できない様です。すくなくとも、Xcode6 beta4では。
20
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?