私はMattiaに同意しますが、Xcodeがおそらく最善の方法です:チャレンジは受け入れられました。
まず、CodeRunnerをUIKitでコンパイルしてみましょう。CodeRunnerの設定で、Objective-C言語を複製し、「iOS」のような名前を付けます。Xcodeが使用するコマンド(ログナビゲーターにあります)をテンプレートとして使用しています。これはマティアが話していたことでもあります。コンパイルフラグを次のように設定します。
-arch i386 -fmessage-length = 0 -std = c99 -fpascal-strings -O0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk -fexceptions- fasm-blocks -g -fvisibility = hidden -fobjc-abi-version = 2 -fobjc-legacy-dispatch -mios-simulator-version-min = 5.1 -framework Foundation -framework UIKit -F /Applications/Xcode.app/Contents/ Developer / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator5.1.sdk / System / Library / Frameworks
iPhoneSimulator5.1.sdk
パスと-mios-simulator-version-min=5.1
フラグに注意してください。独自のシステムとバージョンに合わせてこれらを変更する必要がある場合があります。
まず、次のiOSコードを使用してみてください(これを設定でテンプレートにすることもできます)。
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) UIWindow * window;
@property (nonatomic, retain) UIViewController * viewController;
@end
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.viewController = [[[UIViewController alloc] initWithNibName:nil bundle:nil] autorelease];
self.viewController.view.backgroundColor = [UIColor orangeColor];
UILabel * label = [[UILabel alloc] initWithFrame:self.viewController.view.bounds];
label.font = [UIFont boldSystemFontOfSize:48.0];
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
label.text = @"Hello World";
[self.viewController.view addSubview:label];
[label release];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
@end
int main(int argc, char *argv[]) {
@autoreleasepool {
UIApplicationMain(argc, argv, nil, @"AppDelegate");
}
}
実行しようとするとコンパイルされますが、アプリケーションは次のエラーでクラッシュします。
dyld:ライブラリがロードされていません:/System/Library/Frameworks/UIKit.framework/UIKit
これは、UIKitが利用できないMacでiOSアプリを実行しようとしているためです。シミュレータで実行する必要があります。環境設定に戻り、[コマンドの実行]を次のように変更します。
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone \ Simulator.app/Contents/MacOS/iPhone \ Simulator -SimulateApplication $ PWD / $compiler
ここで同じコードを実行します。iOSシミュレーターが起動し、「HelloWorld」が表示されたオレンジ色の画面が表示されます。
次に、SecureUDIDで動作させるようにします。コードをどこかに保存する必要があります。次に、SecureUDIDの.hファイルと.mファイルを保存したコードと同じフォルダーにコピーします。ファイルの先頭に追加#import "SecureUDID.h"
し、フォントサイズをに変更し14.0
、に変更@"Hello World"
し[SecureUDID UDIDForDomain:@"com.example.test" usingKey:@"abcdefg"]
ます。コードを実行すると、ご覧のようにSecureUDIDシンボルが見つからないと文句を言います。コンパイルフラグに「SecureUDID.m」を追加する必要があります。したがって、CodeRunnerでiOS言語を再利用でき、これをカスタム実行のフラグに追加できますが、実行するたびにそのモーダルビューを処理する必要があります。
そして、あなたは行きます:
残念ながら、ログはCodeRunnerコンソールに表示されませんが、Macアプリのコンソールを開いてそれらを表示することができます。私はまた、いくつかの余分な黒いパディングを取得しています。それを得るために私が間違っていることはまだわかりません。