Xcode 4需要i386来模拟iPhone吗?

6
我已经升级到Xcode 4。
如果我在Xcode 4中创建新的iPad项目,一切都正常。如果我在Xcode 3中创建项目,然后将其转移到Xcode 4,也可以正常工作。
但是我的其中一个项目无法编译。错误信息如下:
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).

为了在模拟器中编译和运行它,我最终使用了以下设置:freaky but working settings in XCode 4。添加 i386 后,项目得以编译和运行(感谢这个论坛帖子),但我的其他项目没有在有效架构中添加 i386 也能正常工作。如何让我的项目像其他项目一样?注意:是的,在 XCode 中,我仔细检查了该项目(而不是 XML),与编译的朋友们一模一样,但却无法编译。

也喜欢https://dev59.com/2m445IYBdhLWcg3wUoxe - Dan Rosenstark
2个回答

1
在开发者论坛中,我遇到了一些人使用文本编辑器编辑.pbxproj文件,并以此方式添加条目到VALID_ARCHS中。这似乎是XCode4处理一些旧的XCode3项目时出现的问题(尽管我还没有看到过)。
我检查了一个当前的项目,发现这行不存在,所以如果你遇到这个问题,请从你的project.pbxproj文件中删除它,然后重新启动XCode。

在我遇到这个问题的一个项目中,我发现删除项目文件中的VALID_ARCHS行比尝试编辑它更容易。这样做,Xcode将恢复默认选项(即Sim上的i386,设备上的armv6 / 7)。 - robc
这就是我在最后所说的,我认为那可能是最好的选择。我编辑了我的问题的最后一部分,以使其更加清晰明了。 - Kendall Helmstetter Gelner
好的,我会尝试。顺便说一下,你是指“答案”吧 :) 谢谢! - Dan Rosenstark
这个方法行得通。我不想胡乱编辑你的答案,但是我在 project.pbxproj 文件中删除了引起问题的一行“VALID_ARCHS = "armv7 i386";”(或者你的 VALID_ARCHS 是什么),然后...XCode 并没有恢复它,但也没有任何问题。 - Dan Rosenstark

1

我曾经也遇到过同样的问题,然后编写了一个小的shell脚本来程序化地编辑需要添加i386的行(在每个git pull和tag checkout之后,在我的测试套件中执行此操作)。

将以下代码放入shell脚本中,然后在需要将i386添加到所有VALID_ARCHS =条目时运行它:

sed -i -e 's/.*VALID_ARCHS = armv7;.*/VALID_ARCHS = "armv7 i386";/g' project.pbxproj

哦,鉴于这个脚本的直接简单性,当您运行它时,您需要在project.pbxproj文件所在的相同目录中。

而且,正如暗示的那样,它执行全局行替换。它将每个VALID_ARCHS = armv7;实例替换为VALID_ARCHS = "armv7 i386";并且引号是必需的,否则Xcode会抛出错误,告诉您无法解析project.pbxproj文件。


听起来不错。这已经过去很多年了,所以我不知道如何评估它,但无论如何还是+1吧。 - Dan Rosenstark

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