IOS APP 电商平台项目架构重构-工程化(三)
Madman 数据分析师

前言

在 iOS 开发中,通常可以使用以下方案来提升工程化水平:

  1. 使用自动化构建工具,如 Xcode Server、Fastlane、Jenkins 等,来自动完成构建、测试、打包和发布等任务。
  2. 使用版本控制工具,如 Git、SVN 等,来管理代码版本和协同开发。
  3. 使用依赖管理工具,如 CocoaPods、Carthage 等,来管理第三方库的依赖。
  4. 使用自动化测试工具,如 XCTest、KIF 等,来保证代码质量和稳定性。
  5. 使用代码风格工具,如 SwiftLint、OCLint 等,来统一代码风格。
  6. 使用静态分析工具,如 SonarQube、Coverity 等,来检测代码质量和潜在问题。
  7. 使用自动化部署工具,如 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
2
3
4
5
6
7
8
9

xcodebuild -workspace SJWorkspace.xcworkspace -scheme SJTarget -showBuildSettings -json

xcodebuild -project SJProject.xcodeproj -scheme SJTarget -showBuildSettings -json

xcodebuild -project SJProject.xcodeproj -target SJTarget -showBuildSettings -json

xcodebuild -project SJProject.xcodeproj -scheme SJTarget -showBuildSettings -json -configuration Debug -destination generic/ platform="iOS Simulator"

上面命令都可以编译成功。默认编译环境是真机,不指定的话会报签名错误。
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 许可协议。转载请注明出处!
 评论