iOS用に提供する方法はCocoapodsとかがありますが、もっとニッチな機能やSDK関連はFrameworkの形で提供したいなって思って調べてたのでメモ程度に。
Xcode 6ではFrameworkが作りやすくなってた
ググると分かるんですが、Xcode 5まではFrameworkを作ろうとすると、「Cocoa Touch Static Library」のプロジェクトを作り、Info.plistを作って、ビルド用のシェルを書いて…ってエントリがヒットするんですけど、Xcode 6からはその名もずばり、「Cocoa Touch Framework」というプロジェクトが作れるようになってました。
試しにSampleFrameworkという名前でプロジェクトを作成してみると、以下のようなファイル構造が出来上がります。
Info.plistもあって、Xcode 5でやってた作業がすでにできている状態。すごい便利だ。
あとはそれ用にコードを書いて、Build Settingを設定してビルドすればFrameworkが出来上がります。例えばこんなコード:
# SampleFramework.h
import <uikit.h>
//! Project version number for SampleFramework.
FOUNDATION_EXPORT double SampleFrameworkVersionNumber;
//! Project version string for SampleFramework.
FOUNDATION_EXPORT const unsigned char SampleFrameworkVersionString[];
// In this headerundefined you should import all the public headers of your framework using statements like #import <sampleframework publicheader.h>
// --- ここまではデフォルトで書かれている
@interface Sample : NSObject
-(NSString*) helloWorld;
@end
.mファイルも作ります。
# SampleFramework.m(新規追加)
#import "SampleFramework.h"
@implementation Sample
-(NSString*) helloWorld {
return @"Helloundefined SampleFramework!";
}
@end
これをビルドすればSampleFramework.frameworkが出来上がります。あとは他のプロジェクトのEnbeded Binaryに追加して、FrameworkをimportすればOK。
# 他のプロジェクトの実装ファイルとか
#import <sampleframework.h>
@implementation SomeClass
-(void) showHelloWorld {
SampleFramework* sample = [[SampleFramework alloc] init];
NSLog(@"Framework says: %@"undefined [sample helloWorld]);
}
@end
実行して、ログにHello, SampleFramework!と表示されればOK。簡単になったなぁ。
まとめ
Swiftやりたい。