首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ios 7仿真器不会为针对IOS6.1SDK编译的应用程序回退用户界面

ios 7仿真器不会为针对IOS6.1SDK编译的应用程序回退用户界面
EN

Stack Overflow用户
提问于 2013-09-24 02:14:37
回答 4查看 4.7K关注 0票数 6

我们的iOS6.1-SDK编译应用程序在ios 6.1 iphone 4、4s &5设备上运行良好。当在iPhone5s上运行这个应用程序时,用户界面看起来仍然像ios 6(黑色按钮等),但除了我们发现了一个bug之外,大多数情况下我们都不介意。我猜这是因为ios7上的API实现发生了变化。

当我们的应用程序是针对xcode 5上的ios7-sdk编译时,一切就分崩离析了。UI对象不对齐,标签不能读取等等。因此,我们希望用iOS6.1SDK编译代码,但在ios 7上运行它。

在Xcode 5上,我安装了IOS6.1SDK 通过从Xcode 4.6.3dmg复制它,如本文所述,并在构建设置上将Base更新为IOS6.1,但是在ios 7模拟器上运行应用程序时,用户界面不会退回到IOS6.1。然而,如果在运行ios 7的物理iphone上测试该应用程序,它就会退回到ios 6.1。

如何使ios 7模拟器在运行iOS6SDK编译的应用程序时返回用户界面,这样我们就可以在模拟器上复制bug了?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-30 23:06:13

谢谢大家的帮助,但到目前为止,允许我重现这个bug的最佳解决办法是继续使用xcode 4.6.3,并在xcode 4.6.3中安装ios 7模拟器。

为此,我同时安装了xcode 5和4.6.3 (将xcode.app复制到xcode4.6.3.app,然后从应用程序商店(将覆盖xcode.app)安装xcode 5),然后是符号链接

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

/Applications/Xcode4.6.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

执行此操作时,请确保xcode未打开。如果您已经覆盖了4.6.3到5,则可以从https://developer.apple.com/downloads下载4.6.3的dmg。

然后我说:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iOS Simulator.app

( xcode 5版本的模拟器应用)在我的码头上

在测试应用程序时,我必须先从码头手动启动模拟器,然后选择相应的设备版本(转到硬件-> device ->选择iPhone3.5“/4”- ios6/7),因为xcode 4.6.3无法自动完成此操作(可能是因为版本不同/因为我没有将xcode 5模拟器应用程序符号链接到4.6.3)。

在启动时,确保在xcode 4.6.3方案上选择了'iPhone 7.0模拟器‘。在ios 7上运行时,ios6.1-sdk编译的应用程序就会返回到IOS6.1UI中,我可以复制我的bug。

票数 4
EN

Stack Overflow用户

发布于 2013-09-25 08:21:21

如果我正确理解你的问题..。我在我们的应用程序中遇到了同样的问题,我需要保留在Xcode 5中构建并在iOS7中运行的iOS6.1接口。我们的界面也被弄乱了,不对齐,工具栏也缺少按钮。稍后我们将修复7,但现在没有时间,但需要它在iOS7上运行并仍然构建在Xcode 5中。

下面是我所做的:(我想发布一些屏幕截图,但没有我的mac,如果需要的话,我会晚些时候拿到)。

  • 我将Xcode 4.6.3与Xcode 5一起安装。
  • 我在Xcode 5安装中添加了6.1SDK中的符号链接。(我在这个问题上发现了一个问题,会找到一个链接)或者你可以像你一样安装它。

(接下来的两个选项可能不需要,但我们最终在测试中使用了它们,它可以工作,甚至是新的5S 64位电话)

  • 在Build中,我选择了build体系结构来使用标准的非64位armv7选项,不要选择“包括64位”选项。
  • 相同的地方,构建活动架构只对是

然后..。

  • 同样在中,将Base设置为iOS 6.1。(我相信这是成功的关键)
  • 应用程序目标的常规选项卡,将部署目标设置为6.1 (我们的部署目标目前仍在5.1 )
  • 在我们的故事板中,选择“文件检查器”,在我在Xcode 4.6中选择的“接口构建器”部分中选择“打开”,并为iOS 5.1及更高版本构建,并以iOS 6.1及更早版本查看。(我的自动收费表没有检查,我们不使用它)

警告“打开”的最后一个选项。如果您选择“在Xcode 4.6中打开”,您将丢失iOS7的Storyboard编辑。在我的例子中,我现在不关心,因为我希望它保持在4.6的视图。记住这一点。我想你可以把它换回来,但还没有测试过。

通过链接/安装6.1SDK,您应该能够选择所需的iOS版本,以便在应用程序中运行时在模拟器中使用。您将在“活动架构”下拉到顶部工具栏中看到它。例如,在我的例子中,我可以选择iPhone Retina (4英寸),在此下面我可以选择iOS7或6.1。有趣的是,有了上面的设置,我可以在模拟器中运行我的应用程序,它看起来像iOS6,即使我选择iOS7作为模拟器活动模式。它甚至在64位模拟器中工作,在我的设置中,它只显示iOS7选择。

至少这样,我可以在Xcode 5中构建和工作,专门为iOS7用户分发应用程序,但保持iOS6样式、位置和按钮不变。现在,我可以花更多的时间来转换到iOS7样式,但仍然可以修复bug并更新应用程序,就好像它是iOS7 6.1一样。

我希望这是有意义的,我希望它能回答你的问题。希望我记得我做过的每件事!如果我想出点什么,我会加更多的。

票数 4
EN

Stack Overflow用户

发布于 2013-09-24 15:34:06

您所描述的外观恐怕是iOS 7的正确行为。例如,表视图内容大小的计算方式不同(这将改变许多元素的位置)以及许多其他更改。

如果希望保留iOS 6的外观,则需要在Xcode 4.6下编译,而不是在5下编译。您仍然可以在iOS 7下运行它,并且实际上可以通过在Xcode 5中授权iOS 7设备,然后切换回Xcode 4.6来使iOS 7设备显示出来以供开发。

我建议您也阅读苹果的iOS 7过渡指南,以获得有关设计iOS 7兼容UI的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18971919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档