由于使用Xcode自带的svn管理碰到很多问题,搞得头昏脑胀,找资料时看到小码哥这方面的视频,看完就开始折腾了。

准备:1、远程仓库地址及授权账号(用户名和密码)

2、一份项目代码,之所以要有这份代码,是因为远程仓库里没有这份代码,必须提交一份到远程仓库

开始:1、打开命令行,先检查本机svn安装情况

2、有svn ,打开~.subversion/config文件,修改文件,要求过滤掉Pods和Podfile.lock;搜 svn ignores;

3、import 这份代码 to 远程仓库,根据提示依次输入本机密码,服务器端给你账号密码,用浏览器打开远程仓库,看代码是否上次成功;

4、从远程仓库check out代码到本地,定位到check out下来的项目代码目录,使用 pod install 编译Podfile文件,命令行提示完成后,发现缺少Podfile.lock文件,编译这份代码,果然报了几个错误,怀疑是不是cocoaspod出错了,不生成Podfile.lock文件,我甚至怀疑 后缀名.xcworkspace文件都不是pod生成的,而是从远程仓库check out下来的那个文件;

5、验证猜想,新建一个项目,往里加入Pod file文件,编译,发现果然猜想是对的,pod出问题了;

6、pod --version查看pod版本号,提示这个命令有问题,又去pod官网看最新的版本号和本机安装的版本差多少,又去搜“pod 无法生成.xcworkspace”,看到有人碰到和我类似的问题,里面建议重新安装pod,但又涉及到ruby版本,查看ruby,又涉及到gem,ruby和gem相关的东西,安装位置,使用的版本,用gem安装的包等等,本来想查看使用gem安装的包的情况,想找到它们所在的目录,实在没找到,放弃了,咬牙重新安装pod,要是出问题了大不了重来

7、重新pod install 那份check out下来的代码,这下生成了Podfile.lock文件,打开项目重新编译,发现只有一个问题,“ld:library not found for -lCocoaLumberjack”,显示找不到这个库,搜这个问题,一顿排查出错的可能地方,没找到原因;又去Pods目录下找,发现果然没有这个库,又去原始代码下面找,却有这个库,比对两处的Podfile文件,内容一致,怀疑又是pod的版本不同引起的问题,又去前面的测试项目里进行测试,一样的Podfile文件编译后的结果怎么样,结果证明,在新版本的pod编译下,都缺少那个库,原始项目里使用的是老版本的pod生成的目录下有这个库,怀疑Podfile里某个库隐式调用了那个缺失的库,老版本的pod就就把它download下来了,而新版本pod没有这样做,那只好修改Podfile文件,添加那个缺失的库,让pod知道要下载那个库,重新build项目,完美通过build,总算可以舒口气了。

更新于2017-05-17

参考资料:

1、xcode 7中把本地代码上传到远程svn服务器上

2、XCode8 基于HTTP协议的SVN集成 亲测可用

链接:https://www.jianshu.com/p/c82f1340cf86

记录一次通过命令行方式来使用svn碰到的一系列问题的更多相关文章

  1. 在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容

    一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接 ...

  2. iOS:命令行方式使用OSChina托管私有代码

    一.介绍 在项目开发中,使用版本控制工具是必不可少的开发工具,它可以帮助我们程序员写完代码后及时提交备份,防止因个人操作导致代码被误删除了或者丢失了,安全可靠.同时,使用版本控制器工具也可以很方便的进 ...

  3. mysql命令行方式添加用户及设置权限

    以前总是喜欢通过phpmyadmin去添加用户和数据库,这次装完系统后,配置了一大堆东东,实在不想安装phpmyadmin了,就通过命令行方式创建了数据库和设置权限,记录一下,免得以后总是百度 关键步 ...

  4. Cocos2d-x项目编译为Android应用——命令行方式

    配置: 相关工具:Cocos2d-x 3.2 + Ant 1.9.4 + Android NDK r9d + Android SDK 运行平台:OS X 10.9.4+ Xcode 6 前言:笔者使用 ...

  5. 个人软件过程5 git命令行方式超简洁教程

    虽然许多IDE对git的支持不错,但用命令行方式,有助于对git本身的理解.这里对实际工作中,使用git的流程,以及与其相关的命令 小结一下,基本上,掌握这些命令,就能自如的在工作中使用. 1.git ...

  6. JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)

    1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...

  7. Jmeter命令行方式启动

    在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...

  8. 批处理脚本命令行方式关闭Windows服务

    对于一些不常用的Windows Services,可以通过设置其启动类型为"禁用"而将其关闭.这种关闭方式是长期性的,电脑重启之后仍然起作用. 有时候希望在批处理脚本里通过命令行方 ...

  9. SoapUI命令行方式运行

    http://stackoverflow.com/questions/9220132/soapui-groovy-script-calls-to-command-line SoapUI支持用命令行方式 ...

随机推荐

  1. str函数isdigit、isdecimal、isnumeric的区别

    s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() ...

  2. MySQL-Tool:Navicate 安装

    ylbtech-MySQL-Tool:Navicate 安装 1.返回顶部 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2. 激活返回顶部 1. 2. 3. 4. 5. 6. 7. ...

  3. Ajax 异步查询 ,刷新页面的一部分

    调用的过程是,通过Jquery注册单击事件,当单击分部视图中的按钮,就取得分部视图中文本框的值,然后调用$.Get()函数以Get形式调用控制器SearchPeople方法,参数为searchText ...

  4. 洛谷 P2754 星际转移问题【最大流】

    判无解的方法非常粗暴:快T了还是没有合法方案,就是无解. 然后枚举答案,对于每一天都建一套太空站,s连地球,t连月球,上一天的太空站连向这一天的太空站,流量均为inf.然后对于每个飞船,上一天的停靠站 ...

  5. 在代码里更新autolayout布局

    //遍历view约束(高,宽) NSArray* constrains = self.View.constraints; for (NSLayoutConstraint* constraint in ...

  6. Poj 2289 Jamie's Contact Groups (二分+二分图多重匹配)

    题目链接: Poj 2289 Jamie's Contact Groups 题目描述: 给出n个人的名单和每个人可以被分到的组,问将n个人分到m个组内,并且人数最多的组人数要尽量少,问人数最多的组有多 ...

  7. 数论(GCD) HDOJ 4320 Arcane Numbers 1

    题目传送门 题意:有一个A进制的有限小数,问能否转换成B进制的有限小数 分析:0.123在A进制下表示成:1/A + 2/(A^2) + 3 / (A^3),转换成B进制就是不断的乘B直到为0,即(1 ...

  8. 3、InputStream

    package com.io.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoun ...

  9. 转 PHP抽象类:无法实例化 (不错)

    http://blog.csdn.net/kaituozheboke/article/details/52183726 一.抽象类: 无法实例化 类前加 abstract, 此类就成为抽象类,无法实例 ...

  10. JavaScript的执行

    下面内容参考:http://blog.csdn.net/cxiaokai/article/details/7552653 http://www.jb51.net/article/36755.htm 首 ...