2015-04-06 19 views
6

Tôi đang cố gắng tạo một Cocoa Touch Framework mới cho iOS trong Swift, sử dụng một số thư viện từ Cocoapods, nhưng tôi không thể làm việc đó. Tôi biết có một số câu hỏi mở ra về điều đó, nhưng không ai trong số họ dường như để khắc phục vấn đề của tôi.Làm thế nào để sử dụng Cocoapods trong khuôn khổ Swift?

Đối với mục đích thử nghiệm, tôi vừa tạo một khung hình Cocoa Touch trống, cài đặt Cocoapod và thêm nhóm 'MBProgressHUD'. Sau đó, khi documented by Apple ('Nhập Mã từ bên trong cùng một khuôn khổ mục tiêu' phần), tôi nhập tiêu đề MBProgressHUD trong phần đầu chiếc ô của tôi như thế:

#import "MBProgressHUD.h" 

Nhưng khi tôi biên dịch, tôi có lỗi này:

include of non-modular header inside framework module 

Tôi đã đặt cài đặt 'Cho phép không có mô-đun bao gồm trong Mô-đun khung thành' thành Có, nhưng không có hiệu lực.

Có cách nào để sử dụng CocoaPods trong Swift Framework không?

+0

Tôi có vấn đề tương tự. Tôi đã kết thúc với việc sao chép mã nguồn của cocoapods vào khung công tác của tôi và đặt tiêu đề Objective-C thành công khai. Tôi đọc ở vài nơi nó có thể được thực hiện bởi sự giúp đỡ của các mô-đun nhưng tôi đã không thể làm như vậy. Nếu bạn có thể làm với các mô-đun Objective-C thì hãy cho tôi biết. – Abdullah

+0

Tôi thực sự cũng đã cố gắng để làm điều đó, nhưng tôi cần AWS SDK, trong đó sử dụng một số khuôn khổ bên ngoài, và tôi đã không thể tìm thấy mã nguồn cho họ. –

Trả lời

14

Tôi đã tìm thấy giải pháp, vì vậy tôi sẽ để giải pháp ở đây trong trường hợp người khác có cùng vấn đề.

Vì vậy, Cocoapods hỗ trợ iOS khuôn khổ kể từ phiên bản 0,36, và như it's said in their blog, sử dụng nó trong một khuôn khổ, bạn chỉ phải thêm dòng này trong Podfile của bạn:

use_frameworks! 

Sau đó, trong một khuôn khổ Swift , bạn không cần phải bao gồm các tệp .h trong tiêu đề ô của mình, nhưng bạn cần phải nhập mô-đun vào bất cứ nơi nào bạn cần, ví dụ:

import MBProgressHUD 

Làm việc với tôi, hy vọng điều này sẽ hữu ích!

+1

Tôi cũng cần thiết lập "cho phép phi mô-đun bao gồm trong các mô-đun khung" để có trong cài đặt xây dựng. –

+0

Điều này có vẻ không hoạt động nếu bạn cần hỗ trợ iOS7 và do đó không thể sử dụng use_frameworks! –

-1

Sử dụng 'tiêu đề cầu nối mục tiêu-C' chúng tôi có thể sử dụng khung mục tiêu-C trong Swift.

Tham khảo phần sau đây, Nó sẽ giải thích cách sử dụng khung Mục tiêu-C (Ví dụ: Parse framework) trong Swift.

Link1
Link2

+3

Bạn không thể sử dụng tiêu đề bắc cầu bên trong một khung công tác. –

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