Skip to content

Commit 7ba8f2b

Browse files
committed
fix #5051
1 parent 92b3826 commit 7ba8f2b

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

Reports/2025/#343-2025.07.21.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@
3333

3434
## 文章
3535

36-
🐕 [Everything You Should Know About Spacer](https://kyleye.top/posts/everything-you-should-know-about-spacer/)
36+
### 🌟 🐢 [An open source tool to speed up iOS app launch](https://blog.sentry.io/open-source-tool-speed-up-ios-app-launch/)
37+
38+
[@ChengzhiHuang](https://github.com/ChengzhiHuang):Emerge Tools 提供了一个轻量级的收集 App 启动阶段内执行到的函数的收集工具,而不用修改编译选项(开启插桩),以此可以用来投喂给 Xcode 进行二进制重排,进而通过减少启动过程中的 Page In 数量来加快启动速度。技术方案是通过 Linkmap 或者 [trick 的方式](https://github.com/getsentry/FaultOrdering/blob/main/Sources/EMGFaultOrdering/Constructor.mm#L137) 收集函数起始的地址。然后对所有函数起始地址替换汇编指令为触发 ARM64_BREAK_INSTRUCTION 。在捕获断点后,记录下此方法,然后跳转原始逻辑继续执行。其中有非常多的细节,推荐对此感兴趣的同学阅读。
39+
40+
同时可以对此工具稍加改造,以此适配收集 App 任意阶段内的执行函数(如某个巨大模块),然后执行预热,以加快某个模块的冷启动首次进入耗时;同时其中涉及到与 [SimpleDebugger](https://github.com/EmergeTools/SimpleDebugger) 的联动,可以进行修改优化,目前是每个函数都执行一次 StopTheWorld + 替换单个函数汇编方便断点记录,可以修改为 批量执行一次 StopTheWorld + 替换所有需要函数。
41+
42+
### 🐕 [Everything You Should Know About Spacer](https://kyleye.top/posts/everything-you-should-know-about-spacer/)
3743

3844
[@AidenRao](https://weibo.com/AidenRao):SwiftUI 提供了四种 `Spacer` 类型实现灵活布局:通用 `Spacer` 在可用空间内沿主轴扩展;`_TextBaselineRelativeSpacer` 支持文本基线对齐;`_HSpacer`/`_VSpacer` 严格限定方向。它们通过 `PrimitiveSpacer` 协议共享核心属性(`minLength``axis``requireTextBaselineSpacing`
3945

@@ -51,13 +57,16 @@
5157
> 库,代码段,开源app
5258
5359

54-
### [部分使用了 Data.bytes 的代码无法正常编译](https://github.com/krzyzanowskim/CryptoSwift/discussions/1073)
55-
[CrazyFanFan](https://github.com/CrazyFanFan):iOS 26 SDK中 ``Foundation.Data`` 扩展了新的属性 ``var bytes: RawSpan { get }``,如果之前的实现里面使用了CryptoSwift 对 Data 添加的 extension 中的 ``var bytes: Array<UInt8>`` 且未明确 ``import CryptoSwift`` 就会遇到编译器无法正确匹配实现的问题。
60+
### [部分使用了 Data.bytes 的代码无法正常编译](https://github.com/SwiftOldDriver/iOS-Weekly/issues/5061)
61+
62+
[@Smallfly](https://github.com/iostalks):iOS 26 SDK中 ``Foundation.Data`` 扩展了新的属性 ``var bytes: RawSpan { get }``,如果之前的实现里面使用了CryptoSwift 对 Data 添加的 extension 中的 ``var bytes: Array<UInt8>`` 且未明确 ``import CryptoSwift`` 就会遇到编译器无法正确匹配实现的问题。
5663

5764
使用到的位置主动 `import CryptoSwift` 明确实现来源。
5865

5966
CryptoSwift 已将 extension 重命名为 byteArray ,[PR](https://github.com/krzyzanowskim/CryptoSwift/pull/1076)
6067

68+
> [CrazyFanFan](https://github.com/CrazyFanFan) 提供信息
69+
6170
##
6271

6372
> 比较不错的书的推荐和书评

0 commit comments

Comments
 (0)