如何正确检查 iOS 版本控制(来自 iOS 7.0)
How to properly check iOS version controlling (from iOS 7.0)
我们正在开发一个具有很多功能和模块(呼叫、聊天、更新提要等)的项目。它的部署目标是 7.0 到最新版本。这个项目从 2013 年开始开发。所以有很多错误和旧代码。最近这个项目完成并准备在App Store发布。
但是现在我们在QA测试的时候发现了一些困难。 iOS 根据它的版本改变了很多东西。我们正在努力检查不同版本中的这些更改。
例如 iOS 8.3 facebook sharing
必须由他们自己的 SDK 实现。旧的 SLComposeViewController
已经不行了。所以我们必须从 iOS 8.3.
开始处理它
我只是想知道我们是否可以通过某种方式获得苹果做出更改的这些 iOS 版本的列表,这样我们会更容易检查在 [= 中安装那些特定 iOS 版本的项目29=]。我认为这类信息可以在他们的开发者网站上找到。如果是这样,任何类型的信息都会对我们有很大帮助。
非常感谢。
我不确定这是否真的是您想要的,但这是他们开发者门户网站上所有 Apple's iOS release notes and API diffs 的 link。我相信它涵盖了 iOS SDK 的所有主要版本。
但就个人经验而言,我还想说 iOS 次要更新对现有应用程序功能的实际影响通常可以忽略不计。我会将您的 QA 工作重点放在您支持的主要版本上(在您的情况下为 7.X 和 8.X)并使用最新的稳定版本进行测试,因为这些将是您的绝大多数版本用户将使用。
即是说,我认为至少简要调查一下 iOS 版本在您的用户群中的实际分布和采用率,并就合理的分界点达成一致也是一个好主意。例如,如果您发现 87% 的用户是 运行 iOS 8.X,12.5% iOS 7.1.X 而只有 0.5% iOS 7.0.X,您可能会得出结论,为 7.0.X 用户提供显式测试 and/or 支持实际上并不值得付出努力。
有很多网站会为您提供大约 iOS adoption rates 的一般数字,让您有个大概的了解。
最后,如果您觉得您已经在测试中涵盖了(用户方面)最大的 2-3 个版本,我认为推动您的初始版本并相信您的错误是公平的 handling/update处理 可能 仍然存在的更具异国情调的 iOS 版本中出现的任何问题。但这当然是您必须为自己做出的有意识的决定。
几年前我问过非常相似的 question(不是说这是重复的!),然后我得到的只是 - "read the documentation carefully"。不幸的是,即使到现在它仍然是正确的,但是您可以获得一些工具来帮助您。
对于外部库,我强烈建议使用 CocoaPods 或 Carthage。您可以指定要支持的版本,这些工具会为您检查要包含的库是否与您的部署目标兼容。
对于您的自己的代码,您只需编写 XCTests 来验证应用程序最关键的部分或可能是整个代码库(测试 ftw) 并坚持进行版本检查。在 Swift 2.0 中,这将更加禅宗,您可以在其中使用 #available(iOS 9.0) { ... }
.
进行 API 检查。
我们正在开发一个具有很多功能和模块(呼叫、聊天、更新提要等)的项目。它的部署目标是 7.0 到最新版本。这个项目从 2013 年开始开发。所以有很多错误和旧代码。最近这个项目完成并准备在App Store发布。
但是现在我们在QA测试的时候发现了一些困难。 iOS 根据它的版本改变了很多东西。我们正在努力检查不同版本中的这些更改。
例如 iOS 8.3 facebook sharing
必须由他们自己的 SDK 实现。旧的 SLComposeViewController
已经不行了。所以我们必须从 iOS 8.3.
我只是想知道我们是否可以通过某种方式获得苹果做出更改的这些 iOS 版本的列表,这样我们会更容易检查在 [= 中安装那些特定 iOS 版本的项目29=]。我认为这类信息可以在他们的开发者网站上找到。如果是这样,任何类型的信息都会对我们有很大帮助。
非常感谢。
我不确定这是否真的是您想要的,但这是他们开发者门户网站上所有 Apple's iOS release notes and API diffs 的 link。我相信它涵盖了 iOS SDK 的所有主要版本。
但就个人经验而言,我还想说 iOS 次要更新对现有应用程序功能的实际影响通常可以忽略不计。我会将您的 QA 工作重点放在您支持的主要版本上(在您的情况下为 7.X 和 8.X)并使用最新的稳定版本进行测试,因为这些将是您的绝大多数版本用户将使用。
即是说,我认为至少简要调查一下 iOS 版本在您的用户群中的实际分布和采用率,并就合理的分界点达成一致也是一个好主意。例如,如果您发现 87% 的用户是 运行 iOS 8.X,12.5% iOS 7.1.X 而只有 0.5% iOS 7.0.X,您可能会得出结论,为 7.0.X 用户提供显式测试 and/or 支持实际上并不值得付出努力。
有很多网站会为您提供大约 iOS adoption rates 的一般数字,让您有个大概的了解。
最后,如果您觉得您已经在测试中涵盖了(用户方面)最大的 2-3 个版本,我认为推动您的初始版本并相信您的错误是公平的 handling/update处理 可能 仍然存在的更具异国情调的 iOS 版本中出现的任何问题。但这当然是您必须为自己做出的有意识的决定。
几年前我问过非常相似的 question(不是说这是重复的!),然后我得到的只是 - "read the documentation carefully"。不幸的是,即使到现在它仍然是正确的,但是您可以获得一些工具来帮助您。
对于外部库,我强烈建议使用 CocoaPods 或 Carthage。您可以指定要支持的版本,这些工具会为您检查要包含的库是否与您的部署目标兼容。
对于您的自己的代码,您只需编写 XCTests 来验证应用程序最关键的部分或可能是整个代码库(测试 ftw) 并坚持进行版本检查。在 Swift 2.0 中,这将更加禅宗,您可以在其中使用 #available(iOS 9.0) { ... }
.