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.