pfctl 简介
Sep 27, 2022
在 macOS 10.10 开始,系统防火墙工具由 ipfw 替换为了 pfctl,关于 pf 防火墙的使用手册可以参考这里: https://murusfirewall.com/Documentation/OS%20X%20PF%20Manual.pdf 开启 IP 转发功能 开启 IPv4 转发功能: $ sudo sysctl net.inet.ip.forwarding=1 net.inet.ip.forwarding: 0 -> 1 开启 IPv6 转发功能: …
Windows 11 安装 Microsoft Store
Sep 26, 2022
使用管理员权限打开 Power Shell,输入命令: Get-AppxPackage -allusers | Select Name, PackageFullName 列出所有微软官方的包名称,找到 Microsoft.WindowsStore 对应的完整包名称: Name PackageFullName ---- --------------- Microsoft.WindowsStore Microsoft.WindowsStore_22207.1401.1.0_arm64__8wekyb3d8bbwe 把完整包名拷贝,然后输入以下命令开始安装: Add-AppxPackage -register 'C:\Program Files\WindowsApps\Microsoft.WindowsStore_22207.1401.1.0_arm64__8wekyb3d8bbwe\AppxManifest.xml' -DisableDevelopmentMod 安装结束后就可以在所有应用中找到 Microsoft Store 了。 …
mitmproxy 入门指南
Sep 25, 2022
mitmproxy 是开源的免费的 HTTP 抓包工具。 安装 mitmproxy 下载:mitmproxy-8.1.1-osx.tar.gz 解压得到三个核心程序:mitmproxy, mitmdump, mitmweb $ tar xvf ./mitmproxy-8.1.1-osx.tar.gz x mitmproxy x mitmdump x mitmweb 在 macOS 上需要先移除额外的属性,否则执行的时候会触发看门狗询问是否允许执行的提示。 …
bitcode 被废弃了
Sep 24, 2022
在 Xcode 14 的发布日志中: https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes Apple Clang Compiler Deprecations Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14. Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols for past bitcode submissions remain available for download. (86118779) …
Windows 11 22H2 安装时跳过网络连接
Sep 22, 2022
Windows 11 22H2 更新中,默认会要求系统必须连接上 Internet 否则无法进行下一步安装。 解决方法: 按下 Shift + F10,调出命令行界面,输入 oobe\BypassNRO.cmd,然后回车。系统会重启然后重新始安装流程,就不再强制要求连接 Internet 了: …
C++ 中的 MAX 和 MIN 宏
Sep 18, 2022
在学习 C 语言的时候,最先接触到的两个宏 MAX 和 MIN,用于找出两个数中较大和较小的那个值。 大多数的教程中,这两个宏的定义是这样的: #define MIN(a,b) (a) < (b) ? (a) : (b) #define MAX(a,b) (a) > (b) ? (a) : (b) a 和 b 可以是变量或者常量,也可以是表达式或者函数调用。 …
ObjC++ 中的 lambda 和 block
Sep 15, 2022
lambda 表达式是 C++ 11 中增加的特性,和 ObjC 中的 block 很相似,都是匿名函数。 两者语法很相似: auto lambda = [] { }; lambda(); auto block = ^ { }; block(); 不同点 1: lambda 内部不能直接使用外部变量,需要把变量添加到捕获列表 block 则可以直接引用外部变量 NSMutableArray *array = NSMutableArray.array; auto lambda = [array] { [array addObject:@0]; }; auto block = ^ { [array addObject:@1]; }; 如果捕获的是 C++ 对象: …
NSValue 、结构体与 objc_boxable
Sep 15, 2022
clang 的扩展属性 objc_boxable 支持把结构体声明为可打包,这样结构体就可以使用打包语法转换为 NSValue 类型。 本质上是语法糖。 举个例子: typedef struct __attribute__((objc_boxable)) CBox { double x, y, z; } CBox; NSValue *box = @(CBox{ 12.34, 23.45, 34.56 }); CBox value; [box getValue:&value]; 需要注意的是,结构体中的成员不能是 ObjC 的类型,否则会报 Non-trivially copyable type 'CBox' cannot be used in a boxed expression 编译错误。 …
curl 断点续传
Sep 13, 2022
使用 cURL 下载大文件时,如果中途意外断开了,可以使用断点续传来下载: $ curl -C - -OL https://... 参数 -C - 表示从上次位置继续下载,-C 后面接着的参数是偏移量,- 表示自动从上次的地方接着下载。 …
使用 simctl 安装 tvOS 和 watchOS 模拟器
Sep 13, 2022
Xcode 14 开始,把 tvOS 和 watchOS 模拟器从内置调整为按需下载,使得 Xcode 安装包一下少了 4G。 除在线按需下载模拟器,也可以手动下载安装: https://developer.apple.com/download/all/ 从官网上下载 watchOS_9_Simulator_Runtime.dmg 和 tvOS_16_Simulator_Runtime.dmg , 然后在命令行下使用 simctl 安装: …