2017-01-10 20 views
5

Tôi đã tìm thấy một câu hỏi khác mang lại nhiều chi tiết hơn về vấn đề và giải pháp khả thi. Có vẻ như có một lỗi đã biết, đó là một chủ đề cho những cải tiến trong tương lai.Làm thế nào để làm cho một submodule khuôn khổ Swift thực sự riêng tư?

Objective C classes within an iOS Swift-based dynamic framework

Tôi đang phát triển một khuôn khổ trong Swift và tôi đang sử dụng một số mã Objective-C trong khuôn khổ. Cho đến nay bản đồ mô-đun của tôi trông như thế này:

framework module MyModule { 
    umbrella header "MyModule-umbrella.h" 

    export * 

    explicit module Private { 
     header "MyTools.h" 
    } 
} 

mối quan tâm của tôi là tất cả các API từ MyTools.h có thể nhìn thấy từ bên ngoài khuôn khổ: ví dụ, nếu bạn cài đặt khuôn khổ sử dụng Cocoapods, sau đó bạn import MyModule vào ứng dụng của bạn (không phải MyModule.Private), bạn có thể truy cập MyTools.h mà không phải là mong muốn và dự phòng. Có cách nào để làm cho MyTools vô hình từ bên ngoài khung công tác không?

PS. Tôi sử dụng Cocoapod để phân phối khung, đây là podspec của tôi (phần quan trọng nhất):

s.module_map = 'Pod/MyModule.modulemap' 
s.frameworks = 'CoreData', 'CoreTelephony', 'SystemConfiguration' 
s.resources  = 'Pod/Classes/MessageStorage/*.xcdatamodeld' 
s.public_header_files = 'Pod/Classes/**/*.h' 
s.private_header_files = 'Pod/Classes/MyTools/**/*.h' 
s.source_files = 'Pod/Classes/**/*.{h,m,swift}' 

PSS. Tiêu đề ô của tôi không nhập MyTools.h

PSSS. Chỉ cố gắng loại trừ tiêu đề khỏi mô-đun chính:

framework module MyModule { 
    umbrella header "MyModule-umbrella.h" 

    export * 
    exclude header "MyTools.h" 

    explicit module Private { 
     header "MyTools.h" 
    } 
} 

Không may mắn.

+0

Bạn đã cố gắng loại trừ 'tiêu đề riêng tư 'khỏi mô-đun chưa? – user28434

+1

@ user28434 Bạn có nghĩa là trong bản đồ mô-đun? Chỉ cần thử nó. Không giúp được gì. –

+0

Bạn có thể thử lại, nhưng không có 'mô-đun rõ ràng' nào cả? – user28434

Trả lời

2

Tôi đã tìm thấy một câu hỏi khác mang lại nhiều chi tiết hơn về vấn đề và giải pháp khả thi (tuy nhiên không hoạt động). Có vẻ như có một lỗi đã biết, đó là một chủ đề cho những cải tiến trong tương lai.

Objective C classes within an iOS Swift-based dynamic framework

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