gpt4 book ai didi

ios - 如何使用 CodeRunner 编译 SecureUDID

转载 作者:行者123 更新时间:2023-12-01 17:18:45 24 4
gpt4 key购买 nike

在我可以在我的 Xcode 项目中使用之前,我正在尝试快速测试使用 SecureUDID 会得到什么样的结果。在这种情况下,我使用 CodeRunner但我从未在 Xcode 之外编译过 obj-c 代码。我附上了使用 CodeRunner 为 Obj-c 文件提供的默认编译标志时遇到的错误。我已经尝试了受此 questions 答案启发的编译标志选项但仍然得到基本相同的错误。我应该使用哪些编译标志?有没有什么好的资源来学习如何在 Xcode 之外编译 obj-c?请帮忙谢谢!

enter image description here

更新:看起来我现在需要将 UIKit 和其他人添加到编译标志中?

enter image description here

最佳答案

我同意 Mattia,Xcode 可能是最好的方法,但是:接受挑战 .

首先,让我们使用 UIKit 编译 CodeRunner。在 CodeRunner 首选项中,复制 Objective-C 语言并将其命名为“iOS”。我使用 Xcode 使用的命令(您可以在 Log Navigator 中找到)作为模板。这也是马蒂亚所说的。将编译标志设置为如下所示:

-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: Library not loaded: /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 模拟器应该会启动,您应该会看到一个带有“Hello World”的橙色屏幕:

Hello World

现在让它与 SecureUDID 一起工作。您需要将代码保存在某处。现在将 SecureUDID .h 和 .m 文件复制到与保存的代码相同的文件夹中。添加 #import "SecureUDID.h"在文件顶部,将字体大小更改为 14.0 , 并更改 @"Hello World"[SecureUDID UDIDForDomain:@"com.example.test" usingKey:@"abcdefg"] .如果您运行代码,它会提示找不到 SecureUDID 符号,正如您所看到的。我们需要将“SecureUDID.m”添加到编译标志中。因此,您可以在 CodeRunner 中重用 iOS 语言,您可以将其添加到自定义运行中的标志中,但是您每次想要运行时都需要处理该模态视图。

你去吧:

SecureUDID

不幸的是,日志不会出现在 CodeRunner 控制台中,但您可以打开 Mac 应用程序 Console 来查看它们。我还得到了一些额外的黑色填充。还不知道我做错了什么。

关于ios - 如何使用 CodeRunner 编译 SecureUDID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com