iOS开发进阶(十三):脚手架创建iOS项目

文章目录

一、前言

项目初期,需要搭建项目基本框架,为此离不开辅助工具,即脚手架。当然,IDE也可以实现新建空白项目,但是其新建后的项目结构可能不符合预期设计,故需要通过脚手架创建项目方式统一项目开发规范,对于开发管理至关重要。

脚手架shell文本命令(createiOS.sh)如下:

powershell 复制代码
git clone http://88.66.99.83/BPPlatform/vast_app_template.git
cd vast_app_template
/usr/local/cocoapods/bundle/bin/bundle-env ruby create_xcode_project.rb ../ TestSC com.boc.test
open ../

其中,create_xcode_project.rb文件内容如下:

javascript 复制代码
require File.expand_path('../proj_creator', __FILE__)
require File.expand_path('../file_migration', __FILE__)
require File.expand_path('../conf_substitution', __FILE__)
require File.expand_path('../create_main_workspace', __FILE__)

# # create program
# puts "\033[32m'=============START============='\033[0m\n"
# creator = ProCreator.new
# creator.start
#
# # migrate files
# puts "\033[32m'files setting...'\033[0m\n"
# mig = FileMigration.new
# mig.migration
#
# # replace key words
# puts "\033[32m'content setting...'\033[0m\n"
# subOp = ConfSubsitution.new
# subOp.start
#
# puts "\033[32m'pod install...'\033[0m\n"
# puts "\033[32m#{`pod install`}\033[0m\n"
#
#

rootpath = ARGV.shift

projName = ARGV[0]

bundleid = ARGV[1]

widgets = ARGV[2]

generator = WorkspaceGenerator.new(rootpath, projName, bundleid, widgets)

generator.create

执行shell脚本:

powershell 复制代码
./createiOS.sh

生成后的项目结构如下图所示:

由项目结构可知,脚手架中对项目做了很好的分层处理,便于项目解耦。

二、xcode-select 命令

Print or change the path to the active developer directory. This directory controls which tools are used for the Xcode command line tools (for example, xcodebuild) as well as the BSD development commands (such as cc and make).

-help可查看xcode-select存在哪些命令:

当安装多个xcode的版本,使用该工具使用指定的版本。

  • -p 或者 --print-path 查看当前开发者目录,也即是xcode的版本目录。
  • -s <path>--switch <path> 选择xcode版本。
  • --install 安装;
  • --version 查看版本;
  • --reset 恢复默认;
  • sudo rm -rf /Library/Developer/CommandLineTools 强制删除安装目录下的文件;
powershell 复制代码
sudo xcode-select --switch Xcode.app

三、拓展阅读

相关推荐
lancoff6 小时前
#3 Creating Shapes in SwiftUI
ios·swiftui
lancoff7 小时前
#1 How to use Xcode in SwiftUI project
ios·swiftui
lancoff7 小时前
#2 Adding Text in SwiftUI
ios·swiftui
良逍Ai出海8 小时前
Build in Public|为什么我开始做一款相册清理 App(听说有竞品年收益40W)
ios·uni-app·ai编程·coding
笑尘pyrotechnic1 天前
LLDB进阶:使用命令行进行检查
ios·objective-c·cocoa·lldb
z***y8621 天前
Swift在iOS中的Xcode
ios·xcode·swift
AirDroid_cn1 天前
iOS 18 后台应用偷跑流量,如何限制?
macos·ios·cocoa
u***42071 天前
macOs安装docker且在docker上部署nginx+php
nginx·macos·docker
明君879971 天前
Flutter 图纸标注功能的实现:踩坑与架构设计
android·ios
江东小bug王1 天前
深入理解 UINavigationController:生命周期、动画优化与性能调优
ios