Dự án lưu trữ trong Xcode tạo không chính xác gói đa ứng dụng


170

Lưu trữ dự án của tôi trong Xcode là tạo ra một gói đa ứng dụng, thay vì gói mục tiêu chính của tôi để phát hành, đó là điều tôi muốn. Cụ thể, khi tôi xác thực kho lưu trữ của mình trong Trình tổ chức, nó sẽ cho tôi thông báo:

"[tên dự án] không chứa một ứng dụng gói đơn lẻ hoặc chứa nhiều sản phẩm. Vui lòng chọn một kho lưu trữ khác hoặc điều chỉnh lược đồ của bạn để tạo một ứng dụng gói đơn lẻ."

Có vẻ như có một số cài đặt trong sơ đồ cần được điều chỉnh, nhưng tôi không thể tìm ra nguyên nhân nào khiến các mục tiêu khác được đưa vào.

Nhân tiện, tôi đang sử dụng Xcode 4.0.


Câu trả lời:


251

OK, trả lời câu hỏi của riêng tôi. Hóa ra đó là một vấn đề với các dự án phụ thuộc trong XCode 4. Nếu điều này xảy ra với bạn, hãy đi qua Cài đặt bản dựng cho tất cả các dự án phụ thuộc của bạn (ví dụ: thư viện tĩnh) và đảm bảo rằng tùy chọn "Bỏ qua cài đặt" trong "Triển khai" được đặt thành CÓ.

Chi tiết hơn tại đây: http://flakasoft.com/developer-tips/xcode-4-orms-solution-for-archiving-build-with-static-l Library /


1
Ngài là người hùng của tôi! Tôi sẽ không dễ dàng tìm thấy điều đó: P
Andrew Natoli

6
Thay đổi thành "CÓ" ... vẫn không thành công. :(
Joe D'Andrea

8
Bỏ qua Cài đặt cần được đặt thành Có trên thư viện tĩnh, không phải Dự án hoặc Mục tiêu của bạn. Bài đăng trên blog này về phân phối ad hoc áp dụng như nhau cho các bản dựng cửa hàng ứng dụng và có một phần trên Skip Install: nhạcgeometry.com/?p=1237
jj0b

8
Một số thư viện (như CorePlot) cũng yêu cầu bạn thay đổi phần Sao chép tiêu đề trong giai đoạn xây dựng của họ. Vì vậy, hãy chắc chắn rằng bạn cũng nhìn vào câu trả lời của Ryan.
Tim Swast

2
Tôi cũng phải di chuyển tất cả các tệp tiêu đề (của thư viện tĩnh) trong Mục tiêu "Xây dựng giai đoạn", trong "Sao chép tiêu đề" Tôi đã chuyển chúng từ "Công khai" sang "Dự án".
Hlung

151

Hai điều cần được khắc phục trong (các) dự án phụ để giải quyết vấn đề này:

  1. Như Jared đã phát hiện ra, trong Cài đặt bản dựng, đặt "Bỏ qua cài đặt" thành "Có"
  2. Trong phần Xây dựng giai đoạn, kiểm tra phần Sao chép tiêu đề. Nếu có bất kỳ tệp tiêu đề nào được liệt kê là Riêng tư hoặc Công khai, hãy kéo chúng xuống phần Dự án.

7
Tôi thực sự yêu bạn anh chàng! : D
arielcamus

5
Tôi đã sửa tất cả các cài đặt "Bỏ qua cài đặt" nhưng cái tôi thiếu là phần Sao chép tiêu đề, Cảm ơn!
Thomas Einwaller

2
Tôi đang sử dụng ba20. Dự án này có các tệp tiêu đề được liệt kê là Riêng tư hoặc Công khai nhưng nếu tôi di chuyển chúng trong phần dự án thì nó không được biên dịch. Bất kì lời đề nghị nào?
Gió nhẹ

19
Ngừng sử dụng Three20, ngay cả khi bạn đã khắc phục được sự cố Xcode này. Tôi hoàn toàn nghiêm túc!
Adam Eberbach

2
Nếu bạn có nhiều dự án thư viện như chúng tôi và gặp khó khăn trong việc tìm hiểu Skip Install của thư viện nào được đặt thành Không hoặc tệp tiêu đề nào gây ra sự cố, hãy thử điều này: Chọn tệp lưu trữ và nhấp vào nút Phân phối. Chọn tùy chọn 'Lưu sản phẩm được xây dựng'. Nhấn Next và Save. Duyệt thư mục đã tạo trong Finder. Thư mục con 'thư viện' sẽ xác định các thư viện mà bạn cần để đặt Cài đặt Bỏ qua thành Có. Usr / local / include sẽ xác định các tệp tiêu đề thủ phạm bạn cần chuyển từ Công khai sang Dự án.
Sunil Gowda

10

Tôi đã làm như sau để làm cho nó hoạt động:

  1. đối với thư viện tĩnh ba20, tôi đã sử dụng cocoapod để bao gồm các tệp trong dự án chính .. nó đã loại bỏ tất cả những rắc rối mà ba20 đã mang lại cho tôi (và chúng rất nhiều ..) btw tôi đã thử thay thế ba20 bằng Nimbus .. nhưng Nimbus thiếu một số tính năng mà dự án của tôi đang sử dụng ba20 cho .. vì vậy Nimbus không hữu ích.
  2. đặt bỏ qua cài đặt thành có trong cài đặt bản dựng cho tất cả các dự án phụ / thư viện tĩnh khác và chuyển tiêu đề sao chép từ công khai sang dự án theo các giai đoạn xây dựng
  3. quan trọng nhất: trong các thư viện phụ .. trong giai đoạn xây dựng, tôi đảm bảo rằng đích của tệp sao chép đã được thay đổi từ Absolute paththành products directory.

và đó là nó!

gợi ý: để có ý tưởng về các tệp vi phạm khiến tệp lưu trữ của bạn tạo tệp lưu trữ thay vì ipa làm điều này:

  1. Chọn kho lưu trữ và nhấp vào nút Phân phối.
  2. Chọn tùy chọn 'Lưu sản phẩm được xây dựng'.
  3. Nhấn Next và Save.
  4. Duyệt thư mục đã tạo trong Finder.
  5. Thư mục con 'thư viện' sẽ xác định các thư viện mà bạn cần để đặt Cài đặt Bỏ qua thành Có.
  6. trong một số trường hợp usr/local/includesẽ xác định các tệp tiêu đề thủ phạm mà bạn cần chuyển từ Công khai sang Dự án hoặc các tệp mà bạn phải thay đổi từ đường dẫn tuyệt đối sang thư mục sản phẩm. nhưng thư mục đó (tức là usr / local / include) thay đổi tùy theo cấu trúc thư mục thư viện con của bạn

Tôi sẽ cung cấp cho bạn 10 ngôi sao, nr của các giải pháp tôi đọc cho đến khi tìm ra giải pháp giúp ích. Tôi chỉ cần nhấp vào các tệp tôi tìm thấy ở bước 6 và đánh dấu chúng trong khu vực thành viên mục tiêu từ công cộng đến dự án, không cần bất cứ điều gì.
Cristi Băluță

rất vui vì tôi có thể giúp! lý do tôi viết nó lên là vì tôi đã trải qua những gì bạn đã làm .. tôi đọc như có thể 20 câu trả lời trước khi tôi bắt đầu hiểu chuyện gì đang xảy ra .. :)
abbood

Ai đó có thể vui lòng giải thích bước 6? Tôi không hiểu "usr / local / include sẽ xác định các tệp tiêu đề thủ phạm" nghĩa là gì và tôi nên kiểm tra các tệp đó ở đâu
Andrei F

@ CristiBăluță Làm thế nào chính xác bạn đã tìm thấy các tập tin và nơi trong các cài đặt / menu? Tôi có cùng vấn đề với XCode 11.2.1 và tôi không có nhiều kinh nghiệm với xcode. Cảm ơn bạn.
Andrei F

Những gì tôi tìm thấy là / usr / local / include là một thư mục bên trong kho lưu trữ (cùng với thư mục thư viện), nhưng kho lưu trữ chung của tôi không có bất kỳ thứ nào trong số đó
Andrei F

1

Tôi đã có một giai đoạn xây dựng tập tin sao chép mà tôi quên (đã sao chép một số phông chữ vào ~ / Library / Fonts). Sau khi loại bỏ giai đoạn xây dựng này, nó hoạt động tốt.

Nếu không có câu trả lời nào ở trên khắc phục được sự cố, tôi khuyên bạn nên xuất kho lưu trữ cho người tìm và xem xét những gì bên ngoài gói .app.

Chỉnh sửa: xem https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:--'Does-not-contain-a-single-bundle '


0

tôi cũng gặp vấn đề tương tự "[tên dự án] không chứa một ứng dụng gói đơn lẻ hoặc chứa nhiều sản phẩm. Vui lòng chọn một kho lưu trữ khác hoặc điều chỉnh lược đồ của bạn để tạo một ứng dụng gói đơn lẻ." sau khi nâng cấp lên xcode5.

vấn đề là một loạt các trường trong cài đặt bản dựng của tôi để 'phát hành' bị trống. Tôi đoán xcode4 tự động chuyển sang cài đặt gỡ lỗi.

anwyays - cách khắc phục của tôi là tìm tất cả các cài đặt 'phát hành' trống và đặt chúng ở cài đặt gỡ lỗi. Cụ thể đó là cài đặt tệp Info.plist.

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.