如何快速复制一个iOS项目

前言

通常在开发中,有时候需要将旧项目完整迁移到一个新项目中,或者要保留旧项目的所有功能,再增加其他功能的情况下,就需要复制一份当前项目到新建项目中,以完成更多的功能需求。

一般有两种方法,第一种是新建一个空的Xcode 项目,然后将旧项目中的所有代码文件、依赖库及相关配置导入到新建项目中,如果项目比较小的时候可以采取这种方式,如果项目比较大,依赖比较多的情况下配置就会很复杂,操作起来很繁琐,且易出错,费时费力遇到bug后也难以查找,吃力不讨好。

第二种方式是通过先复制一份旧项目文件,然后在此基础上修改相关名称、配置后即可快速完成一个项目的复制工作。下面我将介绍详细的迁移步骤。

操作步骤

第一步,新建一个文件夹,拷贝一份旧项目文件到此文件夹中。
第二步,打开刚刚拷贝的新项目,首先修改项目导航栏中的工程名字,鼠标单击工程名字会变成可编辑状态,然后修改为新项目的名称,如图示1 :

图示1.png

修改确认后Xcode会弹出一个提示框询问是否同时修改相关Targets、Test 、info.plist等名称,直接点击Rename即可,如图示2

图示2.png

第三步,点击项目的Scheme名称,选择Edit Scheme如图示3:

图示3.png

然后会弹出一个设置窗口,点击左下角的Duplicate Scheme复制Scheme按钮,如图示4:

图示4.png

接着左上角的Scheme名称会变为可编辑状态,直接修改为新项目的名称,修改完成后关闭窗口,如图示5:

图示5.png

然后还需要删除原有的Scheme,再次点击项目顶部的Scheme然后选择Manager Schemes选项,在弹出的窗口中删除掉旧的Scheme,单击选中后点击下面的-号即可删除,如图示6:

图示6.png

第四步,修改项目导航栏中的项目文件根文件夹,即那个黄色文件夹,首先鼠标右击那个文件夹,然后选择Delete,在弹出的警告窗中选择Remove References按钮移除对此文件夹的引用,如图示7、8:

图示7.png
图示8.png

接着在桌面打开此项目所在的文件夹找到刚才移除引用的实际文件夹,然后修改其名称为新项目的名称,修改完成后将此文件夹拖放到Xcode项目中的文件导航栏根目录中,其中一定要勾选Copy items if neeed选项如图示9:

图示9.png

如果项目中包含了测试Target的话,首先需要删除旧的测试Target及测试文件(包含桌面项目文件夹中的测试文件夹),然后点击Xcode中的File->New->Target选项,选择一个测试Target后完成新建,如图示10:

图示10.png

在此过程中还可能出现编译文件信息丢失的可能,需要在Build Phases选项中查看Comlies Sources目录下是否有.m文件的Complier Flags信息丢失的问题,如果有则需要重新设置。

第五步,修改项目中的配置,选择TargetBuild Setting选项卡中搜索旧项目的名称,然后再搜索结果中将所有的名称都改为新的项目名称,包括info.plist,pch等的文件路径,和其他相关路径的修改,例如:library search paths等。
第六步,最后整理项目文件夹,可能会发现原来的某些文件不见了,例如:Support Files ,所以需要自己在项目导航栏中建立一个相关文件组,将其中的文件都添加进来。

总结

此种项目复制方法在操作过程中需要细心谨慎,保证每个步骤都能正确的完成。如在操作过程中有其它疑问请在下方留言,感谢您的支持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,688评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,559评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,749评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,581评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,741评论 3 271
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,684评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,122评论 2 292
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,847评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,441评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,939评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,333评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,783评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,275评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,830评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,444评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,553评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,618评论 2 249

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,050评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,471评论 25 707
  • 需求:当两个甚至两个以上的app存在小差异时,可以在一个工程(project)创建多个target每个target...
    寸光片静阅读 29,389评论 21 69
  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 11,565评论 3 42
  • 就算你走的路与世界的标准有所不同,只要你能够相信自己,那么总有一天会有人发现你这颗宝石的。 我将收回仅仅关注世界的...
    NJ_LIFE阅读 287评论 0 0