iOS Method Swizzling使用陷阱
在阅读团队一项目源码时,发现Method Swizzling的写法有些瑕疵。这篇文章主要就介绍iOS Method Swizzling的正确写法应该是什么样的。
2020-11-04
iOS 14 适配:更严格的用户隐私保护
今年的iOS 14系统更新了不少内容,本文重点介绍和用户隐私保护相关的部分。iOS 14在iOS 13基础上进一步深化了对用户隐私的保护,新增的几项措施对于广告行业影响较大。
2020-10-17
WordPress安装及基本配置
WordPress是最流行的内容管理系统,有着丰富的主题和插件,方便我们构建风格不同的网站。本文讲解了它的部署及基本使用。
2020-10-11
关于原创和抄袭
搜索引擎检索出来的与开发技术有关的文章往往有很高的重复度,翻来覆去在不同网站中的都是同一篇文章,严重影响了用户体验。在这个情况中,即有抄袭者的问题,也有搜索引擎的问题。
2020-09-23
iOS文件系统目录结构
iOS是属于类UNIX的操作系统,基本遵守了UNIX文件系统层级标准(Filesystem Hierarchy Standard)。但由于iOS的封闭性,它还是有一些特有的目录。下面以iOS 12.4.8系统为例说明,方便后续查阅。
2020-09-17
CocoaPods Podfile and podspec configurations
本文讲解了Cocoapods对不同configurations的支持能力,configurations配置可以让APP在Debug、Release等模式下引入不同的代码或framework,便捷支持不同场景的配置需求。
2020-09-12
回不去的时光:稻场与星空
我生在农村长在农村,现在的生活却离农村越来越远。我永远记得幼年时那些难忘的画面,计划将这些珍贵的记忆写成一个合集「回不去的时光」。
2020-09-03
git config配置
git config是git提供用于编辑配置文件的便捷工具,git config操作的是gitconfig文件,有三个地方存储了gitconfig文件。
2020-08-29
NSUserDefaults的suitename
直接使用[NSUserDefaults standardUserDefaults]的接口可以很方便地存取字符串、数值以及序列化的二进制数据。但当APP功能足够复杂模块足够多之后,我们可能需要使用initWithSuiteName接口操作不同[域]下的NSUserDefaults。
2020-08-27
pod package的不足和改进
CocoaPods支持各种插件和扩展,pod package是常用的打包插件,它支持通过podspec将源码打包成二进制库,但它本身支持的命令比较少,在特殊要求的场合需要进行改进。
2020-07-22
iOS TestFlight的局限性及改进措施
这是对之前文章《iOS APP灰度发布方案》的补充,主要介绍TestFlight方案的局限性以及改进措施。
2020-05-26
iOS 色温和白平衡设置
白平衡是摄影领域一项很重要的设置技巧,正确的理解白平衡和色温等知识将有助于拍摄出效果更好的作品。iOS中提供了非常便捷的API帮助我们进行白平衡的设置。
2020-05-12
优化Nginx配置提升网站性能
Nginx官方博客最近发布了一篇文章《Help the World by Healing Your NGINX Configuration》,文章介绍了几种提高性能和减少网络带宽的非常实用的Nginx优化配置方法,值得参考。
2020-05-01
iOS APP灰度发布方案
对于大项移动APP来说,每一次版本更新可以先选择部分用户进行试用,并及时关注崩溃、卡顿等,等待各项业务指标都达到预期要求时,才将新版本全量推向市场。
2020-04-16
iOS Universal Links
上周,微信开发者公众号发布了《微信开放平台移动应用 SDK 更新提醒》的文章,提醒开发者升级微信iOS SDK,以适配iOS 13系统版本的更新,主要是Universal Links的适配。
2020-03-29
近期服务器的一些改进
写出优雅且高效的服务是每一个开发者都在追求的目标,高性能意味着可以用更少的成本服务更多的用户。而作为开发者,在不断优化的过程中,也能丰富自己的经验,增长知识。近期,我对服务器做了一些优化升级,感觉很有意义。
2020-03-18
iOS系统如何获取用户的本机手机号
电信运营商提供的SDK可以直接从运营商数据网关中获取当前流量卡的手机号码,省去了用户输入手机号到接收短信输入验证码的整个过程,可将用户的登录耗时减少至1.5秒,大大降低了用户的使用门槛。
2020-02-10
读老舍的《离婚》:我们终不能免俗
《离婚》创作于1933年。老舍写《离婚》时是30多岁,已然结婚生子。他把自己在北京当小职员的经历拿出来,加上一个中年男人对于婚姻的思考一起写进《离婚》。
2020-02-04
读《世界尽头与冷酷仙境》
之前从来没有读过村上春树的作品,也没有了解过《世界尽头与冷酷仙境》的介绍。花了三天时间读完这个林少华的译本。老实讲,村上春树天马行空的想象力令人叹服,但这本书整体上给我的情感触动并不是很大。
2020-02-01
庚子年春节记事
这个庚子年春节注定不寻常。非常时期行非常之法,各种力量平时看似松散无序,一旦到了紧要关头,定能上下拧成一股绳,团结一致,高效运作,这大概就是我们国家的一个可爱之处吧。
2020-01-29
2020春节假期的TODO LIST
以往的春节假期,我也是兴致勃勃的计划着要为父母做一些事情,可后面也都记不住到底有没有完成。今年还是要把计划搞的正式一些,就列出一个TODO LIST吧。
2020-01-21
iOS Asset Catalog and Bundle
对于png文件,使用Asset Catalog管理更有优势,这也是苹果在iOS 9后推荐的方式,它的好处显然易见,支持app slicing、支持设置拉伸区域、给不同的机型配置不同的图片、配置渲染颜色等。
2020-01-12
Xcode Build Settings
整理的一份Xcode 11.3 Build Settings推荐配置,对于减小包大小和性能优化有一定帮助。
2020-01-10
bitcode ITMS-90562: Invalid Bundle
ITMS-90562: Invalid Bundle - The app cannot be processed because options not allowed to be embedded in bitcode are detected in the submission.
2019-12-24
iOS Appium自动化测试框架原理简析
Appium是目前比较好用的跨平台自动化测试框架,在iOS端采用WebDriverAgent作为webdriver驱动,实现了自动化脚本编写到运行的全流程覆盖。
2019-12-14
iOS DeviceCheck详解
为保护用户的隐私,iOS系统的权限越来越收紧。而从开发者角度来说,能唯一标识一个设备对反作弊,风控的等都非常重要。从iOS 11开始,苹果提供了名为DeviceCheck的Framework来部分解决这类需求。
2019-11-22
xcodebuild build failed:Use the $(inherited) flag
今天遇到一个奇怪的问题:编译一个framework静态库,使用Xcode直接编译能成功,但在脚本中使用xcodebuild编译失败,提示某些头文件找不到。在「Header Search Paths」中添加$(inherited)解决问题。
2019-11-19
iOS NSAttributedString NSHTMLTextDocumentType陷阱
当你看到这篇文章时,很可能你也遇到了NSAttributedString的initWithData:options:documentAttributes:error:接口初始化HTML字符串的问题,这个接口的已知问题有:耗时较长,偶现crash,在不同版本系统上的表现不一致等。
2019-11-13
iOS 13越狱工具Checkra1n
今天checkra1n官网终于释放出来针对iOS 13(包括目前最新的iOS 13.2.2)的越狱工具,checkra1n工具利用的是之前axi0mX大神发现的Checkm8漏洞。
2019-11-11
iOS 13 Scene Delegate and multiple windows
iOS 13的一大改进就是支持multiple windows(多窗口)功能,虽然多窗口仅在iPadOS上获得支持,但这已经是一个很大到的进步,它将会大大提升一些场景的使用体验。本文将结合WWDC 2019相关topic介绍与多窗口相关的内容。
2019-11-06