文章分类:开发笔记 | 第 3 页
分享在开发中遇到的问题、总结,主要为iOS、Web等前端方向文章。
pod package的不足和改进
CocoaPods支持各种插件和扩展,pod package是常用的打包插件,它支持通过podspec将源码打包成二进制库,但它本身支持的命令比较少,在特殊要求的场合需要进行改进。
iOS TestFlight的局限性及改进措施
这是对之前文章 iOS App灰度发布方案 的补充,主要介绍TestFlight方案的局限性以及改进措施。
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推荐配置,对于减小包大小和性能优化有一定帮助。
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.
iOS Appium 自动化测试框架原理简析
Appium是目前比较好用的跨平台自动化测试框架,在iOS端采用WebDriverAgent作为webdriver驱动,实现了自动化脚本编写到运行的全流程覆盖。
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漏洞。
iOS 13 Scene Delegate and multiple windows
iOS 13的一大改进就是支持multiple windows(多窗口)功能,虽然多窗口仅在iPadOS上获得支持,但这已经是一个很大到的进步,它将会大大提升一些场景的使用体验。本文将结合WWDC 2019相关topic介绍与多窗口相关的内容。
iOS 真机和模拟器HTTPS Charles抓包指南
Charles是十分流行的HTTP代理服务器软件,是移动开发者的常用工具。使用Charles时需要正确的配置才能使其正常工作。
CAShapeLayer Path Animation
CAShapeLayer动画时一个小技巧,避免直接赋值path,而使用strokeEnd可以自定义动画效果。
iOS Sign With Apple 开发实践
在iOS 13系统中,Apple要求提供第三方登录的App也需要支持「Sign With Apple」,本文主要介绍「Sign With Apple」在服务端的校验逻辑。
iOS crash log分析实践
通过分析线上的一个crash演示iOS crash log分析的一般方法。会涉及到otool,dwarfdump,atos,IDA等工具的简单使用及iOS 汇编分析。
Thread Sanitizer 的原理和使用
Thread Sanitizer是基于LLVM的适用于Swift和C语言的检测数据竞争的工具。
Address Sanitizer 的原理和使用
Address Sanitizer是基于LLVM的适用于C(包括Objective-C)和Swift的用于发现内存使用问题的工具。
iOS 13 中对 dyld 3 的改进和优化
在iOS 13系统中,iOS将全面采用新的dyld 3以替代之前版本的dyld 2。dyld 3带来了可观的性能提升,减少了App的启动时间。
iOS Self-Sizing的一点优化
在 iOS 11之后,UITableView默认开启了Self-Sizing。利用Self-Sizing技术,我们可以不需要实现heightForRowAt方法。但Self-Sizing可能会引起UITableView的闪烁问题,需要做一些优化处理。
iOS 64/32位系统在处理BOOL值时的区别
使用JSONModel时发现在iPhone 5C设备上出现[__NSCFString charValue]: unrecognized selector的报错。
beego实践笔记
beego是流行的Golang开源WEB框架。如果你了解python的Django和PHP的yii2框架,那么beego框架是非常容易入门的。beego是典型的MVC架构,作者在设计时借鉴了已经很成熟的PHP框架思想。
iOS 13 适配
iOS 13系统适配笔记。
Yii2 开启 CSRF 后 POST 请求"提交的数据无法被验证"
CSRF 全称 Cross-site request forgery,即跨站请求伪造。利用 CSRF 攻击者可以破坏网络请求会话的完整性。
WWDC19:2019苹果全球开发者大会
昨晚WWDC19如期举行,一如既往的吸引了不少开发者和媒体的关注。本次WWDC内容已经提前被媒体曝光了不少,但还是有不少惊喜点。
git技巧:gitignore忽略已提交的文件
.gitignore仅会忽略未被track的文件,如果文件已由git管理,则修改.gitignore忽略该文件是不会生效的。应该删除缓存重新添加track文件。
iOS安全:修改Mach-O
有的时候我们希望干预Xcode生成Mach-O的过程,在签名之前在Mach-O中插入自定义的segment和section数据。修改Mach-O看似简单却不总是那么好用。
