XcodeでiOSアプリを開発しています。通常のシミュレーターではコンパイルして完全に実行されましたが、シミュレーター デバイスを 64 ビットに切り替えたところ、13 個の新しい警告と 37 個の新しいエラーで失敗しました。これらはすべて、使用している外部ライブラリに関連していると思います。と呼ばれますObjectiveDDP
(https://github.com/boundsj/ObjectiveDDP)。人々は同様の問題を抱えていましたが、私の理解では、最近リリースされたフレームワークの更新で修正されたと思われますが、私の側では、この更新は役に立ちません. 私が使用している 2 番目のフレームワークはSocketRocket
( https://github.com/square/SocketRocket ) ですが、Xcode の出力を考えると、これが原因ではないと思います。
さらに、多くの人が 64 ビットと互換性のないフレームワークからこのような Mach-O エラーが発生したことは明らかです。ただし、これはファイルの構成に問題があるように感じます。そうは言っても、包括的な問題は次のとおりだと思います
Ignoring file /path/to/project/ObjectiveDDP/libcrypto.a, missing required architecture x86_64 in file /path/to/project/ObjectiveDDP/libcrypto.a
。そのアーキテクチャを追加して、そのファイルでこの問題を修正する方法はありますか? 同様の質問への回答に従って、ビルド設定アーキテクチャをに変更しようとし、Standard architectures(armv7, armv7s, arm64)
他の依存関係がすべて満たされていることを再確認しました。
エラーの一部を次に示します。
Undefined symbols for architecture x86_64:
"_BN_CTX_free", referenced from:
_srp_verifier_new in srp.o
_srp_user_start_authentication in srp.o
_meteor_user_generate_kgx in srp.o
_meteor_user_generate_aux in srp.o
_meteor_user_generate_S_string in srp.o
"_BN_CTX_new", referenced from:
_srp_verifier_new in srp.o
_srp_user_start_authentication in srp.o
_meteor_user_generate_kgx in srp.o
_meteor_user_generate_aux in srp.o
_meteor_user_generate_S_string in srp.o
_srp_user_process_meteor_challenge in srp.o
"_BN_add", referenced from:
_srp_verifier_new in srp.o
_meteor_user_generate_aux in srp.o
"_BN_bin2bn", referenced from:
_srp_verifier_new in srp.o
_H_nn in srp.o
_meteor_user_generate_u in srp.o
_meteor_user_generate_x in srp.o
_meteor_user_generate_k in srp.o
_meteor_user_generate_M_string in srp.o
_meteor_user_generate_HAMK in srp.o
...
そして、Xcode でエラーがどのように見えるかのスクリーンショット:
私の調査の後、これは単なるシミュレーターの問題であり、物理的な iPhone 5S でテストすると自動的に解決するのか、またこれらのエラーを取り除くにはどうすればよいのか、まだ疑問に思っています。ファイル構成の問題を示唆するものはありますか? その他の 2 つの警告は次のとおりです。
ld: 警告: オプション '-L/path/to/place/projectname/projectname/ObjectiveDDP' のディレクトリが見つかりません ld: 警告: オプション '-L/path/to/place/projectname/SocketRocket/ObjectiveDDP' のディレクトリが見つかりません
そして、これら2つのパスは存在しませんが、フォルダーを削除してゴミ箱に移動し、再度追加することで修正したと思います.
どんな洞察も大歓迎です。