programing

빌드 오류 - 파일에 필요한 아키텍처 i386이 없습니다.

jooyons 2023. 6. 4. 10:29
반응형

빌드 오류 - 파일에 필요한 아키텍처 i386이 없습니다.

iPhone 응용 프로그램을 빌드할 때 다음 오류가 발생합니다.

ld: 경고: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/시스템/라이브러리/Frameworks/UIKit.framework/UIKit에서 필요한 아키텍처 i386이 파일에 없습니다.

내 앱의 모든 프레임워크에 동일하게 적용됩니다.아까는 이런 일이 없었는데 참 이상하네요.

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

해결 방법은 프로젝트 디렉터리(프로젝트를 디스크에 저장하는 위치)에서 iphone SDK*를 확인하는 것입니다.프레임워크 파일을 만들고 삭제합니다.

프로젝트는 나중에 잘 구축될 것입니다.

저도 같은 문제를 겪었고, 해결책은 쉬운 해결책이었습니다.그런 다음 TextMate 또는 TextEdit에서 project.pbxproj(프로젝트 파일 번들 내에 있음)를 열고 "/* Begin XC Build Configuration section */" 섹션을 검색합니다.FREATE_SEARCH_PATHS라는 이름의 키를 찾아서 해당 키와 내용을 삭제합니다(빌드 구성당 한 번씩, 그래서 두 곳에서 제거했습니다).다음은 삭제한 내용의 예입니다.

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

제 프로젝트는 이제 iPhone 장치와 iPhone Simulator 모두를 위해 구축됩니다.

여기서 일어난 일은 Xcode가 특정 iPhone 장치 SDK를 가리키는 "프레임워크 검색 경로" 항목을 신비롭게 추가했다는 것입니다.예를 들어, 최근에 다음과 같이 설정되었습니다.

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

이로 인해 컴파일러는 잘못된 아키텍처의 프레임워크를 찾게 됩니다.대상 빌드 설정의 "프레임워크 검색 경로" 키 아래에 있는 값을 제거하면 문제가 해결됩니다.

XCode에서 "프로젝트 설정 편집"으로 이동하여 "검색 경로"를 찾으면 "프레임워크 검색 경로" 필드가 있다는 것을 언급하고 싶습니다.이를 업데이트하면 프로젝트 파일을 해킹할 필요 없이 문제를 해결할 수 있습니다!

건배!

제시.

프레임워크를 추가할 때 프로젝트에 복사하지 않았는지 확인합니다.복사한 경우 원래 경로를 찾을 수 없습니다.이 문제를 해결하기 위해.프로젝트의 프레임워크 폴더에서 AV Foundation 프레임워크를 삭제한 다음 다시 추가합니다. 그러나 이번에는 복사 확인 표시가 되어 있지 않은지 확인하십시오.

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

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

앱이 장치에서 실행되도록 되어 있는 경우 시뮬레이터에서 실행하려고 하지 않는지 확인합니다.당연하게 들릴 수도 있지만, 어쨌든 확인해 보세요.

뭔가가 삭제되었을 수도 있지만, 프로젝트 파일에 뭔가가 엉망이 된 것은 제 경험입니다.저는 아직 그 "무엇"이 무엇인지 확정하지 못했습니다.SDK 설치가 정상일 때도 비슷한 문제가 있었습니다.몇 가지 옵션이 있습니다.

먼저 모든 파일을 새 프로젝트에 추가합니다.이것은 보통 효과가 있는 것처럼 보입니다.그래도 좀 고통스럽긴 한데요

둘째, XCode/Get Info/Build/Library 검색 경로에서 프로젝트를 마우스 오른쪽 버튼으로 클릭할 수 있습니다./Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator 3.1.sdk/usr/lib와 유사한 경로를 추가합니다.각 버전(2.2.1 등) 및 플랫폼(시뮬레이터 또는 iPhoneOS)에 적합한 버전의 문자열을 추가합니다.프레임워크가 문제인 경우 프레임워크 검색 경로에 대해 유사한 작업을 수행합니다.

셋째, 작업량이 더 많지만 안정적인 것은 MyProject 내에서 project.pbxproj를 여는 것입니다.xcodeproj(텍스트메이트가 이에 적합합니다."/* XC Build Configuration 섹션 시작 */", "LIBRARY_SEARCH_PATHs" 및 "FRAMEWORK_SEARCH_PATHs"를 찾습니다.필요에 따라 경로를 추가하거나 수정한 후 파일을 저장합니다.

어쨌든, 엉덩이의 통증입니다. 그리고 저는 이런 일을 몇 번 겪었기 때문에 그 원인을 확실히 지적하고 싶습니다.프로젝트는 잘 구축되고, 그 다음에는 그냥 올라가고, 별로 이유가 없는 것처럼 보이는 것을 거부합니다.

"프로젝트 설정 편집" 및 "검색 경로" 찾기 "프레임워크 검색 경로" 필드가 있습니다. 모두 삭제!!

그것은 저에게도 여기서 일어난 일입니다.훌륭한 파트너 덕분에 우리는 답을 찾았습니다.Xcode가 시뮬레이터를 가리킬 수 있습니다. 대신 IOS 장치로 변경하십시오....이후에 매끈매끈하게 지어진.

터미널에서 프레임워크에서 file 명령을 실행합니다.

file /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit

UIKit 바이너리가 어떤 아키텍처와 호환되는지 알려주는 메시지를 받아야 합니다."i386"이 나열되지 않으면 어떻게든 i386 버전의 UIKit을 제거할 수 있습니다. 이는 시뮬레이터를 위해 빌드할 수 없음을 의미합니다.이 문제를 해결하려면 SDK를 다시 설치해야 합니다.

다른 오류가 발생하면 실제 문제가 무엇인지 파악하는 데 도움이 되기를 바랍니다.

제 경우에도 같은 문제를 겪고 있었는데, Xcode3.1.3이라는 오래된 Xcode 폴더가 있다는 것을 깨달았습니다. 이전 버전이기 때문에 이름을 바꾸었습니다. 그것이 저에게 마법을 부렸습니다.

대상 설정에서 라이브러리 검색 경로를 확인합니다.가끔 바보 같은 도서관들이 거기에 입력되고 이것은 당신에게 비슷한 오류를 줄 것입니다.

이 섹션의 모든 항목을 제거할 수 있습니다.

저는 제 자신의 라이브러리(WM_GSRecognizerLib)에서 작업하기 때문에 약간 다른 것을 경험했을 뿐입니다. 하지만 오류는 동일합니다.

일부 업데이트로 인해 lib를 대상으로 하는 경로가 "디버그-iphoneos" 폴더(.a)에서 생성되었습니다.일반 iOS 기기용 컴파일은 잘 작동했지만, i386 아키텍처가 누락된 것에 대해 불평하는 시뮬레이터에는 작동하지 않았습니다.

이 문제에 대해 제가 한 일은 "디버그-아이폰 시뮬레이터" 폴더의 바이너리도 포함하는 것입니다.

장치에는 arm64/armv7/armv7/armv7용 바이너리가 필요하지만 시뮬레이터에는 i386이 필요하다는 설명이 나와 있기 때문에 이 항목에 도움이 될 수 있습니다.

제 솔루션은 시뮬레이터 대상 디버깅 YES를 설정하는 것이었습니다. git 상태를 확인하여 .project에서만 아키텍처로 추가된 새 라인을 확인하십시오.이를 설정하지 않으면 빌드가 모든 아키텍처에서 실행되고 i386 또는 기타와 같은 누락된 아키텍처가 표시됩니다.분명히 주요 문제는 특정 아키텍처를 구현하는 프레임워크를 사용하는 것입니다.

나도 xcode 버전 4.0.2를 사용하고 있는 것과 같은 오류가 발생하여 내가 한 일은 xcode 프로젝트 파일을 선택하고 그들의 내가 선택한 대상 옵션에서 내 프로젝트의 앱을 볼 수 있어서 그것을 클릭하고 빌드 설정 옵션으로 이동했습니다.

검색 옵션에 있는 그들의 은 프레임워크 검색 경로를 입력하고 모든 설정을 삭제한 다음 빌드 버튼을 클릭하면 잘 작동했습니다.

감사하고 안부 전합니다

언급URL : https://stackoverflow.com/questions/1456185/build-error-missing-required-architecture-i386-in-file

반응형