2015-01-09 7 views
7

एक्सकोड 6 या उच्चतम के साथ बनाए गए आईओएस अनुप्रयोग उनके भीतर गतिशील आईओएस ढांचे को एम्बेड करने की अनुमति देते हैं। मैं एक साझा ढांचा तैयार कर रहा हूं और एक उप-ढांचा एम्बेड करना चाहता हूं। मैं यह कैसे हासिल कर सकता हूं?एक ढांचे के भीतर एक ढांचे को एम्बेड करना (आईओएस 8+)

नोट: यह संभव है और है उत्पादन में (CocoaPods में स्विफ्ट चौखटे के साथ, उदाहरण के लिए) का उपयोग किया जा रहा है।

उत्तर

6

उत्तर मिला। यहाँ यह कैसे किया है:

  • नेविगेट लक्ष्य को>बिल्ड के चरण
  • छोटे "+" आइकन पर क्लिक करें और "नया भागो स्क्रिप्ट बनाएँ चरण"
  • निम्नलिखित पेस्ट करें:

    cd $BUILT_PRODUCTS_DIR 
    
    mkdir $PROJECT_NAME.framework/Frameworks &>/dev/null 
    
    for framework in *.framework; do 
        if [ $framework != $PROJECT_NAME.framework ]; then 
         cp -r $framework $PROJECT_NAME.framework/Frameworks/ &>/dev/null 
        fi 
    done 
    
+3

यह काम, लेकिन सिर्फ जोड़ने के लिए है कि एक रूपरेखा जो उप एम्बेड करता है -फ्रेमवर्क को "छतरी ढांचे" के रूप में जाना जाता है और ऐप्पल द्वारा निराश किया जाता है। इस सवाल को एक उत्कृष्ट उत्तर के लिए देखें कि यह क्यों मामला है: http://stackoverflow.com/questions/7365578/why-are-umbrella-frameworks-discouraged आपको क्या करना चाहिए: उप-ढांचे को एम्बेड करने के बजाय, आपको चाहिए अधिमानतः अपनी संरचनाओं को अलग-अलग निर्भरताओं के साथ ही वितरित करें। –

+1

@ जोनाथन एलिस यह हमेशा आदर्श नहीं है। उदाहरण के लिए मैंने WebP.framework का उपयोग करके वेबपी समर्थन जोड़ा है। मैं नहीं चाहता कि मेरा मुख्य ऐप, फोटो संपादन एक्सटेंशन और iMessage एक्सटेंशन में सभी को WebP.framework की एक अलग प्रति शामिल करना है। अंतरिक्ष अंतरिक्ष ... – jjxtra

6

@Vatsal Manot के जवाब मेरे लिए काफी मददगार था। मैंने इसे थोड़ा सा संशोधित किया और कॉपी किए गए एम्बेडेड ढांचे पर हस्ताक्षर करने की आवश्यकता भी थी। मेरी लिपि नीचे है।

cd $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/Custom.framework/Frameworks 
for framework in *.framework; do 
    mv $framework $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/ 
    /usr/bin/codesign --force --sign "iPhone Developer" --preserve-metadata=identifier,entitlements --timestamp=none $BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Frameworks/$framework 
done 
1

एक छाता फ्रेमवर्क है कि एक उप-फ्रेमवर्क शामिल बनाने के लिए आप कदम-दर-चरण मार्गदर्शिका यहां नीचे लिखा पालन कर सकते हैं: Umbrella framework

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