在iPhone 5s上测试32位iOS应用或64位模拟器

7
我有一个使用第三方库的应用程序。64位版本的库存在一个错误,因此我不得不回退到32位版本的框架。我想在5s上测试这个版本,但从XCode开始构建时,它会尝试以64位方式构建,并且由于32位框架,构建将失败。 我需要发布一个版本,但由于无法在5s或64位模拟器上进行测试,我不太愿意这样做。所以有没有办法将应用程序放在iPhone上或在64位模拟器上运行而无需构建64位版本?
iPhone已经配置好并用于测试64位,因此这不是问题。
提前致谢。

你应该能够在64位模拟器上运行它。我可以在真正的5s和模拟器上运行32位应用程序。 - ScottMcGready
请查看:https://dev59.com/32Eh5IYBdhLWcg3whTsR#22370158 - M. Porooshani
2个回答

5

在“构建设置”中,将 Architectures 更改为 $(ARCHS_STANDARD_32_BIT)

然后选择模拟器的 iPhone Retina(4英寸64位)

它将构建您应用程序的32位版本,但在64位模拟器上运行。请注意,模拟器正在运行OS X,而OS X不再支持32位,因此我们一直在模拟器上以64位硬件运行32位应用程序。只要您不需要某些类型为64位(例如:当针对64位编译时,CGFloat 可以准确到更多小数位),就可以很好地工作。


我一直在尝试在XCode 5.5.1中使其工作,但没有成功。我正在尝试让我的32位应用程序在5s或64位模拟器上运行,但仍然会出现64位链接器错误。我已经在目标和项目部分中将架构更改为$(ARCHS_STANDARD_32_BIT),但它仍然尝试使用64位编译器。有什么想法吗? - Jon Clayton
你把 $(ARCHS_STANDARD) 改成了 $(ARCHS_STANDARD_32_BIT) 吗?还是两个都有?因为只需要 $(ARCHS_STANDARD_32_BIT) 才能让它正常工作。这就是我犯错的地方。 - Fernando

0

我曾经遇到类似的情况,但是相反的方向。我使用Fastlane获取应用程序屏幕截图,Fastlane工具只能在模拟器上运行,但我发现每次:

Undefined symbol(s) for architecture i386

这是因为有一个仅支持 x86_64.a 库,所以我尝试根据上面的答案解决问题。我将 Architectures 更改为 $(ARCHS_STANDARD_64_BIT)这样我就可以在只有 64 位架构的新模拟器上运行项目了!

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