问题
I'm building an iOS application with Three20 integrated. My app is running very well even on Simulator or iDevices. However, when I try to build an Ad-hoc to send to my customer for testing. I got a very strange error
Ld /Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/IntermediateBuildFilesPath/AppFantator.build/Adhoc-iphoneos/AppFantator.build/Objects-normal/armv6/Fantator normal armv6 cd /Users/kulnova/Desktop/AppFantator setenv IPHONEOS_DEPLOYMENT_TARGET 4.0 setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -dynamiclib -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/BuildProductsPath/Adhoc-iphoneos -L/Users/kulnova/Desktop/AppFantator -F/Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/BuildProductsPath/Adhoc-iphoneos -filelist /Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/IntermediateBuildFilesPath/AppFantator.build/Adhoc-iphoneos/AppFantator.build/Objects-normal/armv6/Fantator.LinkFileList -nostdlib -dead_strip -ObjC -all_load -miphoneos-version-min=4.0 -framework QuartzCore -lThree20 -lThree20Core -lThree20Network -lThree20Style -lThree20UI -lThree20UICommon -lThree20UINavigator -framework Foundation -framework UIKit -framework CoreGraphics -framework SystemConfiguration -framework Security -framework MessageUI -o /Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/IntermediateBuildFilesPath/AppFantator.build/Adhoc-iphoneos/AppFantator.build/Objects-normal/armv6/Fantator
ld: library not found for -lThree20 collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
That error is shown as Apple Match-O Linker Error
I'm quite sure that I have followed strictly the manually process to integrate Three20 into the source code. "-ObjC" & "-all_load" are all added into the Linker.
I don't know if any of you get the same issue and do you have any clue to fix that problem?
Thank you very much for your reading and support.
回答1:
It might have happened because you need to add three20 to your adhoc target. try running the python script again with the target name:
python three20/src/scripts/ttmodule.py -p ProjectName/ProjectName.xcodeproj -c Adhoc Three20
If the build search headers already exists in your ad hoc target, try to quote the build paths in your target settings. If your target name has space in it, xcode might have issues building the three20 into the build folder.
"$(BUILT_PRODUCTS_DIR)/../three20"
"$(BUILT_PRODUCTS_DIR)/../../three20"
"../../libs/external/three20/Build/Products/three20"
回答2:
I'd like to provide a solution myself. That's kind of abstract, but what I have done is get back to the beginning point (just before the time I added the first thing of Three20 Lib into my app, I simple get back from my Git).
The error occurred before, and I didn't notice that my linked frameworks were in red (I thought that there would be some issue, but didn't know why).
Asking around, and no solution. I tried to do the process again and again, finally, I got all of my frameworks are now in black, no longer in red color. And everything just goes fine! I got the Adhoc to distribute to my client. (I have tried to post a screenshot here, but I'm not allow to, because I'm new user)
If you are in the same situation, and don't know how to solve it. I strongly recommend that you should do it again and again until you it the same situation.
来源:https://stackoverflow.com/questions/6503567/error-building-adhoc-for-three20-integrated-app-on-xcode-4