NSUserDefaults的suitename

直接使用[NSUserDefaults standardUserDefaults]的接口可以很方便地存取字符串、数值以及序列化的二进制数据。但当APP功能足够复杂模块足够多之后,我们可能需要使用initWithSuiteName接口操作不同[域]下的NSUserDefaults。

pod package的不足和改进

CocoaPods支持各种插件和扩展,pod package是常用的打包插件,它支持通过podspec将源码打包成二进制库,但它本身支持的命令比较少,在特殊要求的场合需要进行改进。

iOS 色温和白平衡设置

白平衡是摄影领域一项很重要的设置技巧,正确的理解白平衡和色温等知识将有助于拍摄出效果更好的作品。iOS中提供了非常便捷的API帮助我们进行白平衡的设置。

iOS APP灰度发布方案

对于大项移动APP来说,每一次版本更新可以先选择部分用户进行试用,并及时关注崩溃、卡顿等,等待各项业务指标都达到预期要求时,才将新版本全量推向市场。

iOS Universal Links

上周,微信开发者公众号发布了《微信开放平台移动应用 SDK 更新提醒》的文章,提醒开发者升级微信iOS SDK,以适配iOS 13系统版本的更新,主要是Universal Links的适配。

iOS系统如何获取用户的本机手机号

电信运营商提供的SDK可以直接从运营商数据网关中获取当前流量卡的手机号码,省去了用户输入手机号到接收短信输入验证码的整个过程,可将用户的登录耗时减少至1.5秒,大大降低了用户的使用门槛。

iOS Asset Catalog and Bundle

对于png文件,使用Asset Catalog管理更有优势,这也是苹果在iOS 9后推荐的方式,它的好处显然易见,支持app slicing、支持设置拉伸区域、给不同的机型配置不同的图片、配置渲染颜色等。

Xcode Build Settings

整理的一份Xcode 11.3 Build Settings推荐配置,对于减小包大小和性能优化有一定帮助。

iOS DeviceCheck详解

为保护用户的隐私,iOS系统的权限越来越收紧。而从开发者角度来说,能唯一标识一个设备对反作弊,风控的等都非常重要。从iOS 11开始,苹果提供了名为DeviceCheck的Framework来部分解决这类需求。

xcodebuild build failed:Use the $(inherited) flag

今天遇到一个奇怪的问题:编译一个framework静态库,使用Xcode直接编译能成功,但在脚本中使用xcodebuild编译失败,提示某些头文件找不到。在「Header Search Paths」中添加$(inherited)解决问题。

iOS NSAttributedString NSHTMLTextDocumentType陷阱

当你看到这篇文章时,很可能你也遇到了NSAttributedString的initWithData:options:documentAttributes:error:接口初始化HTML字符串的问题,这个接口的已知问题有:耗时较长,偶现crash,在不同版本系统上的表现不一致等。

iOS 13越狱工具Checkra1n

今天checkra1n官网终于释放出来针对iOS 13(包括目前最新的iOS 13.2.2)的越狱工具,checkra1n工具利用的是之前axi0mX大神发现的Checkm8漏洞。