1

hereから Google Authenticator のソース コードを複製しました。iOS プロジェクトを Xcode で開いた後、多くのファイルが欠落していて、ビルドしようとすると何百ものコンパイル エラーが発生することに気付きました。欠落しているファイルのほんの一部は次のとおりです。

GTMNSDictionary+URLArguments.h
GTMNSString+URLArguments.h
GTMLocalizedString.h
GTMRegex.h

Google Authenticator の iOS プロジェクトをビルドできた人はいますか?

更新 (2015 年 6 月 29 日)

欠落している ZXing ファイルはこちらで、欠落している Google Toolbox for Mac ファイルはこちらで見つけることができました。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)

私はSO全体を検索しましたが、まだそれを理解していません。どんな助けでも大歓迎です!

4

1 に答える 1

1

欠落している ZXing ファイルはこちらで、欠落している Google Toolbox for Mac ファイルはこちらで見つけることができました。次に、不足している適切なファイルをプロジェクトに追加しました。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、これは (他の多くのものと同様に) 行方不明です。ZXingWidget不足している ZXing ファイルでプロジェクトを開き、警告をエラーとして扱うカスタム フラグを削除してビルド エラーを修正しました。次に、静的ライブラリをビルドし、ビルド ターゲットをiOS Deviceに設定します。libZXingWidget.aこれにより、必要なファイルが生成されました。メイン プロジェクトのビルド フェーズ ( ) でそのファイルをリンクしたところ、OTPAuthGoogle Authenticator が iPhone 6 シミュレーターで実行されるようになりました。

于 2015-06-30T13:06:16.297 に答える