AspirinShot 开源项目教程
1. 项目介绍
AspirinShot 是一个使用 SwiftUI 在 Xcode 中创建 App Store 截图的工具。它允许开发者利用自己的 SwiftUI 和 UIKit 视图,轻松地制作出符合不同设备尺寸和语言本地化的高质量截图。AspirinShot 支持 Light/Dark 模式,并提供了一系列预制的模板,以简化截图创建过程。
2. 项目快速启动
添加项目依赖
首先,确保你已经安装了最新版本的 Xcode。
- 在 Xcode 中,选择
File > Add Packages...
- 输入
https://github.com/goodwhale/AspirinShot
并添加到你的 Target 中。 - 确保 AspirinShot 包不会被包含在你的 Release 构建中。在 Target 的
Build Settings
中,进入Build Options
并在Excluded Source File Names
中添加 "AspirinShot*"
创建截图
以下是一个简单的例子,展示了如何创建一个带有标题和背景的截图:
import SwiftUI
import AspirinShot
struct FirstScreenshotView: View {
@Environment(\.screenshotFormat) private var screenshotFormat
var body: some View {
ScreenshotWithTitleView(
position: .top(0.2),
screenshot: .fit(0.95, .top)
) {
Text("Hello", tableName: "AspirinShot")
.font(.largeTitle)
.bold()
Text("@AspirinShot")
.font(.largeTitle)
.bold()
}
.productBezel(scaledTo: .fit, statusBar: .black(on: .white))
.background(SFPatternView(systemName: "star.fill", itemSize: 40)
.foregroundStyle(.teal))
.environment(\.managedObjectContext, PersistenceController.screenshots.viewContext)
.environment(\.isProUser, true)
.environmentObject(ViewModel())
}
}
struct FirstScreenshotView_Previews: PreviewProvider {
static var previews: some View {
ScreenshotPreviews(.first, in: "zh-CN") {
FirstScreenshotView()
}
}
}
预览和导出截图
创建一个文件以启动全局预览器/导出器:
import SwiftUI
import AspirinShot
struct ScreenshotsASApp_Previews: PreviewProvider {
static var previews: some View {
AspirinShotPreview(
screenshots: [
.hero,
.why,
.how,
.success
],
userID: "yourUserId"
) {
switch screenshot {
case .hero: HeroScreenshotView()
case .why: WhyScreenshotView()
case .how: HowScreenshotView()
case .success: SuccessScreenshotView()
default: EmptyView()
}
}
}
}
启动预览并导出截图。
3. 应用案例和最佳实践
- 自定义数据和环境对象:为你的视图提供自定义数据和环境对象,以便根据不同的设备尺寸和方向调整设计。
- 本地化:利用
.strings
文件进行本地化,确保截图适用于不同的语言环境。 - 使用模板:检查项目中的
Starter Kit
,你可以复制并粘贴到你的项目中,从中开始制作截图。
4. 典型生态项目
AspirinShot 可以与其它开发工具和库一起使用,例如:
- SwiftUI:用于构建用户界面。
- Core Data:用于管理本地数据存储。
- Combine:用于处理异步事件和状态管理。
通过结合这些工具和库,开发者可以创建更加完善和高效的应用截图自动化流程。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考