Xcode 4.2和Three20无法编译armv6

4
我有一个应用在Xcode 4.2模拟器上运行得很好。
为了构建和归档以发布到应用商店,我收到了一个错误提示,指出我需要包含一个armv6版本。论坛建议清除构建目标并包含“armv6 armv7”,我已经这样做了。iOS部署目标为iOS 3.0。
当我连接我的测试iPod并开始归档操作(发布版本)时,我收到以下错误:
忽略文件/xxx/Release-iphoneos/libThree20UICommon.a,该文件是为存档而构建的,而不是链接的架构(armv6)(重复所有的Three20库)。
"_OBJC_CLASS_$_TTTableViewDataSource",引用自:在ContactsDataSource.o中的Objc-class-ref
我尝试了更改“仅构建活动架构”,这很有效,但没有包括应用商店的armv6。
有人遇到并解决了这个问题吗?
谢谢! Tim
4个回答

1
我发现通过设置“架构”(而不是“有效架构”)为“armv6 armv7”,可以解决我的问题。虽然需要逐个对Three20依赖文件夹中的子项目进行操作,但最终成功了。

1

我发现解决方法是更改资源中的Three20.bundle文件,而不仅仅是Three20项目文件。

将“仅构建活动架构”设置为“否”,生活又变得明亮了。


1
哎呀,不幸的是它并没有帮助到我。 - peetonn

0

我现在没有我的Mac,但我认为您还需要在plist中包含armv6。


1
这并没有解决我的问题:我已经尝试在目标构建中添加“armv6 armv7”,更改编译器,但都无济于事。 - Tim

0

我不得不将项目格式从Xcode 3.1更改为Xcode 3.2 - 将Build Active Arch Only设置为“否”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接