代码之家  ›  专栏  ›  技术社区  ›  smeeb

移动构建的稳定技术?

  •  0
  • smeeb  · 技术社区  · 8 年前

    请注意: 虽然我在这里特别提到AngularJS、Ionic和Cordova,但我真的是在谈论 任何 为iOS和Android平台生成二进制文件的移动应用程序(混合和本地类似)。因此,我相信任何有移动开发经验的人都应该能够解决这个问题!


    我正在使用AngularJS、Ionic和Cordova为iOS和Android构建一个移动应用程序。我担心的是,iOS和Android版本会一直更新,有些可能是有问题的,或者可能是彻底的破坏性更改,突然之间与我使用的插件/库版本不兼容。

    这将导致应用程序在生产过程中自动崩溃。但它揭示了一个更为棘手的问题:决定将构建与特定依赖(插件/库等)版本相关联 只要始终使用最新/稳定的版本即可!

    选项1:锁定依赖项版本

    在此,我们指定 全部的 要使用的依赖项。然后,我们与Ionic build进行斗争,以构建应用程序,但现在可以开始了。我可以预期,如果我不更改任何代码,那么针对完全相同的依赖版本的应用程序的每个后续构建都将始终获得成功的构建。

    然而 ,当iOS/Android 发布一个突破性的更改或bug(或任何促使库/插件维护人员疯狂发布自己新版本的东西),因为我已经将以前的构建固定到依赖项的特定版本上,我实际上可能在非常旧的依赖项版本上运行,现在让我的应用程序构建再次与所有最新版本进行对比将是一件非常头痛的事情。

    选项2:始终使用最新/稳定版本

    如果我 不要 指定依赖项版本(并且让构建始终使用最新和最棒的版本),然后我可以热切地工作以获得我的应用程序构建,然后等待几天(不要更改我自己的任何代码),然后再次尝试构建,编译/构建可能会失败!这是因为在这几天之间,一些项目升级了自己和/或自己的依赖项,并引入了破坏性的变更。

    然而 ,当iOS/Android发布了一个突破性的更改,要求我升级到最新的依赖项时,麻烦可能会比选项1小得多,因为我将使用所有依赖项的相对更新版本。

    移动社区是否有任何工具/策略/技术等可用于稳定构建并使其稳定,以便我可以拥有更一致、可重复的构建?

    1 回复  |  直到 8 年前
        1
  •  2
  •   M. Reza Nasirloo    8 年前

    建议使用特定版本的依赖项,您可以考虑在次要补丁级别X.Y*使用概念*来获得最新的bug修复。

    您的构建应该是自动且一致的,有一些产品可以为您做到这一点,例如BuddyBuild和Buddy同时支持Android和IOS。

    成功的构建并不是全部,在发布之前,应用程序应该通过所有功能和QA测试。因此,您需要编写尽可能多的单元测试和功能测试来覆盖质量检查。还有其他QC工具可以进一步保证,例如静态代码分析工具可以帮助您发现潜在的bug和故障,测试覆盖率工具可以让您知道代码的哪些部分尚未测试。

    下面是一个简单的CI/CD工作流

    Code -> Push -> CI Test -> CD Publish Release

    您可以将作业设置为每周在CI服务器上构建项目,并仅在通过所有质量检查后发布版本

    应用程序在新的操作系统版本上崩溃并不是一个灾难性的问题,这很常见,而且有它的解决方案,谷歌和苹果不会像那样向用户发布新的操作系统版本,开发人员会获得操作系统和新API的预览版本,开发人员通常有2个多月的时间来采用新更改的应用程序,甚至使用新的API功能。

    顺便说一下,您可以访问Fabric等崩溃报告工具。io和Firebase,帮助您发现生产中的问题。

    干杯