Ios 即使部署目标设置为2.0,iPhone SDK 3/4应用程序也不会在iPhone 2.x设备上运行

Ios 即使部署目标设置为2.0,iPhone SDK 3/4应用程序也不会在iPhone 2.x设备上运行,ios,ios4,iphone-sdk-3.0,iphone-sdk-2,Ios,Ios4,Iphone Sdk 3.0,Iphone Sdk 2,我知道基本/活动SDK与部署目标之间的区别。我的基本SDK设置为4.0,部署目标设置为2.0。我没有使用任何API Post2.x,有条件或其他。因为我无法在2.x设备上调试,所以在构建它之后,我使用iPhone配置实用程序在设备上安装应用程序,它做得很好。问题是,它不能运行!我只是得到一个空白屏幕。主窗口永远不会打开 现在在你问之前 我在iPhoneSDK3.x上也遇到了同样的问题。我升级到4.x版本,希望它能被解决。事实并非如此 是,已安装配置文件。(如果应用不可用,则无法安装该应用。) 这

我知道基本/活动SDK与部署目标之间的区别。我的基本SDK设置为4.0,部署目标设置为2.0。我没有使用任何API Post2.x,有条件或其他。因为我无法在2.x设备上调试,所以在构建它之后,我使用iPhone配置实用程序在设备上安装应用程序,它做得很好。问题是,它不能运行!我只是得到一个空白屏幕。主窗口永远不会打开

现在在你问之前

  • 我在iPhoneSDK3.x上也遇到了同样的问题。我升级到4.x版本,希望它能被解决。事实并非如此

  • 是,已安装配置文件。(如果应用不可用,则无法安装该应用。)

  • 这个经过编译的应用程序在3.x设备上运行良好。与4.x设备相同。只是不是2.x设备

  • 同样,不,我没有使用任何post-2.x SDK。为了证明这一点,我从“新建项目”对话框中创建了一个全新的基于窗口的应用程序,我所做的唯一更改是窗口的背景色(以证明加载了XIB),我将部署目标设置为2.0(尽管它仍然是根据4.x SDK编译的)。同样,它在3.x或4.x设备上运行良好,但只是一个黑色,2.x设备上的空白屏幕

  • 我已经在三个独立的2.x设备上尝试过,包括一个新恢复的设备。我使用了三台独立的开发机器(MacBookPro和3.x SDK,MacBookPro和4.x SDK,MacPro和3.x SDK),每次都得到相同的结果

    我被难住了


    即使是未修改的项目也无法运行,这一事实让我感到困惑。可能是XIB文件吗?他们是否在3.x SDK中将格式从2.x更改为更新的格式?如果是,我如何将其设置回2.x。(同样,这只是一个完全的猜测。)但我真的被难住了

    您是否已检查ApplicationIDFinishLaunching:选项:调用您的应用程序代理

    options:参数是在3.0中添加的,在我3.0之前的任何代码中都不存在,尽管早期的形式仍然有效

    选项词典:用于向你的应用程序传递信息,例如“我是从safari的url开始的”等等


    如果您希望在2.0上运行,您可能应该将其改回原来的“ApplicationIDFinishLaunching:”。

    2.x完全不推荐发布到应用商店。您应该能够使用以前版本的xCode在设备上安装它,但仅此而已。更多信息请访问我的社区维基:


    事实证明,苹果确实做出了一个突破性的改变(或者更准确地说,是一个“修正”的改变),但他们没有对此发表评论。具体来说,我们的应用程序没有明确设置主窗口,无论是通过代码还是通过IB中的“启动时显示”选项都可见。但是。。。在SDK的一个版本中,运行时没有看到任何设置,但需要显示一些内容,它隐式地显示了主XIB文件中的窗口。然而,较新(和较旧)的SDK(实际上是运行时)没有这种隐式行为,因此当我们的代码没有显式显示窗口时,我们只会看到一个空白屏幕


    因此,我们只需检查IB中的“启动时显示”选项,就可以了。做了,做了

    Jon,这是从一开始就在2.x设备上运行的代码。诚然,我没有用我创建的新“试用”项目检查您的建议,所以我会这样做,但这仍然不能回答为什么在2.x设备上运行良好的代码不再与新SDK兼容。我的猜测是一些不应该被链接的东西(或者被映射到旧系统上找不到的新东西或其他东西),但这真的成为了一种痛苦。不过,我还是会看看你对测试项目的建议。听起来像是对iPhone团队“技术支持事件”的一个很好的利用!嘿,克莱。。。对于应用商店来说,它可能已经贬值了,但我想看到的是实际发生了什么变化。我知道根据上面的Jon,ApplicationIDFinishLaunching已经更改,这很可能会导致演示应用程序无法启动(尚未检查),可能就是这样。。。但我仍然希望看到它被记录在案(即破坏更改,而不仅仅是折旧)。毕竟,我在构建时没有收到关于(ApplicationIDFinishLaunching)的警告。已弃用,未折旧:。每一个SDK版本都附带了一个API更改列表,非常简单。RTFM?;)FWIW,applicationDidFinishLaunching:仍然有效,但application:didFinishLaunchingWithOptions:是“强烈推荐”的,并为您提供更多(等待…)选项。作为记录,这是苹果做出的行为改变,但没有记录。具体来说,它既不涉及代码,也不涉及在启动时显示窗口的XIB设置。在SDK的一个版本中,即使没有标记,它们也会自动显示。另一方面,他们没有。所以在另一个版本中,它在我们的代码中隐藏了一个bug。当我们切换SDK时,事情就发生了变化,我们的错误也暴露了出来。我们修正了我们的代码,然后它工作了。。。万一有人做了“RTFM”(真的?这样?!),仍然有和我们一样的问题。我不相信大多数人会认为“RTFM?”是一种侮辱性的侮辱。