我们的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了?
发布于 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。
发布于 2013-09-25 08:21:21
如果我正确理解你的问题..。我在我们的应用程序中遇到了同样的问题,我需要保留在Xcode 5中构建并在iOS7中运行的iOS6.1接口。我们的界面也被弄乱了,不对齐,工具栏也缺少按钮。稍后我们将修复7,但现在没有时间,但需要它在iOS7上运行并仍然构建在Xcode 5中。
下面是我所做的:(我想发布一些屏幕截图,但没有我的mac,如果需要的话,我会晚些时候拿到)。
(接下来的两个选项可能不需要,但我们最终在测试中使用了它们,它可以工作,甚至是新的5S 64位电话)
然后..。
警告“打开”的最后一个选项。如果您选择“在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一样。
我希望这是有意义的,我希望它能回答你的问题。希望我记得我做过的每件事!如果我想出点什么,我会加更多的。
发布于 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的建议。
https://stackoverflow.com/questions/18971919
复制相似问题