Xcode 10 Lỗi: Tạo nhiều lệnh


658

lỗi: Nhiều lệnh tạo ra '/Users/uesr/L Library / Nhà phát triển / Code /DeriveData / OpimalLive-fxatvygbofczeyhjsawtebkimvwx /Build / Products / Debug-ioshone /OptimalLive.app' '' '' '' '' '' '' '' '' '' '' '' '' ' '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/ Users / uesr / Library / Developer / Xcode / DeruredData / OptimalLive-fxatvygbofczeyhaw / .app / Info.plist '2) Target' OptimalLive 'có lệnh sao chép từ' /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'sang' / Users / ues Thư viện / Nhà phát triển / Xcode / DeruredData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive.app / Info.plist '3) Target' OptimalLive 'có lệnh xử lý với đầu vào '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

Chạy mã trong Xcode9 hoạt động, nhưng có lỗi trong Xcode10.


Đối với các phụ thuộc được quản lý cocoapods, hãy tham khảo stackoverflow.com/a/52421345/334999
Shuo

xảy ra khi bạn nhập khung của bên thứ ba vào dự án của bạn và nó có thông tin.plist trong các tệp nguồn của nó. Thông tin này.plist xung đột với ứng dụng của bạn. Chỉ cần xóa nó khỏi các giai đoạn Xây dựng
protspace

Bạn đọc thân mến, hãy đọc MỌI câu trả lời cho câu hỏi này, có nhiều điều khác nhau có thể sai.
iluvcapra

Đường dẫn Goto "Xây dựng giai đoạn-> Sao chép tài nguyên gói". Kiểm tra tên tập tin và xóa giống nhau. Dọn dẹp và chạy ứng dụng
Sagar Sukode

Câu trả lời:


1218

Sự cố có thể xảy ra do nhiều tệp Plist hoặc các tệp khác trong Ứng dụng-

Giải pháp -> Mở mục tiêu -> Xây dựng các giai đoạn> Sao chép tài nguyên gói và xóa info.plistkhỏi đó.

nhập mô tả hình ảnh ở đây

Lưu ý: Nếu bạn cũng đã phát triển một ứng dụng đồng hồ thì bạn cũng sẽ phải loại bỏ phần mềm ra khỏi đồng hồ và phần mở rộng đồng hồ.


12
Bạn cũng có thể cần phải xem xét bất kỳ sự phụ thuộc nào, ví dụ như Cốc Cốc cho các tệp thông tin được thêm sai
Chris Paveglio

68
Để giải thích một chút: Lỗi này xảy ra do hệ thống xây dựng mới của Xcode 10 tốt hơn trong việc nắm bắt các vấn đề cấu hình dự án. Các vấn đề như thế này đôi khi có thể gây ra sự cố tinh vi với bản dựng của bạn, vì vậy thật tốt khi khắc phục chúng.
Rick Ballard

2
Trong trường hợp của tôi, tôi đã phải xóa một số tệp bản địa hóa có tên InfoPlist.strings
neowinston

8
Trong trường hợp của tôi, tôi đã có một info.plisttập tin trong một trong những phụ thuộc riêng tư của Cốc Cốc đang bị xáo trộn vì nó phù hợp với source_filestài sản của podspec . Tôi không cần info.plisttập tin trong mô-đun của mình, vì vậy tôi chỉ cần xóa nó.
aapierce

3
Cảm ơn! Tôi đã thêm một số nhà phát triển plugin n mã của tôi một thời gian trước đây và nó cũng có một tệp info.plist mâu thuẫn với thông tin ứng dụng của tôi
Christopher Smit

567

Tôi đã tìm thấy giải pháp cho lỗi xây dựng này, đối với bất kỳ ai khác có cùng vấn đề với hệ thống xây dựng Xcode 10, hãy làm theo các bước sau để khắc phục:

  1. Trong Xcode, đi đến cài đặt Tệp-> Dự án / Không gian làm việc.
  2. Thay đổi hệ thống xây dựng thành hệ thống Xây dựng kế thừa.

nhập mô tả hình ảnh ở đây Nó sẽ giải quyết vấn đề xây dựng với Xcode 10 mới.

Nếu bạn muốn làm việc với hệ thống xây dựng mới, thì bạn có thể tìm trợ giúp khắc phục sự cố từ trang trợ giúp Xcode táo này .

Hi vọng điêu nay co ich!


4
bạn có thể giải thích tại sao vấn đề này lại xảy ra không và cách chọn Legacy Build System giải quyết nó? @Akshay Sunderwani
user832

142
Bạn không khắc phục vấn đề, bạn chỉ đang che giấu chúng.
Caio

4
Sửa lỗi xây dựng cho các dự án phản ứng gốc. Xem vấn đề tại đây: github.com/facebook/react-native/issues/20492 Có một cách khắc phục có thể nếu bạn không muốn chuyển sang Hệ thống xây dựng kế thừa: github.com/facebook/react-native/issues/ tựa
Eugen Timm

6
Đây không phải là một sửa chữa lâu dài. Cuối cùng, hệ thống xây dựng kế thừa sẽ không còn là một lựa chọn.
Paul King

6
Vâng, tôi 100% sẽ che giấu vấn đề thay vì sửa nó vì không có giải pháp nào trong số này hoạt động. Có vẻ là một vấn đề được biết đến với Cocoapods; xem github.com/CocoaPods/CocoaPods/issues/7949 . Tôi hy vọng nó bằng cách nào đó tự khắc phục vào thời điểm giải pháp này không còn là một lựa chọn.
sudo

170

Chuyển đến Xcode -> Tệp -> Cài đặt không gian làm việc. Bạn sẽ tìm thấy một cửa sổ bật lên như thế.

nhập mô tả hình ảnh ở đây

Chọn " Legacy Build System " từ thẻ Build System. Nhấn vào " Xong "

Lưu ý: - Đảm bảo xóa dự án của bạn với " cmd + shift + alt + k " và " Dữ liệu đã tạo "

Xây dựng dự án của bạn nó sẽ làm việc say mê :)


Theo hiểu biết của tôi, các dự án hiện tại của chúng tôi được thực hiện bằng swift và xcode cũ được hỗ trợ phiên bản cũ của swift và xcode. Vì vậy, trước đó những gì chúng tôi đã làm, chúng tôi đã tiếp tục "Cài đặt gói-> Hệ thống xây dựng kế thừa Swift" và đã chọn phiên bản trước đó.
Hardik1344

Ban đầu tôi đã có nó trên "Swift Legacy Build System", nhưng nó đã được chuyển đổi sau khi khởi động lại máy tính của tôi. Ngay cả khi bạn nghĩ rằng bạn có bộ này một cách chính xác, nó vẫn có thể đáng để kiểm tra lại.
EndersJeesh

Giải pháp này không khắc phục được vấn đề, nó chỉ che giấu nó.
Argus

Đồng thời đảm bảo bạn thay đổi cài đặt không gian làm việc của mỗi người dùng thành giống nhau;)
Wei Shen


114

Hãy thử điều này là tốt. Xcode-> File-> Project Settings-> Build System -> Legacy Build System.


38
Trong trường hợp này, Xcode đang đánh dấu một vấn đề trong dự án, do đó, việc quay lại hệ thống xây dựng kế thừa sẽ chỉ ẩn nó ngay bây giờ. Báo cáo của Xcode về các loại vấn đề này là có chủ ý và tốt nhất là khắc phục sự cố.
Rick Ballard

2
Nếu lỗi nằm trong dự án được tạo ra của CocoaPods thì tôi sẽ vô hiệu hóa Hệ thống xây dựng mới cho đến khi phiên bản mới của Cốc Cốc sửa lỗi.
Rivera

@RickBallard có ý nghĩa, bây giờ, đó có thể là sửa chữa đúng? dường như có một sự pha trộn của các câu trả lời
rolando

1
Có nhiều nguyên nhân gây ra loại lỗi này, nhưng bạn có thể đọc thêm về ý nghĩa của nó tại help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
Rick Ballard

73

Nếu bạn nhận được điều này từ Dittolệnh tạo nhiều phiên bản cùng tên (KHÔNG phải 'copy files' build phase), bạn có thể phải thay đổi Product Module Name.

  1. Nhấp vào (các) Xcode mục tiêu của bạn đang phàn nàn về
  2. Bấm vào Build Settings
  3. Tìm kiếm Product Module Name
  4. Thay đổi tên thành một cái gì đó độc đáo

Chúng tôi có một mục tiêu theo dõi và một vài mục tiêu thông báo trong ứng dụng của mình, vì vậy tôi chỉ cần đặt những thứ như Extensionvào cuối tên mô-đun.

Tôi tìm thấy giải pháp này ban đầu ở đây: https://forums.developer.apple.com/thread/103913


1
Nó hoạt động tốt một chút, nhưng sau đó nó đã phá vỡ với tập tin bắc cầu.
Mohamad Kaakati

5
Trong trường hợp của tôi, tôi phải chọn Allở bên phải nơi bạn tìm kiếm Product Module Nameđể hiển thị cấu hình bản dựng đó.
Hodson

56
Tôi gặp vấn đề tương tự trong Xcode 10. Cùng một dự án đã hoạt động tốt trong Xcode 9.4.1. Vì vậy, giải pháp rất đơn giản. Chỉ cần xóa tất cả các tập tin info.plist khỏi mục tiêu. Vui lòng làm điều này cho tất cả các tập tin info.plist. Bước 1. Chọn tập tin info.plist. 2. Trong Trình kiểm tra tệp Bỏ chọn dự án trong Tư cách thành viên mục tiêu. Sau đó chạy dự án của bạn. Cảm ơn !
Một bộ

12
Đối với tôi, tôi đã phải truy cập [Project_Name]> Xây dựng giai đoạn> Sao chép tài nguyên gói và xóa các bản sao ở đó
user3322509

5
@Bharath Đừng xóa các tập tin info.plist khỏi dự án của bạn. Bạn chỉ cần xóa khỏi Target như tôi đã đề cập. Chúng tôi không thể xóa thông tin.plist, Điều đó rất quan trọng đối với dự án.
Một bộ

68

Tôi đã thử nghiệm với Dữ liệu cốt lõi. Tôi đã xây dựng một mô hình dữ liệu cho một chương trình danh sách kiểm tra đơn giản và tạo NSManagedObjects. Khi tôi biên dịch dự án tôi đã gặp lỗi sau:

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

Vấn đề là mô hình dữ liệu (CheckList.xcdatamodeld trong trường hợp của tôi) nằm trong danh sách "Nguồn biên dịch". Dự án được biên dịch sạch sẽ khi tôi loại bỏ nó khỏi danh sách.

  1. Mở trình điều hướng dự án và chọn dự án (mục đầu tiên ở trên cùng)
  2. Chọn mục tiêu xây dựng của bạn trong Mục tiêu trong ngăn "Dự án và mục tiêu"
  3. Chọn tùy chọn Build Ph Phase gần đầu
  4. Mở rộng mục nhập "Nguồn biên dịch" và tìm tên mô hình dữ liệu của bạn. Tìm kiếm "xcdatamodeld" nếu bạn gặp khó khăn khi tìm nó.
  5. Xóa mô hình khỏi danh sách biên dịch
  6. Đảm bảo mô hình dữ liệu được bao gồm trong danh sách "Sao chép tài nguyên gói". Thêm nó nếu nó bị thiếu.

BIÊN TẬP

Như @WilliamT. giải thích trong các ý kiến, bạn cần xcdatamodeld trong danh sách biên dịch. Thay vào đó, hãy đi đến các thực thể của bạn trong tệp xcdatamodeld. Chọn các mô hình bị lỗi, mở rộng bảng điều khiển bên trái và thay đổi trường "Codegen" thành "Thủ công / Không".


36
Tệp xcdatamodeld thực sự phải ở trong Nguồn biên dịch. nếu bạn thấy lỗi này liên quan đến Dữ liệu lõi thì có thể là do bạn đã gọi "Tạo lớp con NSManagedObject" nhưng bạn đã đặt Thực thể của mình thành Codegen = "Định nghĩa lớp". Điều này có nghĩa là nó tự động tạo các lớp này cho bạn và bạn đã tạo chúng theo cách thủ công để chúng tồn tại hai lần.
William T.

1
bạn là một người bảo vệ cuộc sống
user578386

1
@WilliamT. Vậy giá trị của Codegen là gì nếu một người đang gọi Tạo lớp con đối tượng NSManaged?
Kaunteya

2
@Kaunteya Có một tùy chọn để đặt Codegen thành "Thủ công" trên mỗi Thuộc tính CoreData (bảng)
William T.

1
Theo dõi @WilliamT. Tư vấn rồi dọn dẹp và xây dựng.
PruitIgoe

40

Trong khi kiểm tra nhật ký xây dựng, tôi nhận thấy một cảnh báo:

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')

Vì vậy, nếu đó là trường hợp của bạn thì hãy đến mục tiêu của bạn:

  1. Xây dựng các giai đoạn
  2. Sao chép tài nguyên gói
  3. Loại bỏ info.plist.

32
Tệp info.plist không có trong tài nguyên gói sao chép, vẫn gặp lỗi tương tự
bunty kumar

Việc xóa một Info.plist quá mức khỏi giai đoạn xây dựng tài nguyên gói sao chép đã giải quyết nó cho tôi. Tuy nhiên, cảnh báo của tôi là khác nhau vì vô tình một Info.plist của một mục tiêu khác nhưng trong cùng một dự án đã được thêm vào giai đoạn xây dựng Copy Bundle Resources. Cảnh báo là: "cảnh báo: tệp đầu ra trùng lặp '... MyApp.app/Info.plist' trên tác vụ: ProcessInfoPlistFile". Và dẫn đến lỗi tương tự như trong câu hỏi ban đầu: "lỗi: Nhiều lệnh tạo ra '... MyApp.app/Info.plist'".
Martin Polak

trong trường hợp của tôi, đó là tệp "GIẤY PHÉP" - một khi tôi đã xóa nó, vấn đề đã được khắc phục, vì vậy tôi đoán vấn đề này chung chung hơn là "plist", dường như chỉ là một vấn đề thường gặp hơn
vir us

37

Nếu bạn sử dụng CocoaPods, bạn có thể muốn thử hủy nhóm và cài đặt lại. Nó làm việc cho tôi.

pod deintegrate

pod install


Có, vấn đề của tôi là do gói pod và chỉ có điều này đã khắc phục vấn đề! cảm ơn
CodeBrew

@Ming Chu Cảm ơn bạn
N. Der

30

Hãy thử nó hoạt động:

Trong Xcode, đi đến cài đặt Tệp-> Dự án / Không gian làm việc.

Thay đổi hệ thống xây dựng thành hệ thống Xây dựng kế thừa.


2
Trong trường hợp này, Xcode đang đánh dấu một vấn đề trong dự án, do đó, việc quay lại hệ thống xây dựng kế thừa sẽ chỉ ẩn nó ngay bây giờ. Báo cáo của Xcode về các loại vấn đề này là có chủ ý và tốt nhất là khắc phục sự cố. Để biết thêm thông tin, vui lòng xem help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

27

Đọc câu trả lời này nếu thông báo lỗi tham chiếu các tệp Dữ liệu lõi

Tóm tắt: Bạn có thể có cả các tệp lớp đối tượng được quản lý dữ liệu Core được tạo tự động và được tạo thủ công.

Câu trả lời này áp dụng nếu dòng đầu tiên của lỗi đề cập đến tệp Foo + CoreDataProperIES.o hoặc Foo + CoreDataClass.o . Thí dụ:

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

Nguyên nhân gốc có thể được nhìn thấy bằng cách mở rộng phần Compile Swift Source Files của Build Transcript. Ví dụ:

<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'

Tệp đầu tiên được đề cập có một tệp nguồn trong thư mục dự án của bạn, được ai đó tạo bằng cách chọn mô hình dữ liệu của bạn trong Trình điều hướng dự án và nhấp vào menu Trình chỉnh sửa > Tạo lớp đối tượng được quản lý . Tính năng này đã được thêm vào trong Xcode 7 hoặc hơn.

Tệp thứ hai là một tệp có cùng tên nhưng được chôn trong Xcode DerivedData. Tệp này được tạo tự động bởi Xcode trong mỗi lần xây dựng nếu .xcdatamodeldtệp mô hình dữ liệu ( ) được bao gồm trong giai đoạn xây dựng Nguồn biên dịch của mục tiêu . Tính năng này đã được thêm vào trong Xcode 9 hoặc hơn. Không, một hoặc hai tệp được tạo cho mỗi thực thể / lớp, tùy thuộc vào cài đặt của cửa sổ bật lên Codegen . Cửa sổ bật lên đó nằm trong Trình kiểm tra mô hình dữ liệu khi bạn chọn một thực thể trong khi chỉnh sửa mô hình dữ liệu của bạn

ảnh chụp màn hình của Thanh tra mô hình dữ liệu

Các cài đặt là:

  • Thủ công / Không có Không có tệp nào được tạo
  • Danh mục / Tiện ích mở rộng Một tệp, Foo + CoreDataProperIES.m hoặc .swift được tạo, có chứa danh mục Objective-C hoặc tiện ích mở rộng Swift.
  • Định nghĩa lớp Đó cũng tạo tệp Danh mục / Tiện ích mở rộng và ngoài ra, một Foo + CoreDataClass.m hoặc .swift được tạo, chứa khai báo và định nghĩa lớp.

Vì vậy, bạn thấy vấn đề xảy ra khi một nhà phát triển (như tôi), người đã quen với Xcode cũ hơn bắt đầu một dự án trong Xcode mới hơn. Chúng tôi nghĩ rằng chúng tôi cần sử dụng mục trình đơn Tạo lớp đối tượng được quản lý , để thực hiện, để tạo các tệp mà chúng tôi có thể thấy trong Project Navigator trong khi không nhận ra rằng các cài đặt của chúng tôi trong cửa sổ bật lên Codegen đang khiến Xcode tạo các tệp trùng lặp, mà Apple "khéo léo" không hiển thị trong Project Navigator, vì họ không tin tưởng các nhà phát triển đọc và lưu ý nhận xét trong tiêu đề // Tệp này được tạo tự động và không nên chỉnh sửa.

Giải pháp 1 - Sử dụng cách cũ

Bạn có thể tắt tất cả Codegen tự động cho một mô hình dữ liệu chỉ bằng một cài đặt:

  • Mở các giai đoạn Xây dựng của mục tiêu (Trong Điều hướng dự án , chọn dự án, sau đó trong danh sách MỤC TIÊU xuất hiện, chọn mục tiêu vấn đề, sau đó chọn tab Giai đoạn xây dựng ).
  • Mở rộng mục Nguồn biên dịch và tìm mô hình dữ liệu vấn đề ( .xcdatamodeldtệp).
  • Xóa nó khỏi danh sách biên dịch
  • Đảm bảo mô hình dữ liệu được bao gồm trong danh sách Sao chép tài nguyên gói .

Giải pháp 2 - Ma thuật dữ liệu cốt lõi cho người mới bắt đầu

Ở đây, bạn đi tất cả theo cách mới hơn.

  • Để lại mô hình dữ liệu của bạn như trong Nguồn biên dịch đó .
  • Trong mỗi Thanh tra thực thể trong mô hình dữ liệu của bạn, hãy đặt Codegen thành Định nghĩa lớp .
  • Trong Project Navigator, xóa và xóa bất kỳ tệp Foo + CoreDataClass nào và đổi tên bất kỳ tệp Foo + CoreDataProperIES.m hoặc .swift thành một cái gì đó như Foo + MyPropericat .
  • Trong mỗi tệp Foo + MyProperIES.m hoặc .swift , nếu có các thuộc tính được tạo bởi Xcode, hãy xóa các thuộc tính này vì chúng sẽ nằm trong các tệp ẩn được tạo bởi Codegen .

Với giải pháp này, các định nghĩa lớp của bạn được tạo tự động từ mô hình dữ liệu trên mỗi bản dựng. Bạn thậm chí không thể nhìn thấy chúng. Đó là Core Data Magic , đẹp và đơn giản cho người mới bắt đầu.

Giải pháp 3 - Dành cho hầu hết các ứng dụng trong thế giới thực

Nhưng Giải pháp 2 không tốt nếu bạn thực sự muốn thêm các thuộc tính không được quản lý. (Objective-C không cho phép các thuộc tính được thêm vào trong các danh mục và Swift không cho phép các thuộc tính được lưu trữ được thêm vào các tiện ích mở rộng.) Vì vậy, trong hầu hết các ứng dụng trong thế giới thực, bạn có thể muốn đi giữa chừng Giải pháp 1 và 2.

  • Để mô hình dữ liệu của bạn trong danh sách Nguồn biên dịch
  • Trong mỗi Thanh tra thực thể trong mô hình dữ liệu của bạn, hãy đặt Codegen thành Danh mục / Tiện ích mở rộng .
  • Trong Project Navigator, xóa và xóa bất kỳ tệp Foo + CoreDataClass.m hoặc .swift nào, và để giảm sự nhầm lẫn trong tương lai, đổi tên bất kỳ tệp Foo + CoreDataProperIES.m hoặc .swift thành có thể chỉ là Foo.m hoặc .swift .
  • Đảm bảo rằng mỗi tệp Foo.m hoặc .swift chứa định nghĩa lớp mà bạn có thể thêm các thuộc tính không được quản lý của riêng mình.

(Lời cảm ơn về câu trả lời của Positron. Câu trả lời của tôi ở đây giải thích tại sao câu trả lời của Positron (Giải pháp 1 của tôi) hoạt động và thêm Giải pháp 2 và Giải pháp 3.)


Điều này làm việc cho tôi. bạn thật tuyệt vời!
Srujan Simha

Câu trả lời tốt đẹp. Chỉ muốn thêm bạn có thể xóa các tệp ẩn trùng lặp bằng cách sử dụng 'Sản phẩm> Thư mục xây dựng sạch' sau khi sửa Codegen thành Thủ công / Không lấy từ nhận xét nào từ đây .
không thể chấp nhận được vào

20

Một lựa chọn giải quyết vấn đề của tôi là thay đổi hệ thống xây dựng sang hệ thống xây dựng cũ. Vui lòng làm theo các bước sau trong Xcode 10+.

Ở đây tôi đã viết một bài viết chi tiết về vấn đề & giải pháp của nó. Lỗi Xcode: Sản xuất nhiều lệnh

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


1
Cứu cuộc đời tôi. Làm việc hoàn hảo.
Reinaldo

2
Câu trả lời này đã được sửa một tay như 12 vấn đề tôi gặp phải trong Xcode với React Native. Cảm ơn bạn!
Chris Gilardi

19

Trong trường hợp của tôi, PDFGenerator đang tạo một tệp info.plist, tôi chỉ xóa nó.

nhập mô tả hình ảnh ở đây


18

Tôi có cùng một vấn đề, tôi đã có thêm một ứng dụng trợ giúp trong Ứng dụng chính và sao chép nó trong tài nguyên. Trong trường hợp của tôi đã giải quyết như sau: -

1) Mục tiêu -> 2) Xây dựng giai đoạn 2) Sao chép tệp (n mục) 3) Xóa Sao chép tệp.

Ứng dụng Trình trợ giúp tự động sao chép trong Xcode 10.0.

nhập mô tả hình ảnh ở đây


3
Sao chép tập tin + Sao chép tài nguyên Bundle xóa giúp.
Oleksandr

Điều này làm việc với tôi với một sửa đổi nhỏ - Trong trường hợp của tôi có nhiều tệp trong bước sao chép tệp, bằng cách nào đó, cùng tên tệp được sao chép vào gói nhiều lần / hai lần - dẫn đến lỗi: xóa một hàng cần bạn làm nổi bật hàng / lọc tên bị khiếu nại trong lỗi và xóa một hàng bằng dấu trừ (luôn luôn ở hàng dưới cùng) thay vì xóa toàn bộ bước sao chép tệp.
AztecWar Warrior_25

16

Không có giải pháp nào được đề xuất ở đây làm việc cho tôi. Điều này đặc biệt là do CocoaPods. Trước đây tôi đã sử dụng Cocoapods 1.3.1. Chỉ cần nâng cấp lên 1.5.3 không giải quyết được vấn đề ngay lập tức.

Các bước tôi làm theo là:

  1. Xóa Podfile.lock
  2. Xóa thư mục Pods
  3. Xóa dữ liệu phái sinh & làm sạch
  4. Thoát Xcode
  5. Cập nhật Cốc Cốc lên 1.5.3
  6. Chạy pod install
  7. Mở không gian làm việc và xây dựng

5
Cập nhật CocoaPods lên 1.5.3 (sudo gem install cocoapods) và chạy (cài đặt pod) là đủ để nó hoạt động với tôi. Cảm ơn!
mikemike394

Tôi đã làm một số khuyến nghị ở trên nhưng đây là người duy nhất giải quyết cho tôi. Cảm ơn
Almeida

Điều này giải quyết nó cho tôi quá. Tôi nghĩ rằng nó là tốt hơn so với giải pháp xây dựng di sản bởi vì nó thực sự quan tâm đến vấn đề.
MateusK

1
Điều này làm việc cho tôi, nhưng tôi cũng phải thêm install! 'cocoapods', :disable_input_output_paths => truevào đầu podfile của mình. Ngoài ra, nếu bạn không muốn cập nhật các nhóm của mình - đừng xóa podfile.lock và tất cả các nhóm sẽ được cài đặt tại phiên bản hiện tại của chúng.
DoesData

11

Trước khi tôi bắt đầu lưu ý rằng dự án của tôi sử dụng Carthage như một người quản lý phụ thuộc.

Không có câu trả lời hiện có ở đây giải quyết vấn đề của tôi. Những gì đã giải quyết vấn đề cho tôi là sau đây.

Đầu tiên, tôi nhận thấy rằng lỗi xây dựng đã chỉ ra một khung cụ thể. Tiếp theo tôi đã lọc Mục tiêu ứng dụng> Xây dựng giai đoạn cho khung đó. Tôi nhận thấy rằng khung đó đã có mặt trong cả "Liên kết nhị phân với thư viện" và "Khung nhúng". Lưu ý rằng không có khung nào được liệt kê trong "Khung nhúng" là khung được quản lý bởi Carthage Tôi đã xóa khung được đề cập khỏi "Khung nhúng". Sau đó, tôi đã xây dựng lại dự án của mình và mọi thứ hoạt động tốt bao gồm cả chức năng được kích hoạt bởi khung công tác đang đề cập.


1
Tôi đã sử dụng PODS. Loại bỏ mọi thứ khỏi khung nhúng làm việc. Tôi dọn dẹp và xây dựng lại không có lỗi. Giải pháp kế thừa cũng hoạt động nhưng không giải quyết được vấn đề trong tay (đối với bất kỳ ai đọc điều này). Tôi đang sử dụng xcode 10.2, cocoapods-1.6.1.
Nadine Rose

1
Tôi đang sử dụng Carthage và điều này đã sửa nó cho tôi!
Devin B

Tôi cũng đã sử dụng CocoaPods. Khung được kết nối như pod phát triển. "Các khung nhúng" trống và vẫn gặp sự cố này
Luten

11

Hãy thử tất cả tùy chọn này, bất cứ ai trong số 3 tùy chọn này sẽ làm việc cho bạn, chắc chắn

Option 1: Remove all files from

Mục tiêu >> Xây dựng giai đoạn >> Biên dịch nguồn

Mục tiêu >> Xây dựng giai đoạn >> Sao chép tài nguyên gói

Option 2: Change the build system

Xcode-> File-> Project Settings-> Build System -> Legacy Build System

Option 3: remove and update existing pod

pod bộ nhớ cache sạch PromisesObjC
pod bộ nhớ cache PromisesSwift sạch
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
pod cập nhật

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

11

Các bước:

  1. Chuyển đến tệp Xcode
  2. Bấm để Cài đặt WorkSpace
  3. Xây dựng hệ thống Chọn làm hệ thống xây dựng kế thừa

3
Trong trường hợp này, Xcode đang đánh dấu một vấn đề trong dự án, do đó, việc quay lại hệ thống xây dựng kế thừa sẽ chỉ ẩn nó ngay bây giờ. Báo cáo của Xcode về các loại vấn đề này là có chủ ý và tốt nhất là khắc phục sự cố. Để biết thêm thông tin, vui lòng xem help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

Điều này làm việc cho tôi. Thay đổi tên sản phẩm không. Vì sản phẩm của tôi được trộn với một nửa mã mục tiêu-c và mã nhanh chóng. Vấn đề của tôi là "Nhiều lệnh tạo ra swiftmodule"
wzhang84

9

Vì vậy, vấn đề tôi gặp phải là tôi đã vô tình đưa Info.plist vào cài đặt dự án -> Xây dựng giai đoạn -> Sao chép tài nguyên gói cho mục tiêu của tôi.


Đây cũng chính là giải pháp cho tôi, vì lỗi này xảy ra trong khi thử chạy tflite_camera_example trong Xcode 10
zai chang

9

Vấn đề này phát sinh đối với tôi sau khi thêm phần thứ hai của bộ SDK vải vào ứng dụng.

Điều thực sự đã xảy ra là Khung GoogleUtflower đã được thêm hai lần vào dự án Pods

Hai mục nhập cho GoogleUtilities.framework

Điều này sẽ ổn trước Xcode 10 nhưng Xcode 10 sẽ khiếu nại nếu một tệp có hai hành động chống lại nó (trong trường hợp này là hành động sao chép).

Nó an toàn để loại bỏ khung thứ hai.


Tôi cũng vậy, nhưng sử dụng Carthage kéo tất cả .frameworks vào dự án phần thư viện
Ronaldo Albertini

Bạn đã sửa cái này @Damo
Harikarthick K

Tôi đang đối mặt với vấn đề này, bạn có thể cho tôi biết cách khắc phục vấn đề này mà không thay đổi di sản
Harikarthick K

8

Tôi đã có một loạt các Multiple commands producecảnh báo - không giới hạn đối với sao chép thông tin.plist trong một mục tiêu. Bao gồm các tài nguyên cục bộ và các tệp chuỗi, các tiêu đề, v.v.

Giải pháp: loại bỏ tất cả các bản sao trong thành viên mục tiêu.


Tôi gặp lỗi này vì tôi có mục tiêu theo dõi với tệp infoplist.strings của chính nó đang được sao chép vào cùng thư mục với tệp infoplist.strings của ứng dụng chính. Cả hai sẽ kết thúc ở cùng một nơi khi được xây dựng.
Lyck

8

Đây là một giải pháp làm việc khác: (Nếu bạn đang sử dụng Pods tùy chỉnh)

  • Chọn "Pods" từ thanh bên làm điểm nhấn trong ảnh chụp màn hình.
  • Nhấp vào Giai đoạn xây dựng. Mở rộng phần "Tiêu đề". Có 3 tùy chọn Công cộng, Riêng tư, Dự án
  • Mở rộng Công khai và kiểm tra có các tệp trùng lặp. Loại bỏ nó. LÀM XONG!!

nhập mô tả hình ảnh ở đây


câu trả lời này cũng nên được xem như là một giải pháp trong trường hợp pod (tùy chỉnh) gây ra sự cố!
MkaysWork

Ngoài ra, bạn có thể xóa mọi tệp * .plist khỏi đây. Nó dường như làm việc cho các pod tùy chỉnh.
Amit Ahire

7

Tôi gặp vấn đề này khi tôi có một tệp có cùng tên ở hai mục tiêu khác nhau. Vì một số lý do, một trong những tệp đó tôi có một phần của cả hai mục tiêu. Vì vậy, về cơ bản tôi đã có hai tập tin. Và cả hai tập tin đó đều thuộc về một mục tiêu.

Điều có nghĩa là một mục tiêu chỉ có thể có một tên tệp cho mỗi mục tiêu, vì vậy chỉ cần bỏ chọn hộp thành viên đích cho tệp không liên quan đến mục tiêu chính đã khắc phục vấn đề.


7

Tôi đang sử dụng Carthage và Xcode 10.

Giải pháp của tôi là -> Dự án -> Mục tiêu -> Chung ->

Xóa các Khung được thêm bằng Carthage khỏi "Các nhị phân nhúng"

thông thường bạn phải thêm một tập lệnh trong Build Phase để loại bỏ kiến ​​trúc cho cửa hàng ứng dụng.

Trong Xcode 10, tập lệnh dường như luôn được gọi. Vì vậy, nó sao chép các khung vào đúng nơi và bạn không phải thêm chúng vào Tab Chung.

Lưu ý: nếu không được đặt -> trong Cài đặt bản dựng -> Đường dẫn tìm kiếm -> Đường dẫn tìm kiếm khung -> đặt đường dẫn đến Khung u được thêm bằng Carthage .... ví dụ: "$ (PRO DỰ_DIR) / Carthage / Build / iOS"


7

Điều đáng chú ý là lỗi này có thể được tạo ra sau khi tự động tạo các mô hình CoreData trong đó Codegen không được đặt thành Thủ công / Không có.

Để sửa lỗi này trong Xcode 10, nhấp đúp chuột vào tệp xcdatamodeId của bạn và chọn từng thực thể của bạn và đặt Codegen thành Thủ công / Không có trong Lớp trong Trình kiểm tra mô hình dữ liệu của bạn.


Đúng! Và cũng làm một "Thư mục xây dựng sạch".
Dirk

6

Có vấn đề tương tự nhưng với các tập tin .swiftdoc.

Tôi có phần mở rộng và mục tiêu thử nghiệm đơn vị trong dự án. Và họ có cùng "Tên mô-đun sản phẩm" (PRODUCT_MODULE_NAME trong Cài đặt bản dựng) làm ứng dụng. Sau khi đặt tên vấn đề độc đáo đi.


6

Chuyển sang Xcode 10, lỗi như

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

có thể được giải quyết như sau:

Tới Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.


2
Trong trường hợp này, Xcode đang đánh dấu một vấn đề trong dự án, do đó, việc quay lại hệ thống xây dựng kế thừa sẽ chỉ ẩn nó ngay bây giờ. Báo cáo của Xcode về các loại vấn đề này là có chủ ý và tốt nhất là khắc phục sự cố. Để biết thêm thông tin, vui lòng xem help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

cái này đã làm điều đó cho tôi, thưa ngài là một người tài
giỏi

6

Đi vào Giai đoạn xây dựng dự án và xóa thông tin.plist khỏi các nguồn biên dịch. Nó sẽ loại bỏ vấn đề đó và dự án sẽ hoạt động trở lại.

nhập mô tả hình ảnh ở đây


6

Một trong những Cốc Cốc của tôi đã bị oud và gây ra vấn đề. Đã cập nhật pods và nó hoạt động tốt.

Tôi tin rằng nó có thể là SDK LivePerson


đối với tôi, tôi chỉ phải thực hiện 'cài đặt pod'
Pnar Sbi Wer 10/12/18

6

Vấn đề của tôi là ở Xcode 10 đang chạy trong Mojave và trong khi thử chạy thử nghiệm đơn vị mà tôi đã viết trước khi cập nhật lên XCode 10.

Trong trường hợp của tôi, tôi đã có vấn đề này trong khi chạy TestTargetmục tiêu của tôi . Để giải quyết, tôi đã phải:

  • Xóa một trong các phụ thuộc mục tiêu (trong TestTarget > build phases > Target Dependencies)

vì tôi có hai mục tiêu khác ngoài tôi TestTargetvà cả hai đều chạy cùng một tập lệnh và tạo / sao chép tệp tại một điểm nhất định.

Và điều đó mâu thuẫn với những gì đã được đề cập trong Ghi chú phát hành hệ thống xây dựng cho Xcode 10 tại đây :

Đó là một lỗi cho bất kỳ tệp riêng lẻ nào trong bản dựng được tạo bởi nhiều hơn một lệnh xây dựng. Ví dụ: nếu hai mục tiêu mỗi mục tiêu khai báo cùng một tệp đầu ra từ một giai đoạn kịch bản lệnh shell, hãy đưa ra tuyên bố của tệp đầu ra vào một mục tiêu.

CẬP NHẬT mới sau khi tôi cập nhật từ Xcode 10.1 lên 10.2

Vấn đề tương tự lại xuất hiện sau khi tôi cập nhật lên Xcode 10.2. Tôi có nhiều mục tiêu theo dự án: Target1Target2, và tôi đã giải quyết vấn đề này bằng cách:

  • điều hướng đến Edit Scheme > Build
  • xóa một trong những mục tiêu khỏi được xây dựng: bỏ chọn hộp kiểm Target1bên dưới Testvì tôi biết đã Target2nhậpTarget1

Cũng cần lưu ý ở đây, Target2hộp kiểm của vẫn được kiểm tra bên dướiTest


5

Tìm kiếm & Loại bỏ các tệp trùng lặp được tạo từ nhiều lệnh.

Ở đây, một Info.plisttập tin bổ sung nên được loại bỏ (Trong trường hợp của tôi là Contents.json)

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

Làm phiền. Tôi biết đó là hai lần cùng một tệp vì vậy tôi không bao giờ quan tâm đến việc nó được sao chép cái kia.
Martin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.