2014-11-13 7 views
1

안녕하세요, 내 앱에서 비디오 채팅을 위해 OperTok SDK를 사용하고 있습니다. 모든 것은 내 응용 프로그램에서 잘 작동합니다. 하지만 64 비트 장치/시뮬레이터에서 실행하려고 할 때 - 빌드가 아래의 오류 보고서와 함께 실패합니다.OpenTok framework in 64bit

Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_OTPublisher", referenced from: 
    objc-class-ref in Instr_Video_call.o 
    objc-class-ref in Student_Video_call.o 
"_OBJC_CLASS_$_OTSession", referenced from: 
    objc-class-ref in Instr_Video_call.o 
    objc-class-ref in Student_Video_call.o 
"_OBJC_CLASS_$_OTSubscriber", referenced from: 
    objc-class-ref in Instr_Video_call.o 
    objc-class-ref in Student_Video_call.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

내 아키텍처는 설정 -

ARCHITECTURES - standard architectures armv7, armv7s, arm64 
    VALID ARCHITECTURES - armv7, armv7s, arm64 

하지만 만하는 ARMv7에 다음을 CHAGE 때 - 그것은 작동 (32 비트 장치/시뮬레이터)

이 문제가 될 수 무엇

은하지 않습니다 opentok는 64 비트 디바이스를 지원합니까? 도와주세요. 미리 감사드립니다.

+0

당신은 내가 아는 한 64 비트 비교 OperTok SDK 라이브러리 –

+0

을받을 필요는 OpenTok SDK에 다음 마지막 업데이트 armv7s에 대한 지원을 추가하는 2.3.0이었다. arm64를 지원하는 업데이트가 없습니다. 따라서 애플리케이션에 대한 arm64 지원을 제거해야합니다 (참고 : 유효한 아키텍처가 아닌 아키텍처 설정에서 arm64를 제거하면 32 비트 컴파일 코드를 사용하여 64 비트 디바이스에서 계속 실행됩니다). – dirkgroten

+0

아키텍처를 armv7로 변경했으나 여전히 너무 오래 되었습니까 ?? –

답변

1

라이브러리에 lipo를 사용하여 64 비트 코드가 있는지 확인할 수 있습니다. 결과는 32 비트 프레임 워크임을 보여줍니다.

$ lipo -info OpenTok.framework/OpenTok 
Architectures in the fat file: OpenTok.framework/OpenTok are: armv7 armv7s i386 

은 무엇 당신이 할 수있는 것은 프로젝트 설정 및 목표 설정에서 NOBuild Active Architecture only을 변경하는 것입니다, 설정에 포함 된 모든 아키텍처를 구축하지만, arm64은 64 비트 아이폰을위한 더 나은 옵션이기 때문에 약간의 성능을 잃게됩니다 이런 식으로 엑스 코드. 64 비트 지원

+1

arm64 지원이 OpenTok에 있으며, 최근까지 핵심 webrtc 라이브러리를 업데이트하는 Google에서 차단되었습니다. 현재 타임 라인이 없다. – Ankur

0

당신은 비트 코드를 사용하기 때문에이 오류가 발생할 수 있습니다. 빌드 설정> - - 대상에 "아니오"비트 코드를 가능하게 설정하는

이동을 시도> 검색 "비트 코드를 사용"-> 설정에 "아니오"

내 문제를 해결

.