빠른. Objective-c 모듈 'Alamofire'를 빌드 할 수 없습니다.


117

XCode6를 사용하고 T에 대한 지시를 따르는 Alamofire의 새로운 바닐라 서브 모듈 설치. 여기에 뭔가 적합하지 않습니다. 내가 얻는 오류는 "임포트 alamofire에서"objective-c 모듈 "alamofire"를 빌드 할 수 없습니다. "오류의 스크린 샷입니다.

여기에 이미지 설명 입력 그리고 내 구성 :

여기에 이미지 설명 입력



난 당신이 여기에 주어진 지시에 따라 alamofire을 설치해야합니다 생각 github.com/Alamofire/Alamofire
— Saurabh Prajapati

작동 시키셨습니까? 그것은 나를 위해 일하고 또 다른 "빌드 및 실행"후에 중지되고 동일한 오류 메시지가 나타납니다 ... :(
— Georg

2
동료가 방금 같은 오류 메시지를 받았지만 그 이유는 그가 여전히 Xcode 6.1을 사용하고 있었기 때문입니다 (이 글을 쓰는 6.3 시대입니다). 다른 사람이 같은 일로 어려움을 겪을 경우 기록을 위해 이것을 말하십시오.
— villapossu

답변:


103

이런 일이 발생하면 먼저 프레임 워크를 별도로 빌드하십시오. 귀하의 경우 :

  • Alamofire로 구성표 변경
  • 빌드 ( ⌘B )
  • 계획으로 다시 변경
  • 운영

3
훌륭한 대답; 나는 이러한 종류의 오류를 수정하기 위해 빌드 체계를 변경하는 것을 잊었습니다!
— tehprofessor

1
도와 주셔서 감사합니다.
— Tidane

5
스키마를 별도로 빌드해야하는 경우 애플리케이션의 빌드 설정에서 프레임 워크가 대상 종속성으로 올바르게 설정되지 않았 음을 의미합니다. 이렇게하면 수동으로 빌드 할 필요가 없습니다.
— Charles A.

나는 Xcode에서 작동하기 때문에 이것을 투표했습니다. 불행히도 명령 줄에서 빌드하거나 릴리스 용으로 빌드하는 경우 작동하지 않습니다.
— Eneko Alonso

이것은 GoogleApiClient / Drive에서 발생한 문제를 해결했습니다. 빌드는 성공할 수 있지만 파일이 변경 되 자마자 Xcode는 가져 오기에 대해 불평 할 것입니다.
— 닉 알렉산더

53

Developer / Xcode / DerivedData로 이동하여 프레임 워크의 폴더를 삭제합니다. (또는 DerivedData 자체를 삭제하십시오)

실행중인 시뮬레이터에 앱 빌드가있는 경우 해당 앱을 삭제해야합니다.

그런 다음 청소 및 구축


이것은 나에게도 효과가 있었지만 여러 명령 생성이 발생하면이 링크가 도움이 될 것입니다 : stackoverflow.com/questions/50718018/… .
— Bhimbim

32

이것은 항상 나를 위해 작동합니다.

  1. Xcode 종료
  2. 지우다 ~/Library/Developer/Xcode/DerivedData
  3. 프레임 워크의 구성표 변경 및 ⌘B 빌드
  4. 앱의 구성표를 변경하고 ⌘B를 빌드 하세요.

22

DerivedData 폴더를 삭제하고 프로젝트를 정리하고 빌드하면이 문제가 해결되었습니다.


15

이 순서대로 다음을 시도하면 단계 중 하나가 작동합니다.

  1. Cmd+ B-작업 공간을 빌드하고 원하는 대상 또는 모듈을 빌드해야합니다.

  2. Cmd+ K및 Cmd+ B-정리 후 빌드

  3. Cmd+ Shift+ Option+ K및 Cmd+ B-빌드 폴더 정리

  4. 엑스 코드, 데이터, 발사 엑스 코드 및 파생 삭제 종료 한 Cmd+ Shift+ Option+ K다음 Cmd+B

이것은 Xcode에서 파생 된 데이터 및 기타 캐시를 정리할 수있는 가장 깨끗한 방법입니다.


iCloud 동기화를 사용하는 경우 (예 : 여러 Mac에 쉽게 동기화 할 수 있도록 문서 폴더에 프로젝트가있는 경우) 이름이 XXX 2.swift. 모두 검색하고 삭제 한 다음 pod install.
— John Pang

12

동적 프레임 워크를 가져 오려고 할 때이 오류가 발생하면 프레임 워크가 대상의 대상 종속성에 포함되어 있는지 확인하십시오.

Project > "Target" > Build Phases > Target Dependencies


또한 동일한 작업 공간에서 개발 된 다른 프레임 워크로 작업하는 경우 프로젝트를 프레임 워크 파일 대신 연결된 라이브러리로 추가해야합니다. 그렇지 않으면 프레임 워크가 대상 종속성으로 표시되지 않습니다.
— Dávid Pásztor

11

빌드 클린이 나를 위해 일했습니다.

  1. Alamo를 위해 깨끗한 빌드
  2. HTTPDemo를위한 깔끔한 빌드

6

가져 오기 및이를 사용하는 모든 코드를 주석 처리하고 빌드하고 실행 한 다음 주석 처리를 제거하십시오. 그것은 나를 위해 일했습니다 ...


1

Objective-C / Swift 하이브리드 프로젝트 중 하나에서이 문제를 해결했습니다.

Objective-C 브리징 파일에 다음 줄을 추가합니다.

#import <Alamofire/Alamofire.h>


0

pod를 빌드하지 못한 경우에도이 오류가 발생할 수 있습니다. (제 경우에는 구식 구문을 사용하는 이전 포드가 빌드에 실패했습니다).

당신은 시도 할 수 pod update최신 버전으로 포드를 업데이트하고 일이 어떻게되는지 확인합니다.


iCloud 동기화를 사용하는 경우 (예 : 여러 Mac에 쉽게 동기화 할 수 있도록 문서 폴더에 프로젝트가있는 경우) 이름이 XXX 2.swift. 모두 검색하고 삭제 한 다음 pod install.
— John Pang

0

이 문제에 대한 미친 수정-나에게만 작동하는 솔루션

새 체계를 만들고 오류를 표시하는 프레임 워크를 추가합니다. 이 경우에 'Alamofire'입니다. 모든 계획을 실행하십시오.

모든 계획을 컴파일하면 프로젝트 대상도 잘 작동합니다.

미친 수정처럼 보일지 모르지만 나를 위해 작동하는 솔루션입니다.


0

Alamofire 프로젝트의 유효한 아키텍처에 프로젝트의 유효한 아키텍처가 포함되어 있지 않으면 "Could not build objective-c module .."오류가 발생합니다.

이러한 아키텍처 i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 를 ' Build Settings ' 에서 Alamofire 프로젝트의 ' Valid Architectures '에 추가하십시오 .

두 프로젝트 모두에 대해 동일한 대상 장치를 빌드하십시오. 예를 들어 처음에는 iPhone 8 (13.2) 용 Alamofire 프로젝트를 빌드 한 다음 동일한 시뮬레이터에 대한 프로젝트를 빌드합니다.

Alamofire 프로젝트 빌드가 약 0.5 초라는 매우 짧은 시간이 소요되는 경우 선택한 시뮬레이터의 아키텍처가 유효한 아키텍처 에 없기 때문에 Alamofire 프로젝트에서 오류가 발생 함을 의미합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.