适用于iOS的Google身份验证器丢失文件

时间:2015-06-26 19:27:27

标签: ios google-authenticator

我已从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)

我已经搜遍了所有的搜索结果,但仍然没有想到它。任何帮助将不胜感激!

1 个答案:

答案 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模拟器上运行!