前言,最近iOS 项目需要将代码提交到 svn 服务器上。在网上找了很多方法,大多是 xCode 以前的版本。所以在成功提交代码后,记录下来,方便以后回顾也与大家共勉,有错误之错,请留言指出,不甚感谢。
环境:
1、mac系统:OS X EI Capitan 10.11.2;
2、xCode Version 7.2 (7C68);
3、svn 服务器已建好(服务器的搭建就不做描述了,我的是 windows 系统下的服务器,提交代码与SVN服务器无关,确定svn服务器能用就好)
步骤
一、配置前检查
1.1、检查SVN 是否安装
mac 自带SVN,如果未安装,请自行安装,安装方法不在此做说明。
打开 终端 输入命令=> svn --version
显示信息:
svn: invalid option character: e Type 'svn help' for usage.
说明已安装好svn。
如果显示信息:
svn: command not found
说明没有安装svn。
1.2、用SVN 命令去信任 svn 服务器。
(这一点不知道是不是所有的svn 服务器都需要信任,我的是需要这步操作,你也可以暂不操作这一步,以后再操作也不影响)
1.2.1、打开终端输入命令
=>svn ls svn服务器地址及目录
显示信息:
Error validating server certificate for 'https://192.168.1.177:8443':
- The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually!
- The certificate hostname does not match.
Certificate information:
- Hostname: yanfafuwuqi
- Valid: from Thu, 06 Jun 2013 03:46:19 GMT until Sun, 04 Jun 2023 03:46:19 GMT
- Issuer: yanfafuwuqi
- Fingerprint: f1:05:37:2a:b0:0b:15:ec:d0:44:4a:c2:b9:38:db:c3:cb:58:02:b5 (R)eject, accept (t)emporarily or accept (p)ermanently?
1.2.2、输入命令
=>p
显示信息:
Authentication realm: https://192.168.1.177:8443 Subversion Repositories
Password for 'mac用户名':
1.2.3、输入mac用户的密码
显示信息:Authentication realm: https://192.168.1.177:8443 Subversion Repositories Username:
1.2.4、输入 SVN 用户名回车,再输入密码
这时终端窗口中会显示你连接的SVN 服务器目录下的内容。
二、检出
可以用命令行检出或用xCode检出,二选一就可以了,命令行检出简单明了,建议用命令行检出。
用命令行检出:
- cd 到工作目录
- =>svn co [svn 地址及代码根目录] [本地目录 . 代表当前目录]
这时若未信任服务器会提示要信任服务器,执行这行命令后,在本地目录中会多出一个隐蔽的文件夹 .svn 这个是 svn 的配置信息,在项目检出后,就可以新增,修改代码。
用xCode 打开项目,第一次进行上传时会弹出 svn 用户及密码输入框
用 xCode 检出:
2.1、打开 xCode 选择 Source Control -> Check Out... 弹出窗口:

2.2、输入 svn 服务器地址及你要检出的目录,点击 Next,这时有可能会弹出信任 SVN服务器证书的窗口

2.3、类型选择 Subversion, 输入你的svn用户名及密码。

2.4、选择代码在本地存放的位置和文件名,点击 Download。

2.5、如果这个文件夹已存在,会提示是否替换。注意,如果 选择替换,会把你原文夹彻底删除,这里的选择要么是替换,要么你换个位置再保存。

三、检入
【检入的项目所在的目录必须是从SVN 检出的,如果不是,请按【二、检出】这一步,先检出项目存放目录】
3.1、打开项目,选择 Source Control -> Commit... 弹出窗口:


3.2、先择要上传的文件,点击 Commit * File; * 是你要提交文件的个数,这时有可能会弹出窗口

到这里你就成功使用SVN 管理你的代码了。
其他说明
检出添加svn 库是一个添加svn 库的方法,svn 库也可以用其他方法添加,这里就不做描术,可以自己研究。
一些其他问题:
如果弹出窗口说“The working cope "xxxx" failed to error: XXXXXXXXXX to git.”
这个错误是因为 xCode 不知道把代码提交到哪个服务器,因为它自带有 SVN 和 GIT 两代码管理器,删除掉 你项目中的 .git 文件夹就可以了。
这个文件夹是隐蔽的,我是用终端删除的
打开终端,cd 到你项目根目录下
执行=>ls -a
这时你会看到 .git 这个目录
执行=>rm -rf .git
就删除掉,这时你再提交就没问题了。
一些使用中的问题
一、不能提交 .a 文件:
1、打开终端,
执行命令=> vi ~/.subversion/config
然后, 在[miscellany]项找到这个串:
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store
修改为【把*.a 文件的过滤删除掉】:
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store
保存退出。并不是马上生效了,我重启了 xCode 并过了一段时间才在COMMIT... 的窗口中看到.a 文件可以提交。所以最好重启下机器。
若有凝问或错误,请指出,我好及时改正,让我们一起进步!
email : vinson_bs@126.com
qq : 103 586 2795
敲门砖: 代码谱写人生