我一直在Xcode中开发iOS应用程序。它在常规模拟器中编译和运行完美,但是当我将模拟器设备切换到64位时,失败了13个新警告和37个新错误,所有这些都与我正在使用的外部库相关联(我认为)称为ObjectiveDDP
(https://github.com/boundsj/ObjectiveDDP)。人们有类似的问题,但我的理解是,他们应该固定在最近发布的框架更新中,但在我的最后,这个更新是无济于事的。我使用的第二个框架是SocketRocket
(https://github.com/square/SocketRocket),但我不认为这是Xcode输出的罪魁祸首。与64位模拟器的Xcode Mach-O链接器错误
此外,很明显,很多人都有这样的Mach-O错误来自与64位不兼容的框架。但是,我觉得这是组织我的文件的问题。话虽如此,我也认为总体问题是这样的: 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上进行测试时自行解决,并且简单地说我可以如何摆脱这些错误?这里有没有什么建议文件组织问题?另外两个警告是:
ld: warning: directory not found for option '-L/path/to/place/projectname/projectname/ObjectiveDDP' ld: warning: directory not found for option '-L/path/to/place/projectname/SocketRocket/ObjectiveDDP'
而且这两条路径不存在,但我认为我纠正它被删除的文件夹,将其移动到回收站,并重新添加。
任何有识之士将不胜感激。
钉住它。我不需要64位支持,所以就像你建议我改变了架构。感谢您作出澄清;我认为我的困惑是我认为我需要为iPhone 5S支持64位。干杯! – zch