iOS 开发

iOS 网络性能监控方案

国内的网络环境比较复杂,网络质量差异比较大,还有部分运营商劫持 200 以外的请求,经常有用户反馈,使用 iOS App 过程中遇到提示 “网络连接失败”,而隔壁家的 App 就正常。遇到这种问题,没有数据可以排查,我们也很难去判断问题到底出在什么地方,所以对网络进行监控势在必行。另外,有了监控数据,也可以针对访问比较慢的请求对一些后端问题进行排查,有针对性的优化用户体验。

iOS 开发

iOS11 使用过期方法可能会导致 SpringBoard 重启

SpringBoard 是 iOS 管理主屏幕的程序,在越狱比较流行的时候,SpringBoard 经常被用来修改美化桌面等等。但是随着 iOS 系统的完善,很多功能和 API 也都有了,越狱也越来越没有必要了,平时开发中也没怎么接触过 SpringBoard,最近在项目中遇到一个非常诡异的 bug,我们的 App 点击锁屏中的推送,然后解锁手机后,打开 App 会直接导致 SpringBoard 重启。

iOS 开发

使用 carthage 来管理项目依赖

在 CocoaPods 出现之前,iOS 开发者必须手动管理第三方库依赖,这些事情不仅没有什么技术含量,而且经常容易出错。对于新手来说,配置工程文件简直让人头疼。CocoaPods 的出现极大的改善了这些状况,它可以自动帮你管理依赖,而且大多数常用的第三方库都支持使用 CocoaPods 来进行安装。开发者终于从这些繁杂的依赖管理中解脱出来,可以把精力专注于应用本身。 然而,CocoaPods 并不是完美的,它也有许多缺点: CocoaPods 有一个中心服务器来管理各个包的元信息,一旦这个服务器挂了,CocoaPods 使用必然会受到影响,比如 CocoaPods 的官方 Repo; CocoaPods 对于工程是侵入性的,它会生成一个

iOS 开发

使用 fastlane + shenzhen 实现持续集成

在 iOS 开发中,最常见的打包方式是使用 Xcode 的 Product -> Archive 来进行打包,这种打包方式不仅慢,需要人工操作,而且打包完成之后还要手动把 ipa 包发给测试人员或上传到 AppStore,像这种重复性的工作最好由工具来完成。那么有没有一种自动化的工具可以完成这些操作呢? fastlane 就是这么一款工具,它可以自动编译和发布 iOS 、Mac 或者 Android 程序。fastlane 包含了一系列的工具链来完成这些功能,你可以根据自己的需求定制出适合自己的持续集成方案。 fastlane 的工具链 fastlane

iOS 开发

为 Xcode 工称添加多个 Targets

在项目中经常会遇到这样的需求,同一份代码需要根据不同环境打出不同的包,比如:开发环境、测试环境、生产环境等等,很多时候仅仅是修改一下 BaseAPI,但是这样会频繁的修改代码,而且容易出错。Xcode 可以创建多个 Targets,可以将 App 部分配置和代码进行分离,打包时选择相应的 Targets 就好了。 创建 Targets 我们可以在 General -> Targets 列表中选中一个 Targets,然后使用 Command-D 来 Duplicate 一个

iOS 开发

iOS 开发者账号,开发、发布证书配置

做 iOS 或者 OS X 开发的少不了与证书打交道,苹果使用证书对 App 进行签名来验证 App 的合法性,不管是进行内测还是提交到 AppStore,App 都需要进行签名。 免证书真机调试 在 Xcode 7 中,苹果放宽了对开发者的限制,开发者无需注册开发者账号也可以使用真机进行调试了,只需要在 Xcode -> Preferences -> Accounts 里登陆自己的 Apple ID,

iOS 开发

iOS应用如何统计用户数量?

在 iOS 开发中经常会有统计用户数量、追踪用户行为等需求,这一类的需求在技术上首先要解决的问题是如何进行设备去重,也就是对设备进行唯一性标记。 在 iOS 设备上,官方支持用来进行用户追踪的是 IDFA 广告标识符(IDFA-identifierForIdentifier),但是使用 IDFA 必须符合苹果的相关要求,当然也有许多第三方的 SDK 可以统计用户数量,比如友盟、极光推送等等。 IDFA 使用 IDFA 来标识唯一设备的好处是不用集成其他第三方 SDK,但是 IDFA 是可以被用户手动重置的,也就是说使用 IDFA 来判断独立设备是有隐患的,一旦用户将

iOS 开发

开发利器--免费的接口测试工具Postman

作为前端开发者,经常需要对API接口进行测试,一款好的工具能让开发事半功倍。在此,我强力向大家推荐Postman这款工具。 您可以使用 Postman: 接口测试:支持Normal,Basic Auth,Digest Auth, OAuth1.0,OAuth2.0等模式; http请求支持GET,POST,PATCH,DELETE,COPY,HEAD等14种常用的请求方式; 接口分组,接口测试参数保存,数据导出; 测试结果支持json,xml,html,text的格式化高亮显示; 接口环境配置。 Postman之前属于chrome扩展,最近开发了chrome