在Xcode中设置最低iOS版本

52

我对Xcode比较新,因为我使用CocoonJS来构建我的HTML5 iPhone游戏,但我想知道如何正确设置最低iOS版本。我将部署目标设置为8.0并进行了清理,然后构建,但是当我提交到应用商店时,它显示最低iOS版本为6.0。

接下来我尝试手动更新info.plist中的此值,但此时在iTunes Connect上有一个无效二进制文件,显示:

最低操作系统版本不匹配 - 二进制文件('6.0')中的最低操作系统版本(LC_VERSION_MIN_IPHONEOS)与Info.plist中的MinimumOSVersion('8.0')不匹配,针对架构('armv7')

如何正确更新最低iOS版本而不破坏我的二进制文件?我检查了其他帖子,但它们都只说要更新部署目标。


1
你想要的最低版本是6.0还是8.0? - nhgrif
你是否正在使用最新的SDK进行编译?你正在使用哪个版本的Xcode? - Black Frog
我想将其设置为8.0,我正在使用最新版本的XCode。我不确定我正在使用哪个SDK。我在工作中,它在我的个人电脑上,但我认为这是最新的(回家后我会再次确认)。 - JamesR
从命令行使用“-mios-version-min=6.0”。 - jww
3
可能是如何设置最低要求的iOS版本?的重复内容。 - jww
2个回答

32

如果你正在使用8.x SDK进行构建,并将部署目标设置为8.x或更高版本,那就足够了。

不过我猜你在Xcode中设置了错误的部署目标位置。你需要在项目下设置,而不是在目标下设置。或者,如果你有一个.xcconfig文件,你可以通过设置来更改它。

IPHONEOS_DEPLOYMENT_TARGET = 8.1

如果您没有.xcconfig文件,可以通过打开project.pbxproj文件,并搜索IPHONEOS_DEPLOYMENT_TARGET来验证部署目标,并检查它是否设置为您期望的值。


1
CocoonJS云编译器给了我一个.xcodeproj项目,所以我只能在里面找到project.pbxproj。这里看起来一切都很好,所有设置都是8.0。我已经尝试过但没有成功。当我在构建设置中更新部署目标时,我应该期望在Info.plist中的MinimumOSVersion自动更改吗?因为它不会从6.0更改,除非我手动更改它。这对我来说似乎有点奇怪(但我不是iOS开发者)。实际上,在Info.plist中的UIDevice family仍然包括iPad和iPhone,即使我将其设置为仅iPhone在构建设置中。 - JamesR
我们在项目中不使用MinimumOSVersion,并且在将其部署到应用商店时明确指定为8.x或更高版本。 - Claus Jørgensen
你的意思是它们在iTunes Connect中显示为8.x或更高版本,还是它们只是在应用商店本身中受到限制?我已经尝试了一切来正确更新MinimumOSVersion,但似乎没有任何作用。如果部署目标无论如何都会限制它,那么我就不太在意了。 - JamesR
我不了解iTunes Connect。在TestFlight中,它被限制在8.x版本。 - Claus Jørgensen
我无法删除MinimumOSVersion本身,或者XCode在提交到iTunes Connect时出现了问题。有没有办法手动更改LC_VERSION_MIN_IPHONEOS设置? - JamesR

27
如果你已经设置了Xcode的.xcworkspace,比如来自ReactNative背景,你需要确保以下几点:
  • 项目 > 构建设置 > 部署中,将iOS部署目标设置为14.1或者你想要的最低版本。
  • 目标 > 构建设置 > 部署中,将iOS部署目标设置为14.1或者你想要的最低版本。
  • 目标 > 通用 > 部署信息中,在iPhone勾选框之前将部署信息设置为最低支持版本。

iOS Minimum Deployment Info

验证最低版本是否正确设置。

  • 将项目存档。
  • 验证并分发应用程序的开发版本。
  • 找到导出ipa文件的文件夹。
  • 使用某些归档实用软件(例如The Unarchiver)打开.ipa文件。
  • Info.plist拖动或打开到任何代码编辑器中。
  • 搜索MinimumOSVersion并检查最低操作系统版本是否符合要求。

MinimumOSVersion in Info.plist

即使更新了部署目标,存档仍然没有更新到所设定的版本。强制退出Xcode并重新打开工作区/项目。检查上一个会话的设置是否已应用,查找每个包含14.x或当前最低版本的实例,并更新为所需版本。再次退出Xcode并重新打开。再次生成存档,这次应该会反映出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接