Xcode 10 오류 : 여러 명령 생성


659

오류 : 여러 명령이 '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'를 생성 함 : 1) 대상 'OptimalLive'에서 복사 명령이 있음 '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'를 '/ Users / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive .app / Info.plist '2) 대상'OptimalLive '에'/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist '에서'/ Users / uesr /로 복사 명령이 있습니다. 라이브러리 / 개발자 /Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist '3)'OptimalLive '대상입력 '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'가있는 프로세스 명령이 있습니다.

Xcode9에서 코드를 실행하면 작동하지만 Xcode10에 오류가 있습니다.


cocoapods 관리되는 종속성에 대해서는 stackoverflow.com/a/52421345/334999
Shuo

타사 프레임 워크를 프로젝트로 가져올 때 소스 파일에 info.plist가있을 때 발생합니다. 이 info.plist는 앱의 info.plist와 충돌합니다. 그냥 빌드 단계에서 제거
protspace

친애하는 독자 여러분,이 질문에 대한 모든 답을 읽으십시오. 잘못 될 수있는 많은 다른 것들이 있습니다.
iluvcapra 2016 년

"빌드 단계-> 사본 번들 자원"경로로 이동하십시오. 파일 이름을 확인하고 동일한 파일을 삭제하십시오. 깨끗하게 청소하고 실행
Sagar Sukode

답변:


1224

응용 프로그램 내의 여러 Plist 또는 다른 파일로 인해 문제가 발생했을 수 있습니다.

솔루션-> 대상 열기-> 빌드 단계> 번들 자원 복사info.plist거기에서 제거하십시오 .

여기에 이미지 설명을 입력하십시오

참고 : 시계 앱도 개발 한 경우 시계 및 시계 확장에서 plist를 제거해야합니다.


12
또한 info.plist 파일이 잘못 추가 된 CocoaPods와 같은 종속성을 찾아야 할 수도 있습니다.
Chris Paveglio

68
좀 더 정교하게 설명하자면 :이 오류는 Xcode 10의 새로운 빌드 시스템이 프로젝트 구성 문제를 파악하는 데 더 좋기 때문에 발생합니다. 이와 같은 문제로 인해 빌드에 미묘한 문제가 발생할 수 있으므로 문제를 해결하는 것이 좋습니다.
Rick Ballard

2
내 경우에는 내가 약간의 현지화 파일 이름 InfoPlist.strings을 제거했다
neowinston

8
내 경우에는 info.plist개인 CocoaPods 종속성 중 하나에 파일이 있는데, 이는 podspec의 source_files속성 과 일치하기 때문에 스쿠 핑 되었습니다. info.plist모듈에 파일이 필요하지 않았 으므로 방금 삭제했습니다.
aapierce

3
감사! 나는 몇 시간 전에 내 코드에 일부 개발자 플러그인을 추가했으며 내 앱의 info.plist와 충돌하는 info.plist 파일도 가지고 있습니다.
Christopher Smit

567

이 빌드 오류에 대한 해결책을 찾았습니다. 다른 사람이 Xcode 10 빌드 시스템과 동일한 문제를 겪고 있다면 다음 단계에 따라 문제를 해결하십시오.

  1. Xcode에서 파일-> 프로젝트 / 작업 공간 설정으로 이동하십시오.
  2. 빌드 시스템을 레거시 빌드 시스템으로 변경하십시오.

여기에 이미지 설명을 입력하십시오 새로운 Xcode 10의 빌드 문제를 해결합니다.

새로운 빌드 시스템으로 작업하려면 이 Apple Xcode 도움말 페이지에서 문제 해결 도움말 찾을 수 있습니다 .

도움이 되었기를 바랍니다!


4
이 문제가 발생하는 이유와 레거시 빌드 시스템을 선택하면 어떻게 해결되는지 설명 할 수 있습니까? @Akshay Sunderwani
user832

142
문제를 해결하지 않고 숨기고 있습니다.
Caio

4
반응 네이티브 프로젝트의 빌드 오류를 수정합니다. github.com/facebook/react-native/issues/20492 여기에서 문제를 참조하십시오. 레거시 빌드 시스템으로 전환하지 않으려는 경우 가능한 해결 방법이 있습니다 : github.com/facebook/react-native/issues/…
Eugen Timm

6
이것은 장기적인 수정이 아닙니다. 결국 레거시 빌드 시스템은 더 이상 옵션이 아닙니다.
Paul King

6
글쎄,이 솔루션 중 어느 것도 작동하지 않기 때문에 문제를 해결하는 대신 100 % 숨길 것입니다. Cocoapods의 알려진 문제인 것 같습니다. github.com/CocoaPods/CocoaPods/issues/7949를 참조하십시오 . 이 해결 방법이 더 이상 옵션이 아닐 때까지 어떻게 든 자체적으로 해결되기를 바랍니다.
sudo

170

Xcode-> 파일-> 작업 공간 설정으로 이동하십시오. 당신은 하나의 팝업을 찾을 수 있습니다.

여기에 이미지 설명을 입력하십시오

빌드 시스템 태그에서 " 레거시 빌드 시스템 "을 선택하십시오 . " 완료 "를 누르 십시오

참고 :- " cmd + shift + alt + k "및 " 파생 데이터 "를 사용 하여 프로젝트를 지우십시오.

매력을 발휘할 프로젝트를 빌드하십시오 :)


내 이해에 따라 기존 프로젝트는 이전 버전의 swift 및 xcode를 지원하는 이전 swift 및 xcode로 만들어졌습니다. 이전에 수행 한 작업에서 "번들 설정-> 스위프트 레거시 빌드 시스템"으로 이동하여 이전 버전을 선택했습니다.
Hardik1344

원래는 "Swift Legacy Build System"에 있었지만 컴퓨터를 다시 시작한 후에 전환되었습니다. 이 세트를 올바르게 설정했다고 생각하더라도 다시 확인하는 것이 좋습니다.
Enders 제시

이 솔루션은 문제를 해결하지 않고 단지 숨 깁니다.
Argus

또한 사용자 별 작업 영역 설정을 동일하게 변경하십시오.)
Wei Shen


114

이것도 시도하십시오. Xcode-> 파일-> 프로젝트 설정-> 빌드 시스템-> 레거시 빌드 시스템.


38
이 경우 Xcode는 프로젝트에서 문제를 표시하므로 레거시 빌드 시스템으로 되 돌리면 지금은 숨길 수 있습니다. 이러한 종류의 문제에 대한 Xcode의보고는 의도적 인 것이며 문제를 해결하는 것이 가장 좋습니다.
Rick Ballard

2
오류가 CocoaPods의 생성 된 프로젝트에있는 경우 새 CocoaPods 버전이 문제를 해결할 때까지 새 빌드 시스템을 비활성화합니다.
Rivera

@RickBallard는 이제 의미가 있습니다. 응답이 혼합되어있는 것 같습니다
rolando

1
이러한 종류의 오류에는 여러 가지 원인이 있지만, help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
Rick Ballard

73

Ditto동일한 이름의 여러 인스턴스를 작성 하는 명령 에서이 정보를 얻는 경우 (아님 'copy files' build phase)를 변경해야 할 수도 있습니다 Product Module Name.

  1. 대상 Xcode가 불평하는 대상을 클릭하십시오.
  2. 클릭 Build Settings
  3. 검색 Product Module Name
  4. 이름을 고유 한 이름으로 변경

앱에 감시 대상과 알림 대상이 있으므로 Extension모듈 이름 끝에 같은 것을 넣습니다 .

이 솔루션을 원래 여기에서 찾았습니다 : https://forums.developer.apple.com/thread/103913


1
그것은 약간 잘 작동했지만 브리징 파일로 고장났습니다.
Mohamad Kaakati

5
필자의 경우 빌드 구성 쇼를 만들기 위해 All검색하는 곳의 오른쪽 에서 선택 해야했습니다 Product Module Name.
Hodson

56
Xcode 10에서 동일한 문제가 발생했습니다. 동일한 프로젝트가 Xcode 9.4.1에서 제대로 작동했습니다. 따라서 솔루션은 매우 간단합니다. 모든 info.plist 파일을 대상에서 제거하십시오. 모든 info.plist 파일에 대해이 작업을 수행하십시오. 1 단계. info.plist 파일을 선택하십시오. 2. 파일 관리자에서 대상 멤버 자격에서 프로젝트를 선택 취소합니다. 그런 다음 프로젝트를 실행하십시오. 감사 !
키트

12
나를 위해 나는 [프로젝트 이름]> 빌드 페이즈> 복사 번들 자원에 가서 거기에 중복을 제거했다
user3322509을

5
@Bharath 프로젝트에서 info.plist 파일을 제거하지 마십시오. 앞에서 언급 한대로 대상에서만 제거해야합니다. info.plist를 제거 할 수 없습니다. 프로젝트에 매우 중요합니다.
키트

69

Core Data를 실험하고있었습니다. 간단한 체크리스트 프로그램을위한 데이터 모델을 구축하고 NSManagedObjects를 생성했습니다. 프로젝트를 컴파일 할 때 다음 오류가 발생했습니다.

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

문제는 데이터 모델 (필자의 경우 CheckList.xcdatamodeld)이 "컴파일 소스"목록에 있다는 것입니다. 목록에서 프로젝트를 제거하면 프로젝트가 깨끗하게 컴파일되었습니다.

  1. 프로젝트 탐색기를 열고 프로젝트를 선택하십시오 (맨 처음에 가장 먼저 입력)
  2. "프로젝트 및 대상"창의 대상에서 빌드 대상을 선택하십시오.
  3. 상단 근처의 빌드 단계 옵션을 선택하십시오.
  4. "컴파일 소스"항목을 펼치고 데이터 모델 이름을 찾으십시오. "xcdatamodeld"를 찾는 데 문제가 있으면 검색하십시오.
  5. 컴파일리스트에서 모델 삭제
  6. 데이터 모델이 "Copy Bundle Resources"목록에 포함되어 있는지 확인하십시오. 누락 된 경우 추가하십시오.

편집하다

@WilliamT로. 주석에서 설명하면 컴파일 목록에 xcdatamodeld가 필요합니다. 대신 xcdatamodeld 파일 내의 엔티티로 이동하십시오. 오류가있는 모델을 선택하고 왼쪽 패널을 확장 한 다음 "Codegen"필드를 "Manual / None"으로 변경하십시오.


36
xcdatamodeld 파일은 실제로 컴파일 소스에 있어야합니다. Core Data와 관련하여이 오류가 표시되면 "NSManagedObject 하위 클래스 생성"을 호출했지만 엔터티가 Codegen = "클래스 정의"로 설정되어 있기 때문일 수 있습니다. 이것은이 클래스가 자동으로 작성되고 수동으로 작성되어 두 번 존재 함을 의미합니다.
William T.

1
당신은 생명의 은인입니다
user578386

1
@WilliamT. Create NSManaged Object Subclass를 호출하는 경우 Codegen의 가치는 무엇입니까?
Kaunteya

2
@Kaunteya 각 CoreData 속성 (테이블)에서 Codegen을 "Manual"로 설정하는 옵션이 있습니다
William T.

1
@WilliamT를 따르십시오. 조언하고 청소하고 구축하십시오.
PruitIgoe

40

빌드 로그를 확인하는 동안 경고가 나타났습니다.

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

따라서 귀하의 경우라면 목표로 가십시오.

  1. 빌드 단계
  2. 번들 자원 복사
  3. 를 제거하십시오 info.plist.

32
info.plist 파일이 사본 번들 자원에 존재하지 않지만 여전히 동일한 오류가 발생합니다
bunty kumar

복사 번들 리소스 빌드 단계에서 과도한 Info.plist를 제거하면 문제가 해결되었습니다. 그러나 우연히 다른 대상의 Info.plist가 있지만 동일한 프로젝트 내에서 번들 자원 복사 빌드 단계에 추가 되었기 때문에 경고가 달라졌습니다. 경고 : "경고 : 태스크의 중복 출력 파일 '... MyApp.app/Info.plist': ProcessInfoPlistFile" 그리고 원래 질문에서와 같은 오류가 발생했습니다. "오류 : 여러 명령이 '... MyApp.app/Info.plist를 생성합니다."
Martin Polak

제 경우에는 "LICENSE"파일이었습니다. 일단 제거하면 문제가 해결되었으므로 문제가 "plist"보다 더 일반적인 것 같습니다. 더 자주 발생하는 것 같습니다
vir us

37

CocoaPods를 사용하는 경우 포드를 분리 한 후 다시 설치하십시오. 그것은 나를 위해 작동합니다.

pod deintegrate

pod install


예, 내 문제는 포드 패키지로 인해 발생 했으며이 문제 만 해결되었습니다! 감사
CodeBrew

@Ming Chu 감사합니다
N. Der

30

이것을 시도하십시오 :

Xcode에서 파일-> 프로젝트 / 작업 공간 설정으로 이동하십시오.

빌드 시스템을 레거시 빌드 시스템으로 변경하십시오.


2
이 경우 Xcode는 프로젝트에서 문제를 표시하므로 레거시 빌드 시스템으로 되 돌리면 지금은 숨길 수 있습니다. 이러한 종류의 문제에 대한 Xcode의보고는 의도적 인 것이며 문제를 해결하는 것이 가장 좋습니다. 자세한 내용은 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0을 참조하십시오 .
Rick Ballard

27

오류 메시지가 핵심 데이터 파일을 참조하는 경우이 답변을 읽으십시오

개요 : 자동 생성 및 수동 생성 Core Data 관리 객체 클래스 파일이있을 수 있습니다.

이 답변은 오류의 첫 번째 줄이 Foo + CoreDataProperties.o 또는 Foo + CoreDataClass.o 파일을 참조하는 경우에 적용됩니다 . 예:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

근본 원인은 빌드 스크립트 의 컴파일 소스 소스 파일 섹션을 확장하여 확인할 수 있습니다 . 예를 들면 다음과 같습니다.

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

언급 한 첫 번째 파일은 프로젝트 디렉토리에 소스 파일이 있으며, 누군가 프로젝트 네비게이터에서 데이터 모델을 선택하고 편집기 > 관리 오브젝트 서브 클래스 작성 메뉴를 클릭하여 생성 한 파일입니다 . 이 기능은 Xcode 7 정도에 추가되었습니다.

두 번째 파일은 이름은 같지만 Xcode 's에 묻힌 파일입니다 DerivedData. 이 파일은 데이터 모델 ( ) 파일이 대상의 컴파일 소스 빌드 단계에 포함 된 경우 모든 빌드 중에 Xcode에 의해 자동으로 생성됩니다 . 이 기능은 Xcode 9 정도에 추가되었습니다. Codegen 팝업 의 설정에 따라 각 엔티티 / 클래스마다 하나 또는 두 개의 파일이 생성됩니다 . 데이터 모델 을 편집하는 동안 엔터티를 선택하면 해당 팝업이 데이터 모델 관리자 에 있습니다..xcdatamodeld

데이터 모델 검사기의 스크린 샷

설정은 다음과 같습니다

  • 수동 / 없음 파일이 생성 되지 않습니다
  • 카테고리 / 확장 Objective-C 카테고리 또는 Swift 확장자를 포함하는 Foo + CoreDataProperties.m 또는 .swift 파일 하나 가 생성됩니다.
  • 클래스 정의 동일한 Category / Extension 파일이 생성되고 클래스 선언 및 정의가 포함 된 Foo + CoreDataClass.m 또는 .swift 가 생성됩니다.

따라서 이전 Xcode에 익숙한 개발자 (예 : 나와 같은)가 새로운 Xcode에서 프로젝트를 시작할 때 문제가 발생합니다. Codegen 팝업 의 설정으로 인해 Xcode가 중복 파일을 생성 한다는 것을 인식하지 못하고 Project Navigator에서 볼 수있는 파일을 생성하려면 Managed Object Subclass 생성 메뉴 항목 을 사용해야한다고 생각합니다. "네비게이터"는 프로젝트 네비게이터에 표시되지 않습니다. 개발자가 헤더의 주석 을 읽고 주의 하는 것을 신뢰하지 않기 때문 입니다. //이 파일은 자동으로 생성되어 편집해서는 안됩니다.

해결 방법 1-이전 방식 사용

하나의 설정만으로 데이터 모델에 대해 모든 자동 Codegen 을 비활성화 할 수 있습니다 .

  • 문제 대상의 오픈 빌드 페이즈 (에서 프로젝트 네비게이터 를 선택 프로젝트는 다음의 목록에 TARGETS 나타난 후, 탭 문제의 대상을 선택 빌드 페이즈 ).
  • 확장 컴파일 소스 항목을하고 문제 데이터 모델 (찾을 .xcdatamodeld파일).
  • 컴파일리스트에서 삭제
  • 데이터 모델이 번들 자원 복사 목록에 포함되어 있는지 확인하십시오 .

솔루션 2-초보자를위한 핵심 데이터 매직

여기, 당신은 더 새로운 길로 들어갑니다.

  • 해당 Compile Sources 에서와 같이 데이터 모델을 그대로 두십시오 .
  • 데이터 모델의 각 엔티티 검사기에서 Codegen클래스 정의로 설정하십시오 .
  • 프로젝트 네비게이터에서 Foo + CoreDataClass 파일을 삭제하고 휴지통에 버리고 Foo + CoreDataProperties.m 또는 .swift 파일의 이름을 Foo + MyProperties 와 같이 바꾸십시오 .
  • Foo + MyProperties.m 또는 .swift 파일에서 Xcode에 의해 생성 된 속성이있는 경우 Codegen에 의해 생성 된 숨겨진 파일에 있으므로 이러한 속성을 삭제하십시오 .

이 솔루션을 사용하면 클래스 정의가 각 빌드의 데이터 모델에서 자동으로 생성됩니다. 당신은 심지어 그들을 볼 수 없습니다. 그것은이다 코어 데이터 매직 , 초보자를위한 좋은 간단한.

솔루션 3-대부분의 실제 앱

그러나 관리되지 않는 속성을 실제로 추가하려는 경우 솔루션 2는 좋지 않습니다. (Objective-C에서는 속성을 범주에 추가 할 수 없으며 Swift에서는 저장된 속성을 확장에 추가 할 수 없습니다.) 따라서 대부분의 실제 응용 프로그램에서는 솔루션 1과 2 사이의 중간 지점을 원할 것입니다.

  • 데이터 소스컴파일 소스 목록에 두십시오.
  • 데이터 모델의 각 엔티티 검사기에서 CodegenCategory / Extension으로 설정하십시오 .
  • 프로젝트 네비게이터에서 Foo + CoreDataClass.m 또는 .swift 파일을 삭제하고 휴지통에 넣은 후 나중에 혼동을 줄이려면 Foo + CoreDataProperties.m 또는 .swift 파일의 이름을 Foo.m 또는 .swift로 바꾸십시오 .
  • Foo.m 또는 .swift 파일에 자체 정의 된 비 관리 속성을 추가 할 수있는 클래스 정의가 포함되어 있는지 확인하십시오 .

(Positron의 답변에 대한 감사의 말. 여기의 대답은 Positron의 답변 (내 솔루션 1)이 작동하는 이유를 설명하고 솔루션 2 및 솔루션 3을 추가합니다.)


이것은 나를 위해 일했습니다. 당신은 굉장합니다!
Srujan Simha

좋은 대답입니다. 여기 에서 주석에서 가져온 Codegen을 Manual / None으로 수정 한 후 'Product> Clean Build Folder'를 사용하여 복제 된 숨겨진 파일을 지울 수 있음을 추가하고 싶었 습니다 .
의심 할 여지없이

21

내 문제를 해결 한 한 가지 옵션은 빌드 시스템을 레거시 빌드 시스템으로 변경하는 것입니다. Xcode 10+에서 다음 단계를 따르십시오.

여기에 문제 및 해결 방법에 대한 자세한 기사가 작성되었습니다. Xcode 오류 : 여러 명령 생성

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


1
내 생명을 구했습니다. 완벽하게 작동했습니다.
Reinaldo

2
이 답변은 Xcode에서 React Native와 함께했던 12 가지 문제처럼 한 손으로 수정되었습니다. 감사합니다!
Chris Gilardi

19

필자의 경우 PDFGenerator가 info.plist 파일을 생성 중이므로 방금 삭제했습니다.

여기에 이미지 설명을 입력하십시오


18

나는 같은 문제가 있었고 메인 앱에 도우미 앱이 하나 더 있고 이것을 리소스에 복사했습니다. 내 경우에는 다음과 같이 해결되었습니다.

1) 대상-> 2) 빌드 단계 2) 파일 복사 (n 개 항목) 3) 복사 파일 제거.

도우미 앱은 Xcode 10.0으로 자동 복사됩니다.

여기에 이미지 설명을 입력하십시오


3
파일 복사 + 번들 자원 복사가 도움이되었습니다.
Oleksandr

이것은 약간의 수정으로 저에게 효과적이었습니다. 제 경우에는 파일 복사 단계에 여러 파일이 있었으며 어떻게 든 동일한 파일 이름이 여러 번 번들에 여러 번 복사되었습니다-오류가 발생했습니다 : 단일 행을 삭제하면 행을 강조 표시해야합니다 / filter 오류에서 불평 한 이름을 필터링하고 전체 복사 파일 단계를 삭제하는 대신 빼기 부호 (항상 맨 아래 행에 있음)로 한 행을 삭제하십시오.
AztecWarrior_25

16

여기에 제안 된 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 이것은 특히 CocoaPods 때문이었습니다. 나는 이전에 Cocoapods 1.3.1을 사용하고있었습니다. 1.5.3으로 업그레이드해도 문제가 바로 해결되지 않았습니다.

내가 따르는 단계는 다음과 같습니다.

  1. Podfile.lock 삭제
  2. 포드 디렉토리 삭제
  3. 파생 데이터 삭제 및 정리
  4. Xcode 종료
  5. CocoaPods를 1.5.3으로 업데이트
  6. 운영 pod install
  7. 작업 공간을 열고 빌드

5
CocoaPods를 1.5.3 (sudo gem install cocoapods)으로 업데이트하고 달리기 (pod install)로 충분했습니다. 감사!
mikemike396

위의 권장 사항 중 일부를 수행했지만 이것이 나를 위해 해결 한 유일한 방법이었습니다. 감사합니다
Almeida

이것도 나를 위해 해결했습니다. 실제로 문제를 처리하기 때문에 레거시 빌드 솔루션보다 낫다고 생각합니다.
MateusK

1
이것은 나를 위해 일했지만 install! 'cocoapods', :disable_input_output_paths => true내 podfile의 맨 위에 추가해야 했습니다. 또한 포드를 업데이트하지 않으려면 podfile.lock을 삭제하지 마십시오. 그러면 모든 포드가 현재 버전으로 설치됩니다.
does Data

11

시작하기 전에 프로젝트에서 Carthage를 종속성 관리자로 사용합니다.

여기에있는 기존 답변 중 어느 것도 내 문제를 해결하지 못했습니다. 나를 위해 문제를 해결 한 것은 다음과 같습니다.

첫째, 빌드 오류가 특히 하나의 프레임 워크를 지적했음을 알았습니다. 다음으로 해당 프레임 워크에 대한 앱 타겟> 빌드 단계를 필터링했습니다. 이 프레임 워크가 "이진을 라이브러리와 링크"및 "내장 프레임 워크"에 모두 존재한다는 것을 알았습니다. "Embed Frameworks"에 나열된 프레임 워크는 Carthage에서 관리 한 프레임 워크 중 어느 것도 아니라는 점에 주목하면서 "Embed Frameworks"에서 해당 프레임 워크를 제거했습니다. 그런 다음 프로젝트를 다시 빌드하면 문제의 프레임 워크에서 활성화 된 기능을 포함하여 모든 것이 잘 작동합니다.


1
나는 PODS를 사용했다. Embed Frameworks에서 모든 것을 제거했습니다. 오류없이 청소하고 재 구축했습니다. 레거시 솔루션도 작동하지만 문제를 해결하지 못합니다 (이 글을 읽는 사람에게는). xcode 10.2, cocoapods-1.6.1에 있습니다.
Nadine Rose

1
나는 카르타고를 사용하고 있으며 이것은 나를 위해 수정했습니다!
Devin B

나는 또한 CocoaPods를 사용했습니다. 프레임 워크는 개발 포드로 연결됩니다. "내장 프레임 워크"가 비어 있고 여전히이 문제가 있습니다.
Luten

11

단계 :

  1. Xcode 파일로 이동
  2. WorkSpace 설정으로 클릭
  3. 빌드 시스템 레거시 빌드 시스템으로 선택

4
이 경우 Xcode는 프로젝트에서 문제를 표시하므로 레거시 빌드 시스템으로 되 돌리면 지금은 숨길 수 있습니다. 이러한 종류의 문제에 대한 Xcode의보고는 의도적 인 것이며 문제를 해결하는 것이 가장 좋습니다. 자세한 내용은 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0을 참조하십시오 .
Rick Ballard

이것은 나를 위해 작동합니다. 제품 이름을 변경해도 마찬가지입니다. 내 제품에는 half objective-c 코드와 신속한 코드가 혼합되어 있습니다. 내 문제는 "여러 명령으로 신속한 모듈 생성"
wzhang84

10

이 옵션을 모두 사용해보십시오.이 3 옵션 중 누구라도 당신을 위해 일할 것입니다.

Option 1: Remove all files from

대상 >> 빌드 단계 >> 컴파일 소스

대상 >> 빌드 단계 >> 번들 자원 복사

Option 2: Change the build system

Xcode-> 파일-> 프로젝트 설정-> 빌드 시스템-> 레거시 빌드 시스템

Option 3: remove and update existing pod

포드 캐시 정리 PromisesObjC
포드 캐시 정리 PromisesSwift
cd [your_project_dir]
rm -rf 포드 /
rm Podfile.lock
포드 업데이트

I hope this will help you, Happy coding :-)

-1. "확실히"작동하지 않습니다. 컴파일 소스를 제거하고 번들 자원을 복사하는 요점은 무엇입니까?! 코드와 리소스를 컴파일하지 않으면 프로젝트가 작동하지 않습니다.
루텐

9

그래서 내가 겪고있는 문제는 실수로 프로젝트 설정-> 빌드 단계-> 번들 자원 복사에 Info.plist를 포함 시켰다는 것입니다.


이 오류가 엑스 코드 (10)에 tflite_camera_example를 실행하는 동안 발생한 이것은 너무 나를 위해 정확하게 솔루션이었습니다
자이 장

9

이 문제는 앱에 Fabric의 SDK 제품군의 두 번째 부분을 추가 한 후에 나에게 일어났습니다.

실제로 발생한 것은 GoogleUtilies 프레임 워크가 포드 프로젝트에 두 번 추가 된 것입니다.

GoogleUtilities.framework에 대한 두 항목

Xcode 10 이전에는 문제가 없었지만 파일에 대해 두 가지 조치 (이 경우 복사 조치)가있는 경우 Xcode 10이 불평합니다.

두 번째 프레임 워크를 제거하는 것이 안전합니다.


중동에 대한 동일하지만, 라이브러리 섹션 프로젝트에 대한 모든 .frameworks을 끌어 카르타고 사용
호나우두 알베르

이 @Damo
Harikarthick K

이 문제에 직면하고 있습니다. 레거시를 변경하지 않고이 문제를 해결하는 방법을 알려주시겠습니까?
Harikarthick K

9

또 다른 해결책은 다음과 같습니다. (사용자 지정 포드를 사용하는 경우)

  • 스크린 샷의 하이라이트로 사이드 바에서 "팟"을 선택하십시오.
  • 빌드 단계를 클릭하십시오. "헤더"섹션을 펼치십시오. 공개, 비공개, 프로젝트의 3 가지 옵션이 있습니다
  • 공개를 펼치고 중복 파일이 있는지 확인하십시오. 제거하십시오. 끝난!!

여기에 이미지 설명을 입력하십시오


이 답변은 (맞춤형) 포드로 인해 문제가 발생하는 경우 해결책으로 간주되어야합니다!
MkaysWork

또한 여기에서 * .plist 파일을 제거 할 수 있습니다. 사용자 지정 포드에서 작동하는 것 같습니다.
Amit Ahire

8

Multiple commands produce하나의 대상에서 info.plist 복제로 제한되지 않는 경고 가 많이있었습니다 . 현지화 된 리소스 및 문자열 파일, 헤더 등 포함

해결 방법 : 대상 멤버쉽에서 모든 중복을 제거하십시오.


메인 앱의 infoplist.strings 파일과 동일한 디렉토리에 복사 된 자체 infoplist.strings 파일이있는 감시 대상이 있기 때문에이 오류가 발생했습니다. 그것들은 건축 될 때 같은 장소에있게됩니다.
Lyck

7

두 개의 다른 대상에 동일한 이름의 파일이있을 때이 문제가 발생했습니다. 어떤 이유로 든 그 파일 중 하나가 두 대상의 일부였습니다. 기본적으로 두 개의 파일이있었습니다. 그리고 두 파일 모두 하나의 대상에 속했습니다.

대상은 대상 당 하나의 파일 이름 만 가질 수 있으므로 기본 대상과 관련이없는 파일의 대상 멤버 상자를 선택 취소하면 문제가 해결됩니다.


7

Carthage와 Xcode 10을 사용하고 있습니다.

내 솔루션은-> 프로젝트-> 대상-> 일반->입니다.

"내장 바이너리"에서 Carthage로 추가 된 프레임 워크 제거

일반적으로 빌드 단계에서 스크립트를 추가하여 앱 스토어의 아키텍처를 제거해야합니다.

Xcode 10에서는 스크립트가 항상 호출되는 것처럼 보입니다. 따라서 프레임 워크를 올바른 위치에 복사하므로 일반 탭에 추가 할 필요가 없습니다.

참고 : 설정하지 않은 경우-> 빌드 설정-> 검색 경로-> 프레임 워크 검색 경로-> Carthage ...에 추가 된 프레임 워크 u에 대한 경로를 설정하십시오. "$ (PROJECT_DIR) / 카터 지 / 빌드 / iOS"


7

Codegen이 Manual / None으로 설정되지 않은 CoreData 모델을 자동 생성 한 후에이 오류가 발생할 수 있습니다.

Xcode 10 에서이 문제를 해결하려면 xcdatamodeId 파일을 두 번 클릭하고 각 엔티티를 선택하고 데이터 모델 관리자의 클래스 아래에서 Codegen을 Manual / None으로 설정하십시오.


예! 또한 "클린 빌드 폴더"도 수행하십시오.
더크

6

비슷한 문제가 있지만 .swiftdoc 파일과 관련이 있습니다.

프로젝트에 확장 및 단위 테스트 대상이 있습니다. 또한 애플리케이션과 동일한 '제품 모듈 이름'(빌드 설정의 PRODUCT_MODULE_NAME)이있었습니다. 고유 이름을 만든 후 문제가 사라졌습니다.


6

Xcode 10으로 이동하면 다음과 같은 오류가 발생합니다.

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

다음과 같이 해결할 수 있습니다.

로 이동하십시오 Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.


2
이 경우 Xcode는 프로젝트에서 문제를 표시하므로 레거시 빌드 시스템으로 되 돌리면 지금은 숨길 수 있습니다. 이러한 종류의 문제에 대한 Xcode의보고는 의도적 인 것이며 문제를 해결하는 것이 가장 좋습니다. 자세한 내용은 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0을 참조하십시오 .
Rick Ballard

이 사람이 나를 위해 그것을했다, 당신이 선생님이되어 genious
samouray

6

프로젝트 빌드 단계로 이동하여 컴파일 소스에서 info.plist를 제거하십시오. 해당 문제가 해결되고 프로젝트가 다시 활성화됩니다.

여기에 이미지 설명을 입력하십시오


6

내 CocoaPod 중 하나가 소리를 내며 문제를 일으켰습니다. 포드가 업데이트되었고 정상적으로 작동했습니다.

LivePerson SDK 일 수도 있습니다.


나를 위해 나는 단지 '포드 설치'를해야했다
Pnar Sbi Wer

6

내 문제는 Xcode 10이 Mojave에서 실행 중이고 XCode 10으로 업데이트하기 전에 작성한 단위 테스트를 실행하는 중이었습니다.

내 경우에는 TestTarget대상 을 실행하는 동안이 문제가 발생했습니다 . 해결하려면 다음을 수행해야했습니다.

  • 타겟 의존성 삭제 한 (에 TestTarget > build phases > Target Dependencies)

내 외에 두 개의 다른 대상이 있었고 TestTarget둘 다 동일한 스크립트를 실행하고 특정 지점에서 파일을 작성 / 복사하고있었습니다.

그리고 언급 무슨과 충돌한다는 엑스 코드 (10)에 대한 빌드 시스템 릴리스 노트 여기 :

빌드의 개별 파일이 둘 이상의 빌드 명령으로 생성되는 것은 오류입니다. 예를 들어, 두 개의 대상이 각각 쉘 스크립트 단계에서 동일한 출력 파일을 선언하는 경우 출력 파일의 선언을 단일 대상으로 인수 분해하십시오.

Xcode 10.1에서 10.2로 업데이트 한 후 새로운 업데이트

Xcode 10.2로 업데이트 한 후에 비슷한 문제가 다시 나타났습니다. 나는 프로젝트에 의해 여러 목표를 가지고 : Target1그리고 Target2, 나는이 문제를 해결 :

  • 로 이동 Edit Scheme > Build하고
  • 내장되는 것을 목표 중 하나를 제거 :의 체크 박스를 체크 해제 Target1에서 Test내가 아는 이후 Target2수입Target1

또한 여기서 Target2확인하려면의 확인란은Test


6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

이 문제를 해결하기위한 두 가지 솔루션이 있습니다.

해결책 1

우리는 내가 같은 오류가 발생했다 볼 수 있듯이 .. 내 경우에는 폴더의 추가 사본이 있었다 Chat21Core 에서 TildeskWidget 또한 단지 오류를 읽을 수 있도록 .. 가능한 솔루션 중 하나를 문제를 작성했다 ..이 폴더 전체와 프로젝트에서 참조 된 추가 사본이 있는지 확인하십시오.

해결책 2

다른 프로젝트에서 동일한 유형의 문제에 직면했을 때 발견 한 또 다른 간단한 솔루션입니다. 이번에는 다른 솔루션을 적용해야했습니다.

  • pod deintegrate 프로젝트에서.
  • 프로젝트 폴더에서 작업 공간 파일과 pod.lock 파일을 제거하십시오.
  • 다시 pod install 프로젝트를 빌드하십시오.

이것이 효과가 있기를 바랍니다 ..

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