在iOS开发的过程中,有哪些坑是值得你放在checklist中警示自己的?

理由
举报 取消

参考在Android开发的过程中,有哪些坑是值得你放在checklist中警示自己的? – 程序员通常我们会将经常遇到的问题、容易犯错的地方都放在一个checklist中,说说在iOS开发过程中有哪些问题值得你放在自己的checklist中。

2017年9月26日 1 条回复 1104 次浏览

发起人:JackAlan 初入职场

Wi输入法iOS版开发者 / SwiftGG翻译组CZO / 个人博客 http://

回复 ( 1 )

  1. 于宙
    理由
    举报 取消

    这是之前的Checklist,原封不动拷贝一下。但是后来就不怎么看这个list了,原因后面说。

    !!!提交AppStore CheckList

    #warning AppStore

    Target是否正确!!!

    版本号,版本代号

    是否切换到发布证书

    api是否切换到正式环境

    JPush是否切换到生产环境

    环信推送是否切换到生产环境

    充值提现是否被限制

    支付宝充值是否启用

    友盟在线参数是否正确

    友盟渠道是否正确

    是否开启无限聊天模式

    我这个list中大部分都是和环境配置有关,比如服务器接口的正式/测试环境、第三方服务的正式/测试环境,以及一些业务逻辑配置。

    之前每次打正式/测试包,都是手动去查看更改这些配置,这是过程枯燥繁琐而且又容易出错。

    痛苦了一段时间后,我就觉得不能这样继续下去了。

    下面是我的做法

    1,创建多个Target

    每个Target对应不同的场景,比如Arwen是企业版,Arwen Test是测试版,Arwen Key是AppStore版本,Arwen Key是另一个AppStore版本。(这里我的命名不是很直观)

    2,给每个Target添加标识宏

    Arwen_Key表示当前的Target,Arwen_AppStore表示这个一个AppStore版本。

    3,用预编译指令来识别Target

    #ifndef Arwen_AppStore //这不是AppStore版本

    #ifdef DEBUG //调试模式

    apnsCertName = @”xxxxxxxxxxxxxx”;

    #else

    apnsCertName = @”yyyyyyyyyyyyyy”;

    #endif

    #endif

    这段代码的目的是针对不同Target设置不同的推送证书。用这种方法可以在不同Target下实现不同的业务逻辑。

    这样一来,就把手动更改多项配置的过程,转变成了选择Target的过程。

    所以我上面说不用怎么看checklist了。

    其实Target还有其他用法,比如给Assets指定Target后,编译其他Target时就不会把这个Assets中的图片包含在内,以缩小包的体积。

    关于Target的更高级用法,可以阅读唐巧的这篇文章 猿题库iOS客户端的技术细节(一):使用多target来构建大量相似App

我来回答

Captcha 点击图片更换验证码