在XCode 4上为Three20集成应用程序构建Adhoc时出错

时间:2011-06-28 08:20:05

标签: xcode4 linker-errors three20 ad-hoc-distribution

我正在构建一个集成了Three20的iOS应用程序。即使在Simulator或iDevices上,我的应用程序也运行良好。但是,当我尝试构建一个Ad-hoc发送给我的客户进行测试时。我收到了一个非常奇怪的错误

  

Ld的   /Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/IntermediateBuildFilesPath/AppFantator.build/Adhoc-iphoneos/AppFantator.build/Objects-normal/armv6/Fantator   正常的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 /斌:/选择/ local / bin目录:在/ usr /本地/ 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 /用户/ kulnova /库/开发商/ Xcode中/ DerivedData / AppFantator-etlvrvoqzixizqbdblqhgefckwbb / ArchiveIntermediates / AppFantator / BuildProductsPath /即席-的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   安全框架MessageUI -o   /Users/kulnova/Library/Developer/Xcode/DerivedData/AppFantator-etlvrvoqzixizqbdblqhgefckwbb/ArchiveIntermediates/AppFantator/IntermediateBuildFilesPath/AppFantator.build/Adhoc-iphoneos/AppFantator.build/Objects-normal/armv6/Fantator

     

ld:找不到-lThree20的库   collect2:ld返回1退出状态   命令   /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2   退出代码1失败

该错误显示为 Apple Match-O链接器错误

我很确定我严格遵循手动过程将Three20集成到源代码中。 “-ObjC”& “-all_load”全部添加到链接器中。

我不知道你们中是否有人遇到同样的问题,你有什么线索可以解决这个问题吗?

非常感谢您的阅读和支持。

2 个答案:

答案 0 :(得分:0)

可能发生了这种情况,因为您需要向adhoc目标添加三个。尝试使用目标名称再次运行python脚本:

python three20/src/scripts/ttmodule.py -p ProjectName/ProjectName.xcodeproj -c Adhoc Three20

如果您的ad hoc目标中已存在构建搜索标头,请尝试在目标设置中引用构建路径。如果您的目标名称中包含空格,则xcode可能会在构建文件夹中构建three20时遇到问题。

"$(BUILT_PRODUCTS_DIR)/../three20"
"$(BUILT_PRODUCTS_DIR)/../../three20"
"../../libs/external/three20/Build/Products/three20"

答案 1 :(得分:-1)

我想自己提供一个解决方案。这有点抽象,但我所做的就是回到起点(就在我将Three20 Lib的第一个内容添加到我的应用程序之前,我从Git中恢复过来)。

错误发生在之前,我没有注意到我的链接框架是红色的(我认为会有一些问题,但不知道为什么)。

询问周围,没有解决方案。我试图一次又一次地做这个过程,最后,我得到的所有框架现在都是黑色的,不再是红色。一切都很顺利!我把Adhoc分发给了我的客户。 (我试图在这里发布截图,但我不允许,因为我是新用户)

如果你处于相同的情况,并且不知道如何解决它。我强烈建议你一次又一次地这样做,直到你遇到同样的情况。