2013-10-09 8 views
6

मैं कुछ महीनों के लिए कुछ ऐप बना रहा हूं, और सुस्त रूप से एक्सकोड 5 इसे बनाना नहीं चाहता है। यह सिर्फ निम्न त्रुटि के साथ शिकायत करता है।टेस्टफ्लाइट लाइब्रेरीज़ और एक्सकोड 5 में कोई बदलाव नहीं आता है "ld: लाइब्रेरी -lTestFlight के लिए लाइब्रेरी नहीं मिली"

Ld build/Debug-iphonesimulator/appname.app/appname normal i386 
cd /Users/myname/proyectos/appname/dev/iOS/appname 
setenv IPHONEOS_DEPLOYMENT_TARGET 5.1 
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -L/Users/myname/proyectos/appname/dev/iOS/appname/build/Debug-iphonesimulator -L\"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/FlurryAnalytics\" -L\"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/SmartADServer\" -L\"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/TestFlight\" -F/Users/myname/proyectos/appname/dev/iOS/appname/build/Debug-iphonesimulator -F/Users/myname/proyectos/appname/dev/iOS/appname/appname/External -filelist /Users/myname/proyectos/appname/dev/iOS/appname/build/appname.build/Debug-iphonesimulator/Appname.build/Objects-normal/i386/appname.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=5.1 -weak_framework AdSupport -framework Security -framework MessageUI -framework Twitter -framework CoreLocation -weak_framework CoreMotion -framework AudioToolbox -framework AVFoundation -framework MediaPlayer -framework SystemConfiguration -framework MobileCoreServices -lz -framework CFNetwork -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -lTestFlight -framework comScore -lFlurry -Xlinker -dependency_info -Xlinker /Users/myname/proyectos/appname/dev/iOS/appname/build/appname.build/Debug-iphonesimulator/Appname.build/Objects-normal/i386/appname_dependency_info.dat -o /Users/myname/proyectos/appname/dev/iOS/appname/build/Debug-iphonesimulator/appname.app/appname 

ld: warning: directory not found for option '-L"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/FlurryAnalytics"' 
ld: warning: directory not found for option '-L"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/SmartADServer"' 
ld: warning: directory not found for option '-L"/Users/myname/proyectos/appname/dev/iOS/appname/appname/External/TestFlight"' 
ld: library not found for -lTestFlight 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

अगर मैं यह ठीक समझते हैं, यह testflight के बारे में शिकायत है, लेकिन मैं नहीं हफ्तों में इसके बारे में कुछ बदल गया है। यह पूरी तरह से संकलित।

मुझे कहना है कि मैंने प्रोजेक्ट पर एडोब एडीएमएस ट्रैकिंग लाइब्रेरी जोड़ने की कोशिश की है (लेकिन फिर इसके अतिरिक्त को पूर्ववत करना)। और उसके बाद, लिंकर त्रुटियां दिखाई देती हैं।

कोई संकेत? मैं पूरी तरह से खो गया और निराश हूँ। क्या मेरी परियोजना फाइलें भ्रष्ट हो सकती हैं? (चलो उम्मीद नहीं करते !!) ऐसे मामले में उन्हें ठीक करने की कोई उम्मीद?

अभिवादन

उत्तर

9

"समस्या हल हो गई"।

जाहिर है ऐसा लग रहा था (के रूप में ahwulf कहा, और मैं संदिग्ध) कि मेरी परियोजना पथ/पुस्तकालयों/हेडर जहां किसी भी तरह Xcode 5.

अंदर भ्रष्ट मेरी समाधान क्या था? अधिक अतिरिक्त परीक्षणों के बाद, मैंने प्रोजेक्ट (और डिस्क से ALSO) से कुछ स्पष्ट रूप से विरोधाभासी पुस्तकालयों (टेस्टफलाइट, फ्लोरी, इत्यादि ...) को भौतिक रूप से हटा दिया और स्पष्ट संकलन त्रुटियों की प्रतीक्षा करने के लिए संकलन करना शुरू कर दिया।

जब वे दिखाई दिए, तो मैंने फ़ाइलों को फिर से जोड़ा- एक्सकोड ने मुझे (एक समय में एक फ़ाइल/लाइब्रेरी) जोड़ने के लिए कहा, और फिर एक-एक करके, ये सभी त्रुटियां धीरे-धीरे गायब हो गईं। मेरी मूल लिंकिंग त्रुटि भी गायब हो गई, इसलिए मेरी परियोजना फिर से बनती है।

मुझे लगता है कि मुझे वास्तव में पता नहीं है कि मैंने क्या किया, लेकिन "यह काम किया"।

+4

एक्सकोड के तरीके अक्सर रहस्यमय होते हैं :-) – ahwulf

+0

यह देखने का एक आसान तरीका है .pbxproj फ़ाइल (मैंने गिट का उपयोग किया) में किए गए परिवर्तनों का एक अंतर देखना है। मैंने एक्सकोड को गलत तरीके से किए गए परिवर्तनों को त्याग दिया, और मैन्युअल रूप से मेरे नए पुस्तकालय के नए पथ में जोड़ा गया। – Stunner

+0

मैं पुष्टि कर सकता हूं कि मुझे वास्तव में पता नहीं है कि मैंने क्या किया लेकिन यह काम किया। – Ramsel

0

XCode 5 एक बग जहां यह अनायास निर्माण सेटिंग में एक अतिरिक्त निरपेक्ष पथ कहते हैं प्रतीत होता है। मुझे पहले से ही दो बार बिछाया।

+0

तो, अनुशंसित समाधान क्या है? मुझे बिल्ड सेटिंग्स-> पुस्तकालय/शीर्षलेखों में कोई अतिरिक्त (या अजीब) पथ नहीं दिख रहा है। बीटीडब्ल्यू: यह त्रुटि अचानक दिखाई दी, न कि क्योंकि मैं एक्सकोड 4.6 से 5.0 में बदल गया। मैं इस परियोजना को पिछले हफ्तों के लिए किसी भी समस्या के बिना बनाने के लिए एक्सकोड का उपयोग कर रहा हूं। – Isaac

+0

बिल्ड सेटिंग्स में लाइब्रेरी पथ अनुभाग देखें और लाइन पर डबल क्लिक करें। मेरे मामले में एक्सकोड एक अतिरिक्त लाइन जोड़ देगा जो एक चर पर आधारित नहीं था। ऐसा लगता है कि यह यादृच्छिक रूप से होता है लेकिन मुझे नहीं पता कि क्यों। यह सिर्फ एक यादृच्छिक मुद्दा नहीं था यादृच्छिक। – ahwulf

+0

ठीक है, मैंने उन कॉन्फ़िगरेशन अनुभागों पर कोई अतिरिक्त लाइन नहीं देखी है। मैंने स्पष्ट रूप से विरोधाभासी पुस्तकालयों को अनइंस्टॉल किया और फिर उन्हें फिर से इंस्टॉल किया। "यह अभी काम किया", वैसे भी धन्यवाद। – Isaac

0

मेरे पास एक बहुत ही अलग कारण के लिए समान त्रुटि थी।

टेस्टफ्लाइट 1.2.4 से टेस्टफलाइट 2.0.2 में अपग्रेड करने के बाद, बिल्ड ने अपनी मशीन पर काम किया, लेकिन एक अलग मशीन पर रात का निर्माण विफल रहा।

लाइब्रेरी नहीं मिला था, यह आसान कारण यह था कि यह नहीं किया गया था। हमारा .gitignore .a फ़ाइलों को अनदेखा करने के लिए सेट है, इसलिए libTestFlight.a शामिल नहीं किया गया था। एक्सकोड में प्रोजेक्ट खोलने से कमांड लाइन बिल्ड लॉग से यह अधिक स्पष्ट हो गया।

गिट एड-एफ ने इसे हल किया।

0

मुझे टेस्टफलाइट 2.0.2 जोड़ने के साथ एक ही समस्या का सामना करना पड़ा है। और यह Flurry (और कुछ अन्य) के साथ भी विरोधाभासी था। हटा रहा है (संदर्भ!) और टेस्टफ्लाइट के साथ सभी विरोधाभासी पुस्तकालयों को फिर से जोड़ना आखिरकार मेरी मदद करता है। लेकिन सबसे पहले लाइब्रेरी खोज पथ को मिटाना न भूलें।

1

इस स्थिति में मेरे लिए काम करने वाली कुछ चीजें बिल्ड चरणों में पुस्तकालय अनुभाग के साथ मेरी लिंक बाइनरी से 'libTestFlight.a' को निकालना था और मेरी परियोजना को साफ करना था और फिर इसे मेरे फ़ाइल पेड़ से इस अनुभाग में फिर से शुरू करना था। (बेशक यदि आप अपने ऐप में टेस्टफलाइट का उपयोग करना चाहते हैं तो सुनिश्चित करें कि आपके पास libz भी है।एक फ्रेमवर्क के रूप में dylib और संबंधित टेस्टफलाइट फ़ाइलों को आपके प्रोजेक्ट में भी शामिल किया गया है जैसे TestFlight.h, TeshFlight + AsyncLogging.h और TestFlight + ManualSession.h - यदि libz.dylib हटा दिया जाता है और फिर इसे पढ़ने से यह त्रुटि हो सकती है)। शुभकामनाएं कोड योद्धाओं!

+0

यह मेरे लिए काम किया - धन्यवाद! –

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