乐于分享
好东西不私藏

安卓工程迁移iOS环境开发手记

安卓工程迁移iOS环境开发手记

本文记录安卓工程迁移iOS过程中的实操问题及解决方法,搭配开发日常感悟。

一、微信登录异常:Universal Link配置问题

昨天把安卓工程迁移到 Mac 环境,做 iOS 端测试的时候,拉起微信时弹出提示:Universal Link 通用链接未配置。
因为安卓端没有报错,推测安卓端暂时不需要这项配置,当初配置微信登录时,看到过这个配置项,就随便填了个域名,没考虑到 iOS 会用到。

1.1 配置前提:HTTPS网站升级

若要配置 Universal Link,首先得有支持 HTTPS 的网站。我之前申请微信开发者后台时,平台本就要求提供一个已备案的官网用于介绍 APP,刚好可以直接将这个旧网站升级为 HTTPS。

1.2 HTTPS升级流程

升级流程并不复杂,需要 SSL 证书和密钥。正式环境可在阿里云、腾讯云申请可信证书,我目前只是进行本地测试,就先用自签证书临时使用。其缺点是浏览器打开时会提示不安全警告,但用于调试完全足够。

1.3 Universal Link配置与审核

网站升级为 HTTPS 后,再配置 Universal Link 并部署到 Web 服务器上,以便能够被访问。配置文件中需填写 APP 的Bundle IDTeam ID,确保微信授权回调时能正常跳转回自己的 APP,完成校验流程。
最后,需将 Universal Link 填写到微信开放平台的 iOS 应用配置中,修改原有配置并提交审核。微信方面的审核速度很快,由于改动较小,不到一个工作日就审核通过了,审核完成后,iOS 端的微信快捷登录就能正常使用。

二、图片加载异常:绝对路径转相对路径

除此之外,我还碰到一个比较严重的问题:之前安卓端为了缓存图片,一直存储的是完整的绝对路径,这就留下了很大的隐患。
安卓和 iOS 的本地目录规则完全不同,绝对路径在两端不通用,这直接导致跨平台图片加载失败,最终只能统一改为相对路径来处理。
先通过代码获取当前设备下 APP 的根目录,再拼接相对路径,动态合成有效的绝对路径,这样无论在安卓还是 iOS 端,都能正常读取图片资源。

三、迁移过程中的其他注意事项

这次迁移过程中,我前后修复了不少隐藏 bug。很多修改需要双端同步进行,若涉及数据表新增、字段修改,就必须在客户端和服务端同步调整,并进行双端验证。
尤其是图片路径这个问题,排查和修复花费了很长时间,这也是由于我客户端开发经验不足造成的。

四、开发日常感悟

其实无论是居家独立开发,还是在公司参与团队协作,日常开发的状态都大致相同。
每天早上我都会列好当天要完成的工作事项,但在实际开发过程中,总会冒出各种突发问题,有些问题必须立即解决,有些则可以暂时记录下来,延后处理。

4.1 工作优先级判断

如果临时出现的 bug 不影响当天计划事项的开发,就先记录下来,后续统一修复;如果问题卡住了主流程,阻碍后续工作推进,那就必须优先解决。
日常计划大多是功能迭代、新增需求这类正向开发任务,中途冒出的基本都是各种隐性 bug。修复 bug 往往比较耗时,经常导致当天原定计划无法完成,实际产出还不到计划的一半,难免会觉得进度很慢。
但我慢慢也想明白了,开发本就如此,一边修复旧问题、解决新 bug,一边稳步推进功能迭代。所有问题早晚都要解决,只是处理的先后顺序不同而已。

4.2 个人开发习惯

我个人习惯优先修复 bug,问题不处理完,心里总会觉得别扭,无法安心开发新功能。另外,在 bug 出现的现场进行修复,效率也会更高。
还有一点特别重要,遇到问题一定要及时记录。人的记忆力很有限,自测时发现的异常,如果不马上记下来,转头就会忘记。

4.3 独立开发与团队协作的区别

独立开发和团队协作,是两种完全不同的状态。
自己单独开发时,没有人监督,全靠自觉。需求排期、bug 修复、自测压测、性能优化,所有事情都要自己安排,自己管理开发节奏。
但在团队中就不一样了,有明确的上线节点和截止时间,还需要配合前后端对接工作。每个人的工作都环环相扣,不能只按照自己的节奏推进。因此在团队协作中,要优先处理多人协同的工作,利用其他时间再处理自己的 bug 修复、功能优化和小迭代。
如果双方手上的任务都很重,出现工作冲突,也可以好好沟通、互相协商,灵活调整对接时间。工作中的分歧和时间冲突,都是可以商量解决的,沟通才是团队高效协作的关键。

五、总结

总的来说,开发就是一个持续解决问题、不断推进的过程。不必为进度慢而焦虑,只要每天都有进展,项目的完整度比昨天多一点就好。
合生中央城