文章分类:开发笔记

分享在开发中遇到的问题、总结,主要为iOS、Web等前端方向文章。

iOS 15 CLLocation 读取 sourceInformation 崩溃
 开发笔记    2024-04-25
在 iOS 15 之前,iOS 的 CoreLocation 库提供的定位信息并没有标示数据来源,比如可以通过在 iPhone 手机中插入外置 GPS 硬件,或通过蓝牙连接 GPS 外设等方式达到篡改原始 GPS 数据,而 CoreLocation 很难确切感知到 GPS 信息到底来自 iPhone 还是外部设备。
iOS 越狱检测屏蔽插件 Shadow
 开发笔记    2024-04-18
Shadow 是一款强大的 iOS 越狱检测屏蔽插件,与 kernbypass 主要模拟非越狱状态文件系统不同,Shadow 胜在提供了更精细更自由的 API Hook 能力。
iOS 内核级越狱检测屏蔽方案:KernBypass
 开发笔记    2024-04-11
KernBypass 是一款内核级的 iOS 越狱检测屏蔽插件,相比传统的越狱屏蔽检测插件功能更加强大,隐蔽性更强。看川了解到已经有不少付费的插件是基于 KernBypass 开发的。
HarmonyOS的包类型和 ohpm 包管理工具
 开发笔记    2024-02-23
这是关于 HarmonyOS 的第二篇技术笔记,主要介绍 HarmonyOS 的包类型,以及 ohpm 包管理工具的相关知识。笔记的大部分内容在官方文档都有体现,请以官方文档为准。
解决 Xcode 下载 iOS Simulator 频繁失败的问题
 开发笔记    2024-02-18
从 Xcode 引导安装 iOS Simulator 套件很容易下载失败且无法断点续传,解决办法是直接从 Apple 开发者网站下载文件手动安装。
ArkTS/JS与Native的多线程交互调用
 开发笔记    2024-01-04
这是关于 HarmonyOS 的第一篇技术笔记,主要介绍使用基于 Node-API 的线程安全接口完成 ArkTS/JS与C/C++之间的多线程交互。
iOS LLVM 混淆插件:Hanabi 和 Hikari
 开发笔记    2023-12-12
近期我将项目中使用的 Xcode LLVM 混淆方案由 obfuscator-llvm 更换为开源的 Hanabi & Hikari 插件,在 Xcode 15 上适配 Clang,编译 Objective-C 项目混淆效果达到预期,但对 Swift 项目支持的还有问题。
cocoapods-packager 插件的错误修复和适配
 开发笔记    2023-11-15
在前篇文章 pod package的不足和改进 中对 cocoapods-packager 插件如何自定义参数做过介绍,那已经是 2020 年的事了,cocoapods-packager 目前依旧停留在 2016 年的 1.5.0 版本,已渐失于维护。我在适配 Xcode 15 时,遇到一些问题,这里做下记录。
Swift并发编程 - 理解结构化和结构化并发的底层技术
 开发笔记    2023-11-10
前篇文章 Swift并发编程 - 理解 async 和 await 介绍了 Swift 并发编程的两个关键字 async 和 await。本文原本打算继续写 Task、Actor 等内容,但发现需要补充的基础知识很多。
由 xpc_connection_send_message_with_reply_sync 超时引发的崩溃
 开发笔记    2023-09-01
iOS 的一些系统接口需要调用 xpc_connection_send_message_with_reply_sync 方法与其它进程通信并返回结果,在低性能设备上打开 APP 后如果有频繁的 xpc_reply_sync 调用可能会诱发超时卡死。
Swift并发编程 - 理解 async 和 await
 开发笔记    2023-06-30
本文是我学习 Swift 并发编程的第一篇笔记,文章从几个不太好理解的点,介绍了async 和 await 语法关键字的使用方法和内在含义。
销毁 Linux 线程的正确方式
 开发笔记    2023-06-20
在 Linux 系统中,线程是轻量级的执行单元,正确销毁线程可避免内存泄漏等问题。Linux 线程的有 joinable 和 detached 两种属性。
判断浏览器User-Agent是否伪造的常规方法
 开发笔记    2023-05-23
User-Agent使用一串特定的字符串来标识网络客户端信息,User-Agent常被网站用于平台判断、爬虫检测等。本文介绍一些判断User-Agent是否伪造的常规方法。
浏览器的 Secure Context 安全上下文限制
 开发笔记    2023-04-10
主流浏览器都启用了Secure Context,它禁止浏览器访问被认为是不安全的内容,防止不合法访问造成的信息泄漏和安全问题。
计算机系统中的时间戳
 开发笔记    2023-03-20
这是一篇简单的笔记,整理下目前已知的不同计算机系统的时间戳计数标准。
Validating App Store Receipts
 开发笔记    2023-03-15
Apple 的 Receipts 文件,包括App Attest receipt、App Store receipt等,都是采用PKCS #7容器格式包装的,包含签名、证书链、及使用ASN.1编码的payload。本文从原理和细节上讲解了使用 python 如何解码Receipts文件,如何验证签名、校验证书链、并提取payload。
iOS Flutter MethodChannel 双向通信
 开发笔记    2023-02-12
MethodChannel 是 Flutter提供的最常用的和 Native App 双向通信的方式。本文将演示这种通信方式的使用。
iOS Flutter 开发环境部署
 开发笔记    2023-02-07
按计划应该是继续SwiftUI相关的,临时需求用到了Flutter,接下来的几篇可能都是和Flutter相关(只是可能)。本文记录iOS Flutter 开发环境部署步骤。
拥抱 Swift 和 SwiftUI
 开发笔记    2023-01-13
Apple 分别于2014年,2019年发布了 Swift 语言和 SwiftUI 框架,对于 iOS 开发者来说,技术的更新换代是不可回避的趋势,应该积极学习运用。
以太坊智能合约入门:Ganache + Truffle
 开发笔记    2022-12-22
借助Ganache和Truffle,可以快速入门以太坊智能合约开发,本文将通过一个Demo,演示智能合约开发、编译至部署过程。
iOS Background Task使用陷阱
 开发笔记    2022-03-10
发现线上用户有在后台状态被杀死的情况,最终定位到是不合理使用Background Task造成的,这篇文章简要介绍下使用Background Task需要注意的事项。
IntelliJ IDEA 制作生产 jar 包
 开发笔记    2022-02-05
这是一篇入门级的开发手册,介绍使用 IntelliJ IDEA 新建 Java 项目,和生成 jar 包。
Linux线程局部存储 Thread Local Storage
 开发笔记    2022-01-15
在C/C++程序中,全局变量默认是所有线程共享的,开发者需要处理多线程竞争问题。有些情况下我们需要保证一个线程独享一份数据,其它线程无法访问。典型的就是errno全局变量,它总是会保存当前线程最后一个调用的错误码,不会存在线程冲突。这个时候需要使用线程局部存储(TLS)来解决。
如何正确地获取线程ID?
 开发笔记    2022-01-09
如何正确的获取线程ID?这个问题看似简单实则暗藏陷阱。由于存在用户态和内核态两层线程模型,就有两种获取线程ID的方式。
优雅地使用#include
 开发笔记    2022-01-05
#include并不只是用来引用头文件的,合理的使用#include可以让代码更优雅。
LLDB命令速查手册
 开发笔记    2021-09-29
LLDB是Xcode上默认的调试器,支持C/C++、Objective-C 和 Swift 程序的调试,也是LLVM项目的一个可重用的高性能调试器。在LLVM项目的lldb子目录可以查看LLDB的源码。
iOS安全:Tweak开发环境及入门
 开发笔记    2021-08-26
Tweak原指微调以增强电子系统功能的实用工具;在iOS中,Tweak是广泛使用的越狱插件开发工具,通过创建dylib注入到宿主进程,完成各种HOOK操作。阅读本文将快速入门Tweak开发。
Using a Custom Toolchain in Xcode
 开发笔记    2021-06-17
特殊情况下需要使用自定义的Toolchain,Xcode便捷支持选择不同的Toolchain。自定义的Toolchain在macOS和Xcode升级时可能需要做维护。
iOS WKWebView详解及JS Bridge同步调用问题
 开发笔记    2021-06-12
WKWebView是 iOS 8.0以后用于替代UIWebView的浏览器组件。和UIWebView相比,WKWebView性能更高,支持更多的HTML5特性,控制更加细致。本文简要介绍了UIWebView的使用以及JS和native APP同步交互的问题。
SQLite开发文档:PRAGMA配置、性能优化
 开发笔记    2021-05-29
本文是kanchuan.com整理的关于SQLite的第三篇文章,主要介绍SQLite的PRAGMA配置参数及性能优化的一般方法。