本文将回答有关Zendesk iOS sdk更新策略的常见问题。亚博

Zendesk如何亚博分发它的sdk,当Swift、Xcode或iOS的新版本发布时,会有什么影响?

大多数Zendesk移动亚博sdk都是用Swift编写的,除了1。x个版本的聊天SDK。每个Zen亚博desk移动SDK也是作为闭源SDK分发的(这意味着SDK代码在分发给我们的客户之前是预编译的)。

Swift和闭源的结合意味着,每次苹果发布Swift、Xcode或iOS的新版本时,Zendesk可能都需要亚博发布新版本的sdk。如果不使用新编译的版本,我们的客户也可能无法在新版本之上使用以前版本的sdk。

什么是Swift Module Stability ?为什么Zendesk不使用它亚博?

亚博Zendesk一直在等待Swift模块的稳定性。苹果最终将其发布目标锁定为Swift 5.1, Zendesk已经在致力于将其集成到iOS sdk中。亚博一旦Swift 5.1以稳定版本发布,Zendesk将支持模块稳定性,与Swift未来版本的前向兼容性将不再亚博是问题。

当苹果发布新版本的Swift、X亚博code或iOS时,Zendesk会发生什么?

当苹果发布新的iOS或Xcode版本(或Swift,直到苹果发布完全稳定的Swift Module Stability)时,Zendesk更新其iOS sdk的策略如下:亚博

  1. 亚博Zendesk没有发布任何基于苹果alpha版本的移动sdk版本。

  2. 当苹果发布测试版时,Zendesk尝试用“beta n”版本构建sdk:亚博

    • 如果构建通过,我们就在上面运行自动化测试套件并发布它。通常情况下,产品版本将涉及更多的测试,包括手动测试,但这将延迟Beta版本的交付。
    • 如果构建失败,我们会尝试调试任何问题,但我们不能保证我们会有一个测试版的构建。在过去,我们在苹果的beta版本中遇到了一些错误,这些错误阻止了我们针对特定版本进行编译。这个问题通常在以下版本中得到解决。
  3. 当iOS, Xcode或Swift版本成为GM版本时,Zendesk会使用特定的GM构建sdk:亚博

    • 如果构建失败,我们将调试该问题,直到成功构建为止。这个成功的构建是针对我们的自动化测试套件运行并发布的。我们也很快地用另一个已经经历了回归测试的版本来跟踪这个构建。

请注意,beta版本的构建时间特别棘手。遵循行业最佳实践,与大多数iOS社区一起,我们的构建和发布管道依赖于第三方,如CI提供商和测试机构。如果它们不提供beta兼容性,那么生成我们的sdk需要更多的手工工作,并且容易出错。