2015-04-30 5 views
7

मैं एक स्विफ्ट ढांचा बनाना चाहता हूं और इसे अपनी अन्य परियोजनाओं में आयात करना चाहता हूं। जाहिर है, मैं प्रश्न में ढांचे का उपयोग करके अपना कोड साझा करना चाहता हूं। मैं केवल एक संबंधित सवाल यहाँस्विफ्ट कोड साझा करना और कोड को एक ही स्थान पर बनाए रखना [ढांचा/पुस्तकालय]

Create and import swift framework

और इंटरनेट जो मेरे लिए कुछ भी उपयोगी उत्पादन करने के लिए नहीं लगता था पर कुछ ट्यूटोरियल खोजने के लिए सक्षम था। तो यहाँ मैं क्या है:

  1. एक XCode प्रोजेक्ट ( CocoaPods द्वारा उत्पन्न एक .xcworkspace कार्यक्षेत्र के साथ) वास्तविक अनुप्रयोग है कि ढांचे का उपयोग करना चाहिए है।
  2. ए "कोको टच फ्रेमवर्क" एक्सकोड प्रोजेक्ट जो फ्रेमवर्क है।

आवेदन (1) में ढांचे (2) को शामिल करने के लिए क्या कदम हैं?

मैंने उपरोक्त लिंक किए गए प्रश्न में वर्णित विधि का उपयोग करने का प्रयास किया, लेकिन इमारत पर, यह कहता है कि यह वास्तविक स्रोत फ़ाइलों को नहीं ढूंढता है।

< unknown >:0: error: no such file or directory: '/path/to/project/MyFrameWork/SomeClass.swift'

कहाँ /path/to/project/ स्पष्ट रूप से सिर्फ एक प्लेसहोल्डर है ...

बाउंटी लक्ष्य:

Propose a viable option how I could share a set of classes in an efficient way. I need to be able to reuse code from one project easily and be able to maintain this code in one place. It also needs to be compatible with iOS7, so dynamic libraries probably won't do it for me. Any workflow that would allow me to do what I described above will be a winner. Thanks

उत्तर

2

साथ ढांचा बना सकते हैं, यहाँ एक मैं क्या किया पर नजर है:

कारण इस तथ्य के कि - इस लेखन के समय - iOS8 प्रयोग किया जाता है मोबाइल उपकरणों के साथ ऐप्पल उपयोगकर्ताओं के बारे में 81% द्वारा, मुझे लगा कि मैं कोकोपोड्स मार्ग पर जाऊंगा। (मैं इसका उल्लेख करता हूं क्योंकि आईओएस 8 को गतिशील स्विफ्ट पुस्तकालयों का उपयोग करने की आवश्यकता है) और क्योंकि मैंने अपनी परियोजना के साथ शुरू किया है, मैंने सोचा, क्यों न सिर्फ आईओएस 8 पर शुरू करें ...

मैंने मूल रूप से कुछ नया करके एक नई लाइब्रेरी बनाई उन पंक्तियों (सूचना: CocoaPods अपने सिस्टम पर स्थापित करने की आवश्यकता है!)

pod lib create <YourLibraryName> 

और सामग्री .podspec फ़ाइल है कि इस प्रक्रिया में बनाया गया था उसके अनुसार बदल रहा है।

अपनी लाइब्रेरी के लिए बनाए गए फ़ोल्डर में अपना स्रोत कोड जोड़ें (या source_folder जिसे आपने .podspec फ़ाइल में निर्दिष्ट किया है) और इससे एक गिट रेपो बनाएं। अब आप

pod 'YourFrameWork', :git => 'https://path/to/your/repo.git' 

जोड़कर कोकोआपोड का उपयोग करने में सक्षम होंगे। उम्मीद है कि यह मदद करता है।

0

अगर यह जवाब है, लेकिन मैं वैसे भी यह बता देंगे मैं नहीं जानता। एक्सकोड में फ्रेमवर्क प्रोजेक्ट बनाएं और इसे जिथब पर रखें। तो फिर तुम दूसरों की मदद करने की खातिर Carthage

+0

आपका जवाब मुस्तफा के लिए धन्यवाद, मैं वास्तव में है कि यह केवल का समर्थन करता है ऐसा करने पर विचार किया ... जब तक मुझे पता चला iOS8 ऊपर की तरफ ... –

+0

तो फिर वहाँ कोई विकल्प नहीं है तुम्हारे लिए। क्योंकि आप स्थैतिक स्विफ्ट लाइब्रेरी नहीं बना सकते हैं। – mustafa

+0

क्या आप निश्चित हैं? मुझे बस अपनी परियोजनाओं के बीच कोड साझा करने में सक्षम होना चाहिए, क्यों भगवान के नाम पर यह इतना कठिन/असंभव है :(? –

0

Here मुझे मिला एक अच्छा ट्यूटोरियल है।

आपको क्या करना है?

[sudo] gem install cocoapods --pre 

.podspec फ़ाइल

Pod::Spec.new do |s| 
    s.name = 'MotionKit' 
    s.version = '0.6' 
    s.license = 'MIT' 
    s.summary = 'CoreMotion Made insanely simple' 
    s.homepage = 'https://github.com/MHaroonBaig/MotionKit' 
    s.social_media_url = 'https://twitter.com/PyBaig' 
    s.authors = { 'Haroon Baig' => '[email protected]' } 
    s.source = { :git => 'https://github.com/MHaroonBaig/MotionKit.git', :tag => s.version } 

    s.ios.deployment_target = '8.0' 

    s.source_files = 'MotionKit/*.swift' 

    s.requires_arc = true 
end 

अब टेस्ट अपने नव निर्मित Pod

अब समय अपने फली परीक्षण करने के लिए, यकीन है कि यह ठीक काम करता है बनाने के लिए है। अपनी टेस्ट प्रोजेक्ट में तुरंत पॉड फ़ाइल बनाएं और इसमें निम्न पंक्ति जोड़ें।

pod '[s.name]', :git => '[s.source]' 
अपने मामले में

:

pod 'MotionKit', :git => 'https://github.com/MHaroonBaig/MotionKit.git' 
संबंधित मुद्दे