Nine41 CI

自动为所有运行中的 iOS 模拟器覆盖状态栏


perfect status bar

关于

博客文章

Xcode 11 附带了 simctl status_bar,这是一个覆盖模拟器中状态栏值的工具,因此您可以拍摄完美的屏幕截图。

但是,它存在一些问题

此脚本修复了大多数这些问题。它使用“Apple 的默认值”覆盖所有当前运行的模拟器的状态栏 - 完整的蜂窝信号栏、完整的 WiFi 信号栏、完整的电池、没有“运营商”名称,以及时间为 9:41

要求

安装

Swift Package Manager

Nine41 添加到 Package.swiftdependencies 值中。

dependencies: [
    .package(url: "https://github.com/jessesquires/Nine41.git", from: "4.0.0")
]

或者,您可以直接通过 Xcode 添加包。

用法

克隆仓库后,您可以创建一个自定义 bash 命令

function nine41() {
  swift run --package-path /PATH/TO/Nine41/
}

然后您可以从命令行运行它。

具有 2 个打开的模拟器的示例运行

$ nine41
Fixing status bars...
✅ iPhone 15, 65A6C323-E74D-452C-B85E-7F576259E022
✅ iPhone 16 Pro, 52E8FAD0-7743-4F85-AA2E-26E4C1275F38

没有打开的模拟器的示例运行

$ nine41
Fixing status bars...
❌ No simulators are running. Launch the iOS simulator first.

使用 Xcode 构建阶段进行自动化

这篇文章中所述,您可以使用 Xcode 构建阶段自动执行完美的狀態欄设置。

  1. 将 Swift 包添加到您的 Xcode 项目
  2. 添加一个带有以下内容的“运行脚本”构建阶段
/usr/bin/xcrun --sdk macosx swift run --package-path "${BUILD_ROOT}/../../SourcePackages/checkouts/Nine41"
  1. 构建并运行。请注意,模拟器必须启动后脚本才能工作,这意味着第一次运行可能不会产生结果,但随后的运行将会产生结果。

贡献

有兴趣为该项目做出贡献吗?请查看以下指南。

此外,请考虑赞助此项目购买我的应用程序!✌️

许可证

根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE

版权所有 © 2019-至今 Jesse Squires。