2014-03-19 3 views
0

Xcode에서 iOS 앱을 개발했습니다. 그것은 정상적인 시뮬레이터에서 완벽하게 컴파일되고 실행되었지만 시뮬레이터 디바이스를 64 비트로 전환하면 13 개의 새로운 경고와 37 개의 새로운 오류로 인해 실패했습니다.이 모두는 내가 사용하는 외부 라이브러리와 연관되어 있습니다 (생각합니다). ObjectiveDDP (https://github.com/boundsj/ObjectiveDDP)이라고합니다. 사람들도 비슷한 문제를 가지고 있었지만, 최근에 릴리스 된 프레임 워크의 업데이트에서이를 수정했다고 생각합니다. 그러나 제 최종적으로이 업데이트는 유용하지 않습니다. 내가 사용하고있는 두 번째 프레임 워크는 SocketRocket (https://github.com/square/SocketRocket)이지만, 이것이 Xcode의 출력에 주어진 범인이라고 생각하지 않습니다.64 비트 시뮬레이터의 Xcode Mach-O Linker 오류

또한 많은 사람들이 이러한 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 
     ... 

와의 스크린 샷 어떤 오류가 엑스 코드에서 다음과 같습니다이 경우 내 연구 후 나는 아직도 궁금

시뮬레이터 문제 일 뿐이며 실제 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'

그리고이 두 경로가 존재하지 않는,하지만 난 쓰레기로 이동, 삭제 된 폴더하여 수정 생각하고, 다시 추가를 : 다른 두 가지 경고가 있습니다.

어떤 통찰력이라도 대단히 감사하겠습니다.

답변

3

ObjectiveDPP 패키지에 포함 된 libcrypto.a이 64 비트 아치 용으로 컴파일되지 않은 것 같습니다. 64 비트가 필요한 경우,이 대답은 당신이 그 파일을 얻을하는 데 도움이 될 것 같습니다

Where I can find openssl iOS 7 libcrypto.a and libssl.a static library for arm64 architecture

그렇지 않으면, 당신은 단지 64 비트 지원없이 자신의 응용 프로그램을 컴파일 할 수 있습니다.

Xcode 5.1에서는 기본적으로 64 비트가 추가되었습니다. 자신의 프로젝트에서 아키텍처를 $(ARCHS_STANDARD_32_BIT)으로 설정하여 제거하고 5.0 동작으로 돌아갈 수 있습니다.

+0

Nailed it. 64 비트 지원이 필요하지 않으므로 아키텍처를 변경하라는 제안과 마찬가지입니다. 이 설명을 해줘서 고맙습니다. 나는 내 혼란이 아이폰 5S에서 64 비트를 지원해야한다고 생각했다. 건배! – zch