2014-11-06 18 views
12

Tôi đang cố gắng xây dựng một Khung công tác iOS (Test.framework) bằng mẫu mới được cung cấp bởi Xcode 6 để tạo các khung cảm ứng Cocoa. Khuôn khổ có các phụ thuộc khác nhau (như AFNetworking hoặc FacebookSDK) được chỉ định trong một Podfile. Tôi không muốn phụ thuộc được bao gồm trong khuôn khổ, tôi chỉ muốn liên kết với họ.Làm thế nào để xây dựng một khung công tác iOS với các thư viện CocoaPods được liên kết yếu

Vấn đề là khi tôi xây dựng khung, libPods.a được liên kết và bao gồm. Hỏi: Làm thế nào tôi có thể liên kết với thư viện libPods.a, nhưng không đưa nó vào khung công tác?


Thông tin chi tiết:

Tôi đã đọc về liên kết yếu: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html Nhưng tôi không có nhiều kinh nghiệm thi đấu với các thiết lập dự án, vì vậy tôi là một không phải là một chuyên nghiệp.

Tôi đã cố gắng đặt libPods.a là "Tùy chọn" nhưng không có gì thay đổi, phụ thuộc vẫn được bao gồm.

tôi đã cố gắng để loại bỏ các libPods.a từ phần "Liên kết Binary Với thư viện" trong giai đoạn xây dựng, nhưng tôi nhận được lỗi này (sau khi làm sạch thư mục dự án và xây dựng lại):

ld: library not found for -lPods-MyFramework-AFNetworking 

Tôi cố gắng để loại bỏ tất cả những lá cờ từ "Flags Linker khác", nhưng nó mang lại cho tôi những biểu tượng không xác định:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_FBSession", referenced from: 
     objc-class-ref in TestClass.o 
ld: symbol(s) not found for architecture armv7 

đây là mã nguồn cho một dự án sạch với các thư viện bao gồm: https://www.dropbox.com/sh/0ymuzw6kiagz02j/AABzyHiZVaQQvBEnjBgRBq3ua?dl=0

Trả lời

1

Tôi chưa thể nhận xét nên tôi sẽ trả lời ở đây. Tôi nghĩ bạn không thể làm điều đó. Cocoapods tạo một thư viện tĩnh không phải là một thư viện động nên tất cả các mã nên ở đó khi bạn biên dịch và được nhúng trong khung công tác của bạn.

Cocoapods documentation, chuyển đến "Điều gì đang diễn ra sau hậu trường?" Giải thích chi tiết

Nếu bạn muốn tập hợp một số cấu hình cơ bản cho một số nhóm thông thường của mình, có lẽ cách tốt nhất để thực hiện là tạo một cocoapod tùy chỉnh với những cái khác làm phụ thuộc. Bằng cách đó bạn có thể tin tưởng vào các bản cocoapod để quản lý các phiên bản và có mã được cập nhật theo sở thích của bạn. Tôi đang sử dụng một cách tiếp cận tương tự như bản thân mình và tôi khá hài lòng với kết quả.

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