Skip to content

Latest commit

 

History

History
115 lines (89 loc) · 4.98 KB

CONTRIBUTE.md

File metadata and controls

115 lines (89 loc) · 4.98 KB

合作开发需要注意的事项

GitHub管理

Branches

项目有3个分支,newCoreData 分支为默认的唯一分支,另外2个分支不使用。

Issues

DiscussionsProjects中的条目一旦删除就是永久删除,但是Issues中的项目可以开启可以关闭,较为方便。

推荐使用Issues添加需要的功能,现有的bug等。使用tag对不同的issue作出区分。

代码开发

代码结构

RacoonAccountBook
├── App
│   ├── RacoonAccountBookApp.swift
│   ├── MainView.swift
│   ├── BookTab - 账本Tab
│   ├── StoryTab - 财记Tab
│   ├── ReportTab - 报告Tab
│   ├── MeTab - 我的Tab
│   └── TopViews - 一些显示在页面最上层的UI组件
├── Auxiliary - 辅助代码
│   ├── Extensions
│   └── Functions
├── Components - 一些UI组件
├── Configuration
│   └── ColorSet.swift - 颜色配置
├── CoreData
│   ├── AccountBook.xcdatamodeld - 数据库模型
│   ├── DataStructure
│   │   └── ExpenseInfo.swift - 一条账目的数据结构
│   ├── Extension - 读取数据库必要操作
│   ├── Persistence.swift
│   └── TestData
│       └── TestExpenseInfo.swift - 测试数据
├── Info.plist
├── Launch Screen.storyboard
├── MVVM - 状态管理
│   ├── SheetConfig.swift
│   └── SheetConfigModel.swift
└── Modules
    ├── ExpenseSheet - 填写修改账目的sheet
    ├── ScreenshotImport - 截图导入
    └── VoiceInput - 语音输入

Scheme

本仓库有两个Scheme,对应的Bundle Identifier不同。

RacoonAccountBook:

RacoonAccountBook Dev:

  • com.racoonAccountBook.dev 这个随便写都可以的
  • 应用名:浣熊财记 Dev
  • 如果想在模拟器或者真机上安装多个Dev版应用,直接改一下这个也可以(但不推荐)
  • 在代码中可以使用 #if DEV #endif 来对Dev版添加不同的代码
  • 在Dev的环境下会插入测试数据

两个Scheme都开启了OS_ACTIVITY_MODE=disable来屏蔽在运行过程中系统给出的提示。如果确实要借助系统的Log debug的话,可以关闭这个参数。

Build Number and Version

本仓库使用shell脚本Script/set_build_number.sh来自动生成Build NumberVersion

  • Build Number:在Xcode构建项目时会将Build Number更新为主分支上的提交数。
  • Version:在Xcode构建项目时会将Version更新为主分支上最新的一个tag。

注意,如果要更新版本,使用git tag -a x.x.x -m "xxxx"添加version之后在Xcode里面Build一下就可以了。

Git commit

  • 在每次开始修改之前应该先使用git pullgit fetchgit merge来获取最新的代码版本,之后再修改自己的部分。
  • 尽量以尽可能小的更改作为一次commit,尽管这样可能会产生较多commits。但这样以后出现什么问题可以快速索引到某一次commit,有必要可以很方便的进行git revert
  • 在提交之前使用SwiftFormat对更改过的所有.swift文件进行格式化。安装号后格式化位置在Xcode -> Editor -> SwiftFormat -> Format File。多次格式化可以先在Xcode -> Preferences -> Key Bindings中搜索SwiftFormat设置快捷键。
  • 在每次提交之前确保项目是能够顺利构建的(使用⌘B进行构建不报错)。如果commit为不能成功build的版本,需要在commit log中注明
  • 推荐编写提交信息commit log时使用Conventional Commits
  • 提交代码时如果有push权限可以直接push;没有权限应该先private fork仓库,将自己的分支上传至自己的仓库后提pull request。

项目中使用的特殊记号

  • // TODO: 未添加的功能
  • // FIXME: 已知是bug,但是还未修复
  • // QUESTION: 对代码或者程序运行情况尚不清楚
  • // MARK: Xcode 代码分块
  • // MARK: - Xcode代码分块(带分隔符)

App Store Connect

更新日志

在每次上传新版本之后,需要在https://github.com/Racoon-Book/About更新更新日志