iphone sdk 3.0中的MinimumOSVersion问题

时间:2009-05-11 06:43:21

标签: iphone-sdk-3.0

我已经安装了最新的iphone sdk 3.0 beta 5,并试图从这个sdk提交第一个应用程序版本,但是当我上传到itunes connect时,它会给我一条消息“你上传的二进制文件无效。提供的值对于关键的MinimumOSVersion是不可接受的。“并且无法上传。因此,我在项目中编辑我的info.plist文件,并将此键设置为2.2.1,如

 <key>MinimumOSVersion</key>
 <string>2.2.1</string>

再次上传,但仍然会返回相同的消息,是否有人遇到过同样的问题以及如何摆脱这个问题?

7 个答案:

答案 0 :(得分:7)

您不应在Info.plist中指定MinimumOSVersion。来自Information Property List Key reference

  

MinimumOSVersion(String - iPhone OS,Mac OS X)。当您构建iPhone应用程序时,Xcode会将目标操作系统(由Base SDK选择确定)注释为MinimumOSVersion属性。 请勿在Info.plist文件中自行指定此属性;它是一个系统编写的属性。将应用程序发布到App Store时,商店会根据此属性指示应用程序可以运行的iPhone OS版本。它等同于Mac OS X上的LSMinimumSystemVersion属性。

答案 1 :(得分:2)

您需要做的是更改项目中的“部署目标”设置。部署目标指定您希望应用程序运行的最低操作系统。这与您构建的SDK无关,它应始终是最新的SDK,因此您可以确保应用程序在最新的OS版本上正确运行。所以,简而言之:

  • 将Base SDK设置为最新的可用操作系统
  • 将部署目标设置为您希望运行应用的最早的操作系统

手动编辑Info.plist文件实际上只是在愚弄App Store,认为你的应用程序可以运行在不能运行的操作系统上运行,这可能会产生不可预测的结果。

答案 2 :(得分:1)

请阅读iPhone开发人员中心的通知。您目前无法使用iPhone 3.0 SDK为App Store构建应用程序,即使您为2.x操作系统编译它们也是如此。您必须使用2.x SDK编译应用程序以将其提交到App Store。

您可以并排安装这两套开发人员工具。当您进入选择要安装的软件包部分的屏幕时,您可以选择安装的替代目标。

答案 3 :(得分:1)

我遇到了同样的问题。继承人如何解决它!

我的项目名为SuperTennis,所以我在xcode中点击了该项目,然后点击了获取信息。在常规选项卡下,将“所有iPhone配置的基本SDK”更改为iPhone OS 2.0,然后进入构建选项卡,将“Base SDK”更改为“iPhone OS 2.0”,然后为您的设备构建它。在finder中显示应用程序,然后继续,上传它。如果你想要更多帮助,请发送电子邮件至ryan2925 at gmail.com。我希望这适合你和其他任何人阅读。

答案 4 :(得分:1)

当我最终将2.2.1升级到4.0 SDK并试图使用现有项目时,我遇到了这个错误。

我必须:

  1. 点击XCode中的项目,然后点击信息。
  2. 点击“构建”
  3. 注意您正在设置的“配置”。在尝试调试时是否意外设置了分发?
  4. 将'Base SDK'设置为尽可能高。
  5. 将“目标设备系列”更改为您正在执行的操作。
  6. 将“iPhone OS部署目标”设置为您设备的操作系统(您可以通过转到Window&gt; Organizer进行检查)。
  7. 我的主要时间接收器是在尝试调试时没有实现它时设置我的分发设置。

答案 5 :(得分:0)

试试这个:

ARMV6: before iPhone 3GS
ARMV7: including and after iPhone 3GS

"Proj." and "Target(s)" right-click, Get Info. Select:-

Base SDK: iPhone 4.0 (latest s greatest)
Standard: ARMV6, ARMV7
Uncheck build for Active Architecture 
Deployment Target: 4.0 (not older ones 3.1.3; you don't have the SDK if you upgrade to 4.0)
Compiler section: Ensure that both ARMV6 and ARMV7 checkboxes are ticked under Generate Code, Thumb section.

二进制输出略大,因为它是支持这两种体系结构的通用代码。

如果您只想支持ARMV7,请不要在编译器部分检查ARMV6,为ARMV7优化选择代码,仅检查活动架构。在info.plist中,在armv7项中添加UIRequiredDeviceCapabilities。该字段已存在于info.plist中,可能还有其他系统要求自动指定。

答案 6 :(得分:-3)

右键单击您的项目并转到构建选项卡。在列表顶部附近,您可以指定Base SDK。这是你编译的最小值。在此之后,您的构建设置下拉列表将包含旧版本。当您进行分发时,请确保您没有使用3.0导致二进制文件被拒绝(如您所知)。