[iphone] 빌드 오류-파일에 필요한 아키텍처 i386 누락

iPhone 애플리케이션을 빌드 할 때이 오류가 발생합니다.

ld : 경고 : /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit, 파일에 필수 아키텍처 i386 누락

내 앱의 모든 프레임 워크에 대해 동일합니다. 이것은 더 일찍 일어나지 않았기 때문에 매우 이상합니다.



답변

이는 프로젝트에 프레임 워크를 추가하고 의도하지 않게 프레임 워크를 프로젝트 디렉토리에 복사 할 때 발생합니다.

수정은 모든 iphone SDK * .Framework 파일에 대한 프로젝트 디렉터리 (디스크에 프로젝트를 저장하는 위치)를 확인하고 삭제하는 것입니다.

프로젝트는 나중에 잘 구축됩니다.


답변

나는 똑같은 문제가 있었고 해결책은 쉬운 해결책으로 판명되었습니다. 백업 한 다음 TextMate 또는 TextEdit에서 project.pbxproj (프로젝트 파일 번들 내에 있음)를 열고 “/ * Begin XCBuildConfiguration section * /”섹션을 검색합니다. FRAMEWORK_SEARCH_PATHS라는 키를 찾아서 삭제하고 내용을 삭제합니다 (빌드 구성 당 한 번, 그래서 두 곳에서 제거했습니다). 다음은 내가 삭제 한 항목의 예입니다.

FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library/Frameworks\"",);

내 프로젝트는 이제 iPhone 장치와 iPhoneSimulator 모두에 대해 빌드됩니다.


답변

여기서 일어난 일은 Xcode가 특정 iPhone 장치 SDK를 가리키는 “Framework Search Paths”항목을 신비스럽게 추가했다는 것입니다. 예를 들어, 광산은 최근 다음과 같이 설정되었습니다.

$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks

이로 인해 컴파일러는 잘못된 아키텍처의 프레임 워크를 찾습니다. 대상 빌드 설정에서 “Framework Search Paths”키 아래의 값을 제거하면 문제가 해결됩니다.


답변

XCode에서 “Edit Project Settings”로 이동하여 “Search Paths”를 찾으면 “Framework Search Paths”필드가 있습니다. 이것을 업데이트하면 프로젝트 파일을 해킹하지 않고도 문제가 해결됩니다!

건배!

제시


답변

프레임 워크를 추가 할 때 프로젝트에 복사하지 않았는지 확인하십시오. 복사하면 원래 경로를 찾을 수 없습니다. 이 문제를 해결하려면. 프로젝트의 프레임 워크 폴더에서 AVFoundation 프레임 워크를 삭제 한 다음 다시 추가하되 이번에는 복사 확인 표시가 없는지 확인합니다.

이것은 나를 위해 그것을 고쳤습니다!


답변

이 오류가 발생한 이유는 내 프로젝트에 security.framework를 두 번 추가했기 때문입니다. xcode에서 보안 프레임 워크를 볼 수 없었고, 파인더에서 프로젝트를 열고이 프레임 워크를 찾았습니다. 내가 삭제하고 문제가 해결되었습니다.


답변

앱이 기기에서 실행되도록 의도 된 경우 시뮬레이터에서 실행하려고하지 않는지 확인하십시오. 당연하게 들릴 수 있지만 어쨌든 확인하십시오.