2016-05-07 18 views
5

Tôi có một không gian làm việc Xcode 7.3 với ba dự án, Ứng dụng, FrameworkA và FrameworkB. Mỗi dự án có một mục tiêu duy nhất. Đây là iOS, do đó, các mục tiêu khung là Cocoa Touch Frameworks, có nghĩa là các khung chứa các thư viện được chia sẻ liên kết động.Làm thế nào để thiết lập phụ thuộc dự án Xcode với cấu hình xây dựng khác nhau?

Ứng dụng phụ thuộc vào Khung A phụ thuộc vào Khung B. Các phụ thuộc này đang hoạt động, có liên quan đến sản phẩm xây dựng của B và Ứng dụng liên kết đúng cách và nhúng cả hai khung A và B (vì bạn không thể có một khuôn khổ nhúng một khung khác, có vẻ như một gói ứng dụng cần liên kết và nhúng cả phụ thuộc trực tiếp và chuyển tiếp.)

Nhưng đây là vấn đề của tôi. Các khung A và B có các cấu hình xây dựng thông thường, Gỡ lỗi và Phát hành. Ứng dụng có cấu hình xây dựng bổ sung, LocalRelease, được kích hoạt bởi tác vụ Chạy xây dựng và được sử dụng để xây dựng một bản dựng được tối ưu hóa (như Bản phát hành) nhưng mã được ký với bản sắc nhà phát triển (như Debug).

Khi tôi cố gắng xây dựng ứng dụng với cấu hình xây dựng LocalRelease này, điều này sẽ phá vỡ bản dựng vì nó phá vỡ sự phụ thuộc vào khung A và B. Tôi tin rằng đó là vì các khung này không có cấu hình xây dựng LocalRelease nên Xcode không bao giờ đặt xây dựng sản phẩm vào thư mục LocalRelease-iphoneos, giống như với ứng dụng. Vì vậy, câu hỏi hẹp của tôi là, làm cách nào để định cấu hình cài đặt xây dựng để dự án có tên cấu hình xây dựng không chuẩn (như LocalRelease) có thể phụ thuộc vào các dự án khác chỉ sử dụng tên cấu hình xây dựng tiêu chuẩn không? Không. Tôi hy vọng có một cách đơn giản để làm điều này mà không yêu cầu thêm tập lệnh hoặc tập tin xcconfig, nhưng nếu đó là cần thiết tôi muốn hiểu tại sao.

Và câu hỏi rộng hơn của tôi là nói chung là một ý tưởng tồi khi giới thiệu các cấu hình xây dựng bổ sung bởi vì chúng không cho phép sự tương tác mượt mà của các phụ thuộc giữa các dự án trong không gian làm việc được chia sẻ? Tôi đã dẫn đến việc định nghĩa cấu hình thứ ba này vì tôi muốn một bản dựng được tối ưu hóa cục bộ, tôi không muốn định nghĩa một sơ đồ mới và tôi muốn lựa chọn kiểu xây dựng được thể hiện bằng các hành động xây dựng khác nhau (chạy, lược tả, phát hành) một sơ đồ duy nhất.

Nhưng có thể đây là cách sai để thực hiện. Miễn là trường hợp xây dựng các tên cấu hình sẽ tạo các đường dẫn thư mục sản phẩm xây dựng và các dự án phụ thuộc cần tìm các sản phẩm xây dựng của nhau trong một thư mục được chia sẻ, có vẻ như việc giới thiệu tên cấu hình xây dựng không chuẩn cho một dự án sẽ phá vỡ sự liên kết với phụ thuộc vào các dự án khác.

Trả lời

0

Tôi đã tăng vé Hỗ trợ kỹ thuật dành cho nhà phát triển với Apple về vấn đề này và nói chuyện với các kỹ sư Xcode tại WWDC.

Câu trả lời cho câu hỏi của riêng tôi

làm thế nào để cấu hình xây dựng các thiết lập để một dự án với tên cấu hình build chuẩn (như LocalRelease) có thể phụ thuộc vào các dự án khác mà chỉ sử dụng tên build cấu hình tiêu chuẩn?

Trả lời: không thể thực hiện được.

nói chung là ý kiến ​​tồi khi giới thiệu cấu hình xây dựng bổ sung vì chúng không cho phép tương tác mượt mà giữa các dự án trong không gian làm việc được chia sẻ?

Trả lời: có, đây là một ý tưởng tồi.

Vì vậy, việc tạo cấu hình xây dựng có tên mới không phải là cách thông minh để làm những gì tôi đang cố gắng làm. Thật không may, có vẻ như giải pháp "đơn giản nhất" là nắm bắt các tệp xcconfig và thay đổi tệp cấu hình theo cách thủ công cho loại điều này.

Các vấn đề liên quan