在公司多人协作开发,相信好多程序员都遇到非常忧伤的问题,
就是工程打不开,这样就无从下手,好多程序怨只能再从代码服务器上下载一份新的代码,今天军哥教你几个小技巧,让你的bigger瞬间提升一个档次

在公司经常遇到这种非常忧伤的问题

出现这种问题是因为多人开发中,同时修改了工程文件(小码哥彩票.xcodeproj),或者storyboard,xib,Assets.xcassets,文件,就是系统工程配置文件,导致工程打不开

解决方案

第一种解决方案 - 图形化界面

  • 1.选中工程文件->右键显示包内容

    右键显示包内容
  • 2.双击这个文件,用Xcode打开

    双击这个文件,用Xcode打开
  • 3.打开之后显示这个样纸

    打开之后显示这个样纸
  • 4.使用快捷键 cmd + F(搜索),在弹出的搜索框中输<<< 或者 >>> 或者 ====,其中的任何一个都行,然后敲一下回车(enter键)

如图,结果是这样的
  • 4.说明
    <<<<<<< HEAD代表是工程文件冲突的开始
    =====分割线
    >>>>>>> d0d695000a8e250672dad0b7954d7d18a6cc17a0结束

如图

-5.删掉>>>HEAD===>>>>>>>d0d695000a8e250672dad0b7954d7d18a6cc17a0,E16D957A1CD616610095F921 /* Resource */E1F1D2271CD602F5002AC55F /* MainViewController.swift */保留一个

  • 6.删除之后

删除之后的样子
  • 7.重复查找,如果还有冲突的地方,同上
  • 8.保存 cmd + s

    一定要保存
  • 9, (OK)到这里你的工程文件已经可以打开了
  • 10.打工告成

工程文件已经打开

第二种解决方案-终端(命令行)

  • 1.cd 进入Xcode工程文件夹

回车
  • 2.输入 ls(查看这个路径下的目录)

    查看当前路径下的文件
  • 3.输入cd vim project.pbxproj用vim编辑器查看工程文件

    回车进入工程文件
  • 4.看到的效果就是这样

    看到的效果就是这样
  • 5.科普 vim 编辑器的命令

    i 编辑
    / 查找
    dd 删除光标所在行
    shift + zz 保存并退出
    :w 将缓冲区写入文件,即保存修改
    :wq 保存修改并退出
    :x 保存修改并退出
    :q 退出,如果对缓冲区进行过修改,则会提示
    :q! 强制退出,放弃修改

注意: 在Vim编辑器下输入命令是英文状态

  • 6.输入 / << + 回车 定位冲突地方

    如图
  • 7.输入dd
    a.删除 <<<HEAD
    b. 删除 ====
    c.删除 >>>>>>>d0d695000a8e250672dad0b7954d7d18a6cc17a
    d. 删除 E16D957A1CD616610095F921 /* Resource */,
    或者
    E1F1D2271CD602F5002AC55F /* MainViewController.swift */,
    自己选择
  • 8.按照再次查询如果还有错误重复第 6 和第7步
  • 9.直到出现E486: Pattern not found: <<

    没有发现错误
  • 10.到这里离成功仅差1步,保存 输入 shfit + zz 或者:wq 保存并退出

     
  • 11 OK 大工告成,你可以再次直接打开工程了,这个时候你会发现工程已经可以打开了

    工程已经打开,是不是觉得so easy

    到这里相信大家都会了,如果觉得命令行不太好用的话,可以先用图形化界面,然后慢慢使用命令行,如果用命令行用的熟练的话,你会觉得非常好用

 

多人开发Xcode工程冲突,打不开解决办法的更多相关文章

  1. SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened becausethe project file cannot be parsed. ...

  2. iOS - xcode经常报的经典error解决办法大全

    1.错误信息: 2015-10-28 10:39:55.933 XFW[2696:55982] *** Assertion failure in -[UITableView _configureCel ...

  3. Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法

    Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法 最近在适用Ext JS4开发 ...

  4. Xcode工程文件打不开:cannot be opened because the project file cannot be parsed

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed ...

  5. Android开发 |常见的内存泄漏问题及解决办法

    在Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要 ...

  6. 微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)

    前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了 ...

  7. Quartus ii 12.1软件破解之后编译原有的工程出现报警错误的解决办法

    在Quartus ii 12.1软件破解之后,想用来编译原来编译过的工程,但是编译到最后出现下面两个错误警告: 原来以为没有破解成功或者安装的时候有文件被杀毒软件吃了,导致安装错误,又重新安装了两次都 ...

  8. Android Studio中每次打开工程Gradle sync龟速解决办法

    问题描述 自己使用android studio后,发现每次一打开工程,软件就在Grandle sync.sync就算了,而且这个步骤还必须过TZ,并且时间超级长,可能睡完觉起来还没有下载好.下面是正在 ...

  9. 微信Webapp开发的各种变态路由需求及解决办法!

    前言 最近在使用BUI Webapp开发的一个小商城项目在微信上遇到一些坑及变态需求, 层层深入, 整理一下给后来人参考. 一定有你还不知道的! 调试缓存 问题描述: 微信打开的web页面默认是会缓存 ...

随机推荐

  1. ListView+CheckBox实现全选 单击效果

    在网上也找了一些案例,但都是用Map来实现的.我的是把对象绑定到当前控件上.代码稍微简洁. main布局文件:main.xml <?xml version="1.0" enc ...

  2. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

  3. IOS 整体架构 和 MVC布局

    IOS的生态系统 IOS生态系统不仅仅是指产品,更重要的是指 iPhone/iPad/iPod/Mac +iCloud+App整个系统,包括Siri (部分设备不支持).FaceTime.Safari ...

  4. 在Linux下的中断方式读取按键驱动程序

    // 在Linux下的中断方式读取按键驱动程序 //包含外部中断 休眠 加入poll机制 // 采用异步通知的方式 // 驱动程序发 ---> app接收 (通过kill_fasync()发送) ...

  5. Python的安装和详细配置

    Python是一种面向对象.解释型计算机程序设计语言.被认为是比较好的胶水语言.至于其他的,你可以去百度一下.本文仅介绍python的安装和配置,供刚入门的朋友快速搭建自己的学习和开发环境.本人欢迎大 ...

  6. IO多路复用之select总结

    1.基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程.IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/ ...

  7. OpenGL新手框架

    开始学习用OpenGL,也就想显示一些点,以为挺简单的,哎,看了两天才会画三维的点,做个总结. 使用OpenGL的基本流程 int main(int argv, char *argc[]) { //初 ...

  8. C++作用域

    作用域通常和变量捆绑在一起,限定了变量可用范围,同时也规定了变量的生命周期:何时创建.何时销毁.作用域通常分为:全局作用域和局部作用域. 全局作用域(全局变量) 在所用函数体外部定义的变量就是全局变量 ...

  9. Mybatis 入门 -- 最简单的引入和使用

    参考:http://www.mybatis.org/mybatis-3/zh/getting-started.html 从今天开始学习官方文档. 1.项目搭建 项目结构: 首先,搭建一个maven项目 ...

  10. 创建实体数据模型【Create Entity Data Model】(EF基础系列5)

    现在我要来为上面一节末尾给出的数据库(SchoolDB)创建实体数据模型: SchoolDB数据库的脚本我已经写好了,如下: USE master GO IF EXISTS(SELECT * FROM ...