main.m
を使うライブラリはいくつかあります。
例えば、injectionforxcodeなど。
特に、injectionforxcodeはまだObjective-CでしかPatchが出来ないので、どうにかしてmain.m
を使うよう弄ってみました。
xcode6対応すれば無駄な苦労になりますので、適当に眺めてください。
#結論
main.m
#import <UIKit/UIKit.h>
#import <##APPNAME##-Swift.h>
int main(int argc, char *argv[]) {
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
return retVal;
}
}
##APPNAME##
はご自分のAppNameと読み替えてください。
を普通に置いて、
AppDelegate.swift
- @UIApplicationMain
+ //@UIApplicationMain
とすれば動きます。
ちなみに
##APPNAME##-Swift.h
はObjective-C内でインクルードすればプロジェクト内のSwiftのクラスが全て見えるようになる魔法のヘッダです。なにも特別用意せずインクルードするだけで使えます。
ちなみにinjectionforxcodeはxcode5までしか対応しておらず、現状のままではxcode6にインストールすら出来ません。(.plistを少し弄るだけで出来ます。)
強引に使おうとトライしていますが、BundleInjection.hでビルドに失敗するので調査中です。