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

StackOverflow https://stackoverflow.com/questions/3009498

我知道基本/活动 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文件?他们是否将 3.x SDK 中的格式从 2.x 更改为更新的格式?如果是这样,我该如何将其设置回 2.x。(再说一遍,这只是一个完整的猜测。)但我真的很难过!

有帮助吗?

解决方案 3

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

因此,我们只是检查了 IB 中的“启动时显示”选项,它就起作用了。完成了,完成了!

其他提示

您检查过 applicationDidFinishLaunching:options:调用您的应用程序代表?

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

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

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

2.x 已完全弃用,无法发布到应用程序商店。您应该能够使用以前版本的 xCode 将其安装在设备上,但仅此而已。我的社区 wiki 中的更多信息如下:

安装 xCode 3.2.3 w/ iPhone SDK 4,出现“Base SDK丢失”,看不到其他SDK

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top