Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 源代码与编译代码_Ios_Compilation - Fatal编程技术网

Ios 源代码与编译代码

Ios 源代码与编译代码,ios,compilation,Ios,Compilation,我注意到一些我以前从未见过的东西,我希望有人能澄清到底发生了什么 我在开发设备上安装了iOS 6,然后从应用商店下载了我的应用程序。该应用程序是在没有iOS 6 SDK的旧版本Xcode中创建的。当我去拿它时,它在我的设备上运行良好 但是,我现在有了带有iOS6SDK的Xcode 4.5。我打开了我的旧Xcode项目,该项目的源代码与在应用商店中构建应用程序时使用的源代码完全相同——对代码没有任何更改。当我从Xcode在iOS 6设备上再次运行此项目时,该应用程序出现了错误,完全没有按预期运行

我注意到一些我以前从未见过的东西,我希望有人能澄清到底发生了什么

我在开发设备上安装了iOS 6,然后从应用商店下载了我的应用程序。该应用程序是在没有iOS 6 SDK的旧版本Xcode中创建的。当我去拿它时,它在我的设备上运行良好

但是,我现在有了带有iOS6SDK的Xcode 4.5。我打开了我的旧Xcode项目,该项目的源代码与在应用商店中构建应用程序时使用的源代码完全相同——对代码没有任何更改。当我从Xcode在iOS 6设备上再次运行此项目时,该应用程序出现了错误,完全没有按预期运行


我知道源代码是相同的,所以这是由于不同的SDK编译了不同的二进制文件的结果吗?

出于某种原因,在公开发布之前的几个月内,每个主要版本都有一个开发者测试版

Xcode 4.5有很多变化。iOS SDK 6.0已经(需要打开链接的iOS开发者程序)、armv6支持(iPhone 3G和更旧型号使用的架构)已经消失、编译器有了一些新功能等等


简而言之,当工具发生变化时,代码需要一些维护是正常的。

编译器确实发生了变化,框架也发生了变化,API也发生了变化。你真的不应该期望相同的二进制。因此,简言之,人们不应该太担心旧二进制与旧源代码中的新二进制的行为。这真的取决于-一旦苹果更新了iOS,甚至我在Appstore中的一些旧应用在新iOS上的行为也不同,而使用新SDK的新编译有时会修复它,有时候不是。在这些情况下,我甚至不得不稍微重新设计一些委托方案。总之,我想你要么自己测试所有配置,要么等到你在评论中得到第一条评论……这发生在我身上,因为我错误地依赖于与新版本的兼容性。。。