我已从here克隆了Google身份验证器源代码。在Xcode中打开iOS项目后,我意识到很多文件都丢失了,因此在我尝试构建时会导致数百个编译错误。只有一些丢失的文件是:
GTMNSDictionary+URLArguments.h
GTMNSString+URLArguments.h
GTMLocalizedString.h
GTMRegex.h
有没有人能够为Google身份验证器构建iOS项目?
更新(2015年6月29日)
我能够找到丢失的ZXing文件here和缺少的Google Toolbox for Mac文件here。然后,我在此行的OTPAuthURLEntryController.m
遇到了构建错误:
@property (nonatomic, retain) __attribute__((NSObject)) dispatch_queue_t queue;
我通过将行更改为:
来修复它@property (nonatomic, retain) dispatch_queue_t queue;
现在我正在尝试修复以下"未找到的符号"问题:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Decoder", referenced from:
objc-class-ref in OTPAuthURLEntryController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已经搜遍了所有的搜索结果,但仍然没有想到它。任何帮助将不胜感激!
答案 0 :(得分:1)
我能够找到丢失的ZXing文件here和缺少的Google Toolbox for Mac文件here。然后我将适当的遗漏文件添加到项目中。在此之后,我在此行的OTPAuthURLEntryController.m
遇到了构建错误:
@property (nonatomic, retain) __attribute__((NSObject)) dispatch_queue_t queue;
我通过将行更改为:
来修复它@property (nonatomic, retain) dispatch_queue_t queue;
之后,我遇到了以下"未找到的符号"错误讯息:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Decoder", referenced from:
objc-class-ref in OTPAuthURLEntryController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
事实证明,主项目(OTPAuth
)正在链接到一个名为libZXingWidget.a
的库,这个库缺失了(就像许多其他东西一样)。我在缺少的ZXing文件中打开了ZXingWidget
项目,并通过删除将警告视为错误的自定义标志来修复构建错误。然后,我构建了静态库并将构建目标设置为 iOS Device 。这生成了我需要的libZXingWidget.a
文件。我将该文件链接到主项目的构建阶段(OTPAuth
),现在Google身份验证器在iPhone 6模拟器上运行!