2012-12-11 28 views
7

मैं एक आईपैड एप्लिकेशन विकसित कर रहा हूं जो दो स्थैतिक उपयोगिता पुस्तकालयों (libBFSDK & libBetfair-Platform) पर निर्भर करता है। दोनों स्थिर पुस्तकालयों में AFNetworking शामिल हैं।एक्सकोड एकाधिक स्टेटिक लाइब्रेरीज़ और डुप्लिकेट सिंबल

duplicate symbol _OBJC_METACLASS_$_AFImageCache in: 
/Users/osheas/Library/Developer/Xcode/DerivedData/Betfair-gnnjnwtovdmtoxakuxbjyvetciyy/Build/Products/Debug-iphonesimulator/libBFSDK.a(UIImageView+AFNetworking.o) 
/Users/osheas/Library/Developer/Xcode/DerivedData/Betfair-gnnjnwtovdmtoxakuxbjyvetciyy/Build/Products/Debug-iphonesimulator/libBetfair-Platform.a(UIImageView+AFNetworking.o) 
ld: 86 duplicate symbols for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

UIImageView + AFNetworking AFNetworking का हिस्सा है: जब मैं अपने आईपैड आवेदन में दो स्थिर पुस्तकालयों शामिल करने के लिए प्रयास करते हैं, मैं एक लिंक करने में त्रुटि की तरह मिलता है। दोनों स्थिर पुस्तकालयों में AFNetworking शामिल हैं। नतीजतन, मुझे UIImageView + AFNetworking के लिए डुप्लिकेट प्रतीकों मिलते हैं।

किसी के पास इसके लिए कामकाज पर विचार हैं? मेरे पास दो स्थिर पुस्तकालयों के लिए स्रोत कोड तक पहुंच है, लेकिन मुझे अभी भी इस समस्या को हल करने का तरीका नहीं है।

धन्यवाद & अगर आप किसी भी अन्य विवरण की जरूरत है तो कृपया मुझे बताएं,

शॉन

पुनश्च - FWIW मैं Xcode 4.5 & चल रहा हूँ मैं आईओएस 4.x उपकरणों के लिए तैनात करने के लिए सक्षम होना चाहिए।

+0

निश्चित रूप से उत्तर केवल उप परियोजना में शीर्षलेख आयात करना है? स्थिर पुस्तकालयों से जुड़ना केवल आईपैड ऐप में ही किया जाएगा? –

उत्तर

-1

आप _AFImageCache को अपने प्रोजेक्ट में फ़ाइल को टॉव फ़ाइल करते हैं और एक को हटाते हैं।

इससे आपकी मदद मिल सकती है।

+0

मुझे लगता है कि आप AFImageCache के बजाय UIImageView + AFNetworking का मतलब मान रहे हैं? आवेदन में UIImageView + AFNetworking के दो संस्करण हैं। प्रत्येक स्थिर पुस्तकालय में AFNetworking शामिल है जिसमें UIImageView + AFNetworking शामिल है। मैं यह सुनिश्चित करने के लिए प्रश्न अपडेट करूंगा कि यह अधिक स्पष्ट है। – seanoshea

3

चूंकि आपके पास स्थैतिक libs के स्रोत तक पहुंच है, इसलिए आप प्रीप्रोसेसर का उपयोग एएफनेटवर्किंग प्रतीकों का नाम अद्वितीय करने के लिए कर सकते हैं।

अपने "अन्य सी झंडे" करने के लिए प्रत्येक दो प्रतियों प्रतीक के लिए झंडे जोड़े प्रारूप

-AFNetworkingSymbol=UniqueAFNetworkingSymbol

यह अभी भी डुप्लिकेट कोड का परिणाम देगा के साथ की स्थापना का निर्माण, लेकिन आप बिना AFNetworking की कई प्रतियां की अनुमति चाहिए स्रोत को संशोधित करना

More info

आदर्श रूप में, सबसे खुला स्रोत Obj सी कोड CocoaPods तरह समाधान में चले जाएंगे और सिर्फ उन्हें bundling के बजाय निर्भरता निर्दिष्ट करें।

+0

अच्छा बिंदु। मैं पिछले महीने या तो कोकोपोड्स का उपयोग कर रहा हूं और पुस्तकालयों के बीच निर्भरताओं को समझने के लिए इसे बहुत उपयोगी पाया है। – seanoshea

+0

मैं एक एसडीके में सभी प्रतीकों के लिए ऐसा करने का एक तरीका ढूंढ रहा हूं, जब भी मैं एक नई फाइल जोड़ता हूं, हर बार जब मैं एक नई फाइल जोड़ता हूं, ताकि हम यह सुनिश्चित कर सकें कि कभी नामकरण नहीं होगा । –

+0

आपको प्रत्येक कथन-डीडीएफएन से पहले-डी डालना चाहिए .... – gubble

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

  • कोई संबंधित समस्या नहीं^_^