首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动构建的稳定技术?

移动构建的稳定技术?
EN

Stack Overflow用户
提问于 2018-03-21 16:07:26
回答 1查看 124关注 0票数 0

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

我正在为iOS和安卓开发一个移动应用程序,使用AngularJS、Ionic和Cordova。我担心的是,iOS和安卓发布的更新一直都在进行,有些可能是错误的,或者只是彻底破坏了更改,并且突然变得与我正在使用的插件/库版本不兼容。

这将导致应用程序在生产过程中自动崩溃。但它揭示了一个更棘手的问题:决定将构建与特定的依赖(plugins/libraries/等等)挂钩。版本或只是总是拉他们的最新/稳定的版本!

选项1:锁定依赖项版本

在这里,我们指定要使用的所有依赖项的确切版本。然后我们与Ionic构建斗争,以获得应用程序,但现在是好的去。我可以预期,如果我不改变我的任何代码,每个应用程序的构建与完全相同的依赖版本总是会产生一个成功的构建。

然而,当iOS/Android确实发布了一个突破性的更改或错误(或者任何促使库/插件维护人员疯狂发布自己的新版本的东西),因为我已经将以前的构建与特定版本的依赖关系联系在一起,我可能实际上是在非常老的依赖版本上运行,现在让我的应用程序构建与所有最新版本相比将是一个非常棘手的问题。

选项2:在任何时候都使用最新/稳定版本

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

然而,当iOS/Android发布了一项需要升级到最新依赖项的重大更改时,问题可能要比选项1少得多,因为我的所有依赖项都是相对较新的版本。

是否有移动社区利用的工具/策略/技术/等等来稳定构建并使其变得更一致、更可重复?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-29 09:46:38

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

您的构建应该是自动和一致的,有一些产品可以帮助您,例如BuddyBuild和Buddy都支持Android和IOS。

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

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

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

您可以设置一个作业,以便每周在CI服务器上构建您的项目,并且只有通过所有质量检查才能发布发行版。

在新的操作系统版本上崩溃的应用不是灾难性的问题,它很常见,而且有它的解决方案,Google和Apple不会像这样向用户发布新的OS版本,开发者会得到操作系统和新API的预览版本,开发人员通常有两个多月的时间来采用他们的应用程序进行新的更改,甚至使用新的API功能。

顺便说一下,您可以访问崩溃报告工具(如Fabric.io和Firebase ),这有助于您发现生产中的问题。

干杯

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49411279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档