【问题标题】:App developed in Xcode for native iOS用 Xcode 为原生 iOS 开发的应用程序
【发布时间】:2018-05-20 04:28:52
【问题描述】:

我们已经在 Xcode 中开发了我们的原生 iOS 应用程序,现在软件开发人员说我们应该将我们的代码升级到 Xcode 9,因为如果我们继续使用 Xcode 进行开发,我们可能会在 App Store 上的新版本中遇到问题。我想知道这是否是事实,因为我不是 iOS 开发人员,我不知道这是不是事实。

任何有关这方面的帮助或指向文档的指针将不胜感激。

【问题讨论】:

  • 好吧,既然我们看不到您的代码,我们只能假设。但是是的,iOS 的 SDK 中的一些 API 发生了变化。为了支持最新的 iPhone,您可能需要更改一些代码。有时这需要更改代码,如果您的代码库使用 Swift,这一点尤其重要。
  • 我认为问题不在于 SDK,而在于 iTunes Connect 仅允许处理和发布 Xcode 9 构建。
  • 我没有代码,它是供应商在将近 2 年前为我们开发了应用程序,并提到现在升级更好,因为他们不确定发布时是否会遇到任何问题应用程序(新版本)到应用程序商店将因任何原因获得批准。
  • 如果您根本不更改应用程序,则无需进行升级,因为您没有将新版本放入应用程序商店。如果您确实更改了应用程序(新功能和错误修复),您应该始终使用最新版本的 Xcode。如果你使用的是 Swift 2,迁移到 Swift 4 会带来一些痛苦,但未来的迁移应该不会成为问题,因为 Swift 4 几乎是稳定的。
  • 所以我现在就进行升级,因为你永远不知道什么时候需要发布一个严重的错误修复,如果你确实有一个严重的错误,你不想迁移代码同时。

标签: ios xcode xcode9


【解决方案1】:

Appstore 不会因为使用版本 8 编译而拒绝您的应用,但正如您的开发人员所说,使用最新版本的 Xcode 编译项目将是更好的方法。

此外,随着 iPhone X 的发布,Apple 可能会考虑对 iPhone X 的支持,因此如果您发送不支持 iPhone X 的新版本,它可能会被拒绝,并且对于 iPhone X 支持,您需要使用 Xcode 9 或更高版本.

Apple Xcode Support:

您应该使用 Mac App Store 上提供的最新版本的 Xcode 来提交您的应用程序,或者在可用时,从下载页面提交最新的 GM 种子版本。如需更多信息,请阅读应用分发指南。

注意:如果您的源代码完全使用 Objective-C 编写,那么编译不会有问题,因为使用 Xcode 9 在 Obj-C 方面没有任何改变。但是,如果你有一个 swift 代码,它可能需要更新到 Swift 4。

【讨论】:

    【解决方案2】:

    在这里对比其他海报:我会说这取决于。目前,iTunes Connect 接受使用 Xcode 6 (6) 构建的应用程序的更新/上传。今天使用 Xcode 9 没有硬性技术要求,在可预见的将来也不会有这样的要求。也许是 2019/2020 年,但到那时我们可能还会有 Xcode 11 或 12。

    也就是说,实际上有很多原因需要尽早切换到最新的 Xcode 版本,其中最重要的是能够针对当前的 iOS 版本 iOS 11 并使您的应用程序在新版本上正常运行iPhone X。

    【讨论】:

      【解决方案3】:

      是的,您的开发人员是绝对正确的。

      一般建议:您的项目/应用源代码应与最新的技术升级兼容。

      为什么要在 Xcode 9 上迁移您的应用开发?
      这里有几个有用的 stack over flow 讨论(问题和答案),解释 Xcode 9 的新变化。

      1. Xcode 9 Release Notes
      2. iPhone-X接口支持-Safe Area of Xcode 9
      3. 斯威夫特 4 - Code migration from Swift 2.x to Swift 4
      4. Face-Id Authentication(如果您使用过生物认证)
      5. Facebook integration IOS 11 & FBSDKShareDialog not working on IOS11
      6. Navigation Controller and Navigation Bars

      【讨论】:

      • 目前,我们正面临用于此应用程序的 twitter/facebook sdk 的问题,由于某种原因,它们无法正常工作,并且开发人员说 SDK 已贬值且无法正常工作,因此必须升级到新的SDK,还说我们应该升级到xCode9,这将花费我们不少钱。
      • 是的,支持以前 Xcode 版本的 SDK 很少被弃用(它们也弃用/删除了许多特性和功能)。我同意迁移到新的 Xcode。
      • 关于成本:仅会为版本支持迁移花费开发人员的精力(付款或薪水)。还有其他费用。
      【解决方案4】:

      Apple 每年都会发布一个新版本的 Xcode,同时它还删除了 iTunes Connect 中用于从旧 Xcode 版本上传构建的功能。所以,简而言之,您的开发人员是对的!

      来源:App Store - Submissions

      【讨论】:

      • 我可以理解,但开发者为此收费并不意味着我们每年都必须升级并支付开发者升级费用
      • 好吧,如果开发人员是诚实的,他会按他所做的工作收取费用。随着 XCode 每年发布,他应该每年检查应用程序在当年的 Xcode 环境中是否仍然有效和运行。另外:正如您提到的 FacebookSDK,您的应用程序可能依赖于一些外部依赖项。这些库也发生了变化,因为 Facebook 也升级到 XCode 9 并对其代码进行了更改。这意味着:您可以将 Xcode 8 应用程序留在商店中,但在升级到 Xcode 9 之前,您无法在 iTunes Connect 中更新它。
      • @Learning - 我可以理解您的担忧,但如果您过去看到,Apple 每年都会在开发人员方面进行如此多的更改,特别是在 Swift 语言方面。 Apple 间接强制推进最新技术,如果我们希望继续与他们合作(Apple 技术),我们没有任何办法
      猜你喜欢
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2011-12-23
      • 1970-01-01
      • 2011-11-19
      相关资源
      最近更新 更多