当前位置: 首页 > news >正文

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

文章目录

    • 一、前言
    • 二、xcode-select 命令
    • 三、拓展阅读

一、前言

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

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

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文件内容如下:


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.shiftprojName = ARGV[0]bundleid = ARGV[1]widgets = ARGV[2]generator = WorkspaceGenerator.new(rootpath, projName, bundleid, widgets)generator.create

执行shell脚本:

./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 强制删除安装目录下的文件;
sudo xcode-select --switch Xcode.app

三、拓展阅读

  • 《iOS 进阶专栏》
http://www.lryc.cn/news/330952.html

相关文章:

  • 手机无线投屏到windows11电脑
  • linux 环境安装配置
  • Git常用语句
  • 坦克大战_java源码_swing界面_带毕业论文
  • JVM 记录
  • Linux学习笔记————C 语言版 LED 灯实验
  • Spring Boot 配置文件
  • IPKISS ------ 查看器件默认端口名称
  • uni-app踩坑记录
  • 【嵌入式硬件】光耦
  • 学习Fast-LIO系列代码中相关概念理解
  • React 掌握及对比常用的8个Hooks,优化及使用场景
  • DNS域名解析过程
  • MySQL数据库(数据库连接池)
  • 【C#】知识点速通
  • FTP协议
  • 前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】
  • Android的硬件接口HAL-2 HIDL
  • pygame--坦克大战(二)
  • 【C语言】标准输入/输出(printf, scanf, gets, puts, getchar, putchar)
  • C、C++、C#中.vscode下json文件记录
  • 2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序
  • 使用ARCore深度API实现点云采集
  • 软考数据库
  • Echarts 自适应宽高,或指定宽高进行自适应
  • 体验报告:为什么Claude-3是码农和学者的新宠?
  • 接口自动化框架搭建(九):接入钉钉消息通知
  • 一、点击视频下载(通过视频url实现);二、点击下载视频按钮,视频以压缩包形式下载(但未实现压缩视频)
  • B树、B+树、哈夫曼树
  • 评价指标_Precision(精确率)、Recall(召回率)和Accuracy(准确率)区别和联系