前言
在 iOS 开发中,通常可以使用以下方案来提升工程化水平:
- 使用自动化构建工具,如 Xcode Server、Fastlane、Jenkins 等,来自动完成构建、测试、打包和发布等任务。
- 使用版本控制工具,如 Git、SVN 等,来管理代码版本和协同开发。
- 使用依赖管理工具,如 CocoaPods、Carthage 等,来管理第三方库的依赖。
- 使用自动化测试工具,如 XCTest、KIF 等,来保证代码质量和稳定性。
- 使用代码风格工具,如 SwiftLint、OCLint 等,来统一代码风格。
- 使用静态分析工具,如 SonarQube、Coverity 等,来检测代码质量和潜在问题。
- 使用自动化部署工具,如 Fabric、HockeyApp 等,来自动部署应用到测试环境或生产环境。
Xcode工程分析
Xcode本质
Xcode本质是一个终端
如图所示,iOS工程本质上都是通过workspace进行管理的,可以理解成他提供了一个工作空间,这个工作空间可能管理了多个项目。每个项目有对应的产物,而target就代表不同的产物。每个项目要通过配置管理不同target,这个配置管理我们比较熟悉的就是Debug和Release。
总结一下:workspace引入了project文件,project管理了target,管理的target又是通过config来管理该target的配置。
project、workspace、target、configuration之间的关系我们已经梳理明白了,那么schema又是什么,编译一定需要schema吗? 如果我们把schema删掉,xcode上的运行按钮就没有了,是不是就不能编译了?
scheme是存在.xcodeproj文件里面,根据share是否勾选存在不同文件夹下。
工程管理
Scheme定义了要各个action使用的Target集合、以及要使用的配置以及 环境变量等等。
Target指定Product,并包含从prodect或workspace的一组文件。一个target只能有一个产物。
编译命令
1 |
|
上面命令都可以编译成功。默认编译环境是真机,不指定的话会报签名错误。
xcodebuild -workspace SJWorkspace.xcworkspace -target SJTarget 这个命令不能编译成功,workspace只是管理project提供一个工作空间,workspace要生成产物只能通过scheme去生成。
环境变量
xcode生成的产物为什么在指定目录下?可以通过Product -> Show Build Folder in Finder看到产物生成的目录。为什么在这个目录,不是其他目录?这是有配置的,打开File -> Workspace Settings…
- 本文标题:IOS APP 电商平台项目架构重构-工程化(三)
- 本文作者:Madman
- 创建时间:2023-01-10 11:21:26
- 本文链接:https://www.patpat.site/开发/前端/IOS-APP-电商平台项目架构重构-工程化-三.html
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!