2017-01-10 10 views
5

मुझे एक और प्रश्न मिला है जो समस्या और संभावित समाधानों के बारे में अधिक जानकारी देता है। ऐसा लगता है कि एक ज्ञात बग है जो भविष्य में सुधार के लिए एक विषय है।स्विफ्ट फ्रेमवर्क सबमिशन वास्तव में निजी कैसे बनाएं?

Objective C classes within an iOS Swift-based dynamic framework

मैं स्विफ्ट में एक रूपरेखा के विकास कर रहा हूँ और मैं कुछ ऑब्जेक्टिव-सी कोड ढांचे के अंदर उपयोग कर रहा हूँ। अब तक मेरी मॉड्यूल नक्शा इस तरह दिखता है:

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

    export * 

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

मेरी चिंता का विषय है कि MyTools.h से सभी API ढांचे के बाहर से दिखाई दे रहे हैं: उदाहरण के लिए, आप अपने आवेदन में आप import MyModule Cocoapods का उपयोग कर, तो ढांचा स्थापित करता है, तो (MyModule.Private), आप MyTools.h तक पहुंचने में सक्षम हैं जो वांछनीय और अनावश्यक नहीं है। क्या फ्रेमवर्क के बाहर से MyTools अदृश्य बनाने का कोई तरीका है?

पीएस। मैं Cocoapods का उपयोग ढांचे वितरित करने के लिए, यहाँ मेरी podspec (सबसे महत्वपूर्ण हिस्सा):

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}' 

पीएसएस। मेरा छतरी हेडर MyTools.h

PSSS आयात नहीं करता है। मुख्य मॉड्यूल से हेडर को बाहर करने का प्रयास किया:

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

    export * 
    exclude header "MyTools.h" 

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

कोई भाग्य नहीं।

+0

आप मॉड्यूल से 'exclude' निजी हैडर करने की कोशिश की है? – user28434

+1

@ user28434 आपका मतलब मॉड्यूल मानचित्र में है? बस कोशिश की। मदद नहीं करता है। –

+0

क्या आप फिर कोशिश कर सकते हैं, लेकिन बिना 'स्पष्ट मॉड्यूल' के? – user28434

उत्तर

2

मुझे एक और प्रश्न मिला जो समस्या और संभावित समाधान (जो हालांकि काम नहीं करता) के बारे में अधिक जानकारी देता है। ऐसा लगता है कि एक ज्ञात बग है जो भविष्य में सुधार के लिए एक विषय है।

Objective C classes within an iOS Swift-based dynamic framework

संबंधित मुद्दे