# 老司机 iOS 周报 #245 | 2023-05-22

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/ios-weekly.png?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新闻

### [2022 App Store Transparency Report(PDF)](https://www.apple.com/legal/more-resources/docs/2022-App-Store-Transparency-Report.pdf)

苹果发布了 2022 年的 App Store 透明度报告，这也是首次发布类似报告，App Store 的透明对所有开发者与用户都是非常有益的事，我们在近几年看到越来越开放的苹果，这无疑是值得肯定的。

而这其中有很多很有参考意义的数据，大家可以自行翻阅，我们列举出其中几项：

- 提交 Review 了 6,101,913 个 APP，被拒 1,679,694 个，被拒之后完成整改后通过 253,466 个。一次被拒可能会有多个原因，而频次最高的是 **Performance** 。
- 共有 36,974,015 名开发者，2022 年封禁了 428,487 个，其中有 3338 名提起了上诉，最后申诉成功 159 个。封禁的最主要原因是 **欺诈行为** 。
- 2022 年封禁了 282,036,628 个用户账号，避免了 $2,090,195,480 的损失。苹果不论对开发者还是用户都在付出努力保障安全。


## 新手推荐

### 🐎  [Ranges in Swift explained with code examples](https://www.avanderlee.com/swift/ranges-explained/)

[@zoeGuo](https://github.com/zoeGuo)：文章介绍了 Swift 中 Range 的不同类型： ClosedRange、CountableClosedRange ，以及使用简易的操作符代替声明 Range 的使用方法和规则。并且演示了 Range 如何转化为 NSRange 使用和 Range 在字符串使用中如何处理特殊字符。文章适合 Swift 新手快速了解 Range 的使用方法。

## 文章

### 🐎 [file behavior change in Swift 5.8](https://sarunw.com/posts/file-behavior-change/)

[@AidenRao](https://weibo.com/AidenRao)：在 Swift 5.8 之前，`#file` 和 `#filePath` 都返回文件的完整路径，而这可能会泄露个人的敏感信息。 Swift 5.8 以后，`#file`  支持只返回文件名和它出现的模块。此功能默认禁用，可以通过在 Other Swift Flags 里添加 -enable-upcoming-feature ConciseMagicFile 打开。

### 🐕 [Parallax header effect in SwiftUI using CoordinateSpace](https://arturgruchala.com/parallax-header-effect-in-swiftui-using-coordinatespace/)

[@Barney](https://github.com/BarneyZhaoooo)：这篇文章介绍了在 SwiftUI 中利用 CoordinateSpace 实现滚动视差效果。

- **Creating ParallaxHeader View:** 创造 ParallaxHeader 视图，包含坐标空间、内容和默认高度参数。
- **Adding Blur Effect:** 为头部视图添加模糊效果。
- **Offset Calculation:** 根据 GeometryProxy 和坐标空间的相对位置计算头部偏移。
- **Height Calculation:** 计算头部视图的高度修饰符。
- **Usage:** 展示了如何在 SwiftUI 视图中使用视差头部。

### 🐎 [How to Open using Rosetta in Xcode 14.3](https://sarunw.com/posts/open-using-rosetta-in-xcode-14-3/)

[@Smallfly](https://github.com/iostalks)：Rosetta 是 Apple 开发的软件转译工具，它能将基于 Intel 架构指令的应用程序在新的基于 Apple Silicon 处理器的 Mac 上进行转译和运行。

Xcode 14.3 之后，应用详情中开启 Rosetta 的选项被移除，集成到了模拟器选择列表中，方便在不同架构之间切换。


### 🐎 [Accessing Security Scoped Files](https://useyourloaf.com/blog/accessing-security-scoped-files/)

[@Damien](https://github.com/ZengyiMa)：iOS App 的应用是无法直接访问其自身容器之外的文件，例如存储在 iCloud 中的文件，直接读取，将会收到权限错误提示。如果需要访问这些文件，那么就需要使用安全范围相关的 API 了。本文会详细介绍如何使用这些 API，感兴趣的同学不妨一读。

### 🐎 [Skip typing your login credentials manually with Xcode breakpoints](https://www.danijelavrzan.com/posts/2023/04/login-xcode-breakpoint/)

[@anotheren](https://github.com/anotheren)：文章以登录凭据为例，介绍了如何使用 Xcode 断点来自动输入调试内容。该方法对代码无入侵，是个非常有用的 Tips。

## 代码

### [swift-power-assert](https://github.com/kishikawakatsumi/swift-power-assert)

[@含笑饮砒霜](https://weibo.com/chinafishnews/)： Power Assert 是使用 Swift 中宏功能创建的一个断言库，Swift 宏是一项实验性功能，因此需要预发布的 Swift 工具链。在编写测试时，我们需要使用不同的判断函数，Assertion API 有很多，不用死记硬背，只需要建立一个返回布尔值的表达式，Power Assert 就会自动显示丰厚的错误信息。

### [Canopy](https://github.com/Tact/Canopy)

[@JonyFang](https://github.com/jonyfang): CloudKit 三方库推荐 Canopy，该库隔离了 CloudKit 相关的一系列外部依赖，使得代码更易于测试。

## 书

### [The Book of Modern C++](https://github.com/lkimuk/the-book-of-modern-cpp)

[@kemchenj](https://kemchenj.github.io/)：这是国内 C++ 开发者整理出版的一本书，内容搜集自网络上优秀作者编写的文章，本书包含了十大主题：

- Basics
- Modern C++
- C++23
- Metaprogramming
- Concurrency
- Performance
- Algorithms
- Techniques
- Tricks
- Miscellaneous

> 序：既致之以广大，又尽之以精微，合之以主题，以成本书内容之深广也。而每章独立，各有所论， 故本书针对高级开发者。饶是如此，新手亦可依此进阶，小大靡遗，纤悉洞了，查漏补缺，得窥其理。

## 音视频

### [App Marketing by App Masters](https://podcasters.spotify.com/pod/show/app-marketing-podcast)

[@享耳先森](https://github.com/iblacksun)：这个系列播客专注 App Store 发行与优化，如果你是独立开发者，或有做独立开发者的想法，建议关注或收藏，找到自己感兴趣部分收听。

## 摸鱼周报

[@摸鱼周报 #94](https://mp.weixin.qq.com/s/f2Z1VRpk4Ehh3KxuY_NrvA)：第 94 期摸鱼周报来了，一起来看下本期概要：

* 本期话题：Apple 展示无障碍软件辅助新功能
* 本周学习：从 Glarity 学习前端开发流程
* 内容推荐：推荐近期的一些优秀博文，涵盖：#file 的行为变更、如何使用 @_exported 属性、In-App Purchase 实践总结等方面的内容
* 摸一下鱼：跟自己和解、接受自己、做自己的人很酷

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

- [杭州] 淘宝 - 终端平台 - iOS/Android/C++
- [上海] flomo - 招聘 iOS 开发
- [北京] TikTok - 招聘 iOS 开发
- [深圳 / 广州 / 北京 / 三亚] 字节跳动 - 剪映 - iOS / Android / PC / Web / C++ 工程师 / 算法
- [上海 / 深圳] SHEIN - iOS/Android 开发 团队介绍

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2021」，领取 2017/2018/2019/2020 内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
