0

我知道基本/活动 SDK 和部署目标之间的区别。我的基础 SDK 设置为 4.0,部署目标设置为 2.0。我没有使用 2.x 后的任何 API,无论是有条件的还是其他的。由于我无法在 2.x 设备上进行调试,因此在构建它之后,我使用 iPhone 配置实用程序在设备上安装应用程序,效果很好。问题是,它不运行!我只是得到一个空白屏幕。主窗口永远不会出现!

现在在你问之前...

  1. iPhone SDK 3.x 也有同样的问题。我升级到 4.x 希望它会得到解决。不是。

  2. 是的,配置文件已安装。(如果不是,则无法安装该应用程序。)

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

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

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

我难住了。

即使是未经修改的项目也无法运行的事实确实让我感到困惑。会不会是XIB文件?他们是否将格式从 2.x 更改为 3.x SDK 中的新格式?如果是这样,我如何将其设置回 2.x。(再次,这只是一个完整的猜测。)但我真的很难过!

4

3 回答 3

0

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

所以我们简单地检查了 IB 中的“启动时显示”选项,它就起作用了。完成并完成!

于 2010-09-20T00:17:49.427 回答
0

您是否检查过 applicationDidFinishLaunching:options: 调用您的应用程序委托?

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

关于选项的字典:用于将信息传递给您的应用程序,例如“我是从 safari 的 url 开始的”等。

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

于 2010-06-12T19:07:20.527 回答
0

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

安装带有 iPhone SDK 4 的 xCode 3.2.3,得到“缺少基本 SDK”,看不到其他 SDK

于 2010-07-05T22:28:16.237 回答