빠른. 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+ KCmd+ B-정리 후 빌드

  3. Cmd+ Shift+ Option+ KCmd+ 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.