目录
环境
前言
1、使用 Gem 安装 synx
2、直接在终端 Terminal 中开始使用
3、在使用的时候还可以加参数来实现不同的功能
4、解决项目中出现的一些 error
环境
OS X 10.11.1
Xcode 7.1
日期:2015/10/30
前言
最近公司项目要从 SVN 转到 Git,由于公司项目原先是由外包在2个月内赶工出来的,所以很多地方都不符合规范,就比如这次的重点——目录规范,外包的哥们的项目目录结构还算清晰,但在 Finder 中的目录结构就惨不忍睹了。
这次的主角是 GitHub 上的 synx,我们先通过作者的 Readme 上的截图来简单看一下效果。Xcode 上的工程目录
使用 synx 处理前后的 Finder 目录
言归正传,我们来看一下如何使用 synx
一、使用 Gem 安装 synx
Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/)源来查找、安装、升级和卸载软件包
// 1.移除掉原有的源(服务器在国外,速度较慢)
$ gem sources --remove https://rubygems.org/
// 2.等有反应之后再敲入以下命令(添加国内的源,原先是 http://ruby.taobao.org/ ,现在淘宝上的ruby镜像换成https了)
$ gem sources -a https://ruby.taobao.org/
// 3.验证是否替换成功
$ gem sources -l
// 4.直接通过命令行开始安装:
$ gem install synx
如果你权限不够的话需要sudo:
$ sudo gem install synx
更换 Gem 的源为国内源.png
二、直接在终端 Terminal 中开始使用
$ synx path/to/my/project.xcodeproj
这里的路径path/to/my/project.xcodeproj
可以整个换成你自己的路径,比如/Users/Yuen/Desktop/SynxDemo/SynxDemo.xcodeproj
,即
$ synx /Users/Yuen/Desktop/SynxDemo/SynxDemo.xcodeproj
需要注意的是如果你使用了cocoapods,可能会有所不同,你可以 Google 一下看看
三、在使用的时候还可以加参数来实现不同的功能
1、 加上-p可以在同步的时候删除工程中没有使用到的图片资源和文件。
& synx -p path/to/my/project.xcodeproj
2、 -e可以在同步的时候忽略当前文件夹进行同步
& synx -e "/folder/" path/to/my/project.xcodeproj
3、 还有一些指令
--prune, -p remove source files and image resources that are not referenced by the the Xcode project
--no-color removes all color from the output
--no-default-exclusions doesn‘t use the default exclusions of /Libraries, /Frameworks, and /Products
--quiet, -q silence all output
--exclusion, -e EXCLUSION ignore an Xcode group while syncing
4、解决项目中出现的一些 error
1、 各种library not found for XXXXXX
由于是我们在项目中使用了一些第三方的库,就比如我再使用百度的静态库文件的时候,报出的这个错误。
当xcode在编译的时候却找不到这个库,从而导致如此。
所以我们要让xcode知道这个库文件在哪里,从而在编译的时候轻松的找到它。
解决办法:
获取 库文件所在的那个文件夹 路径,添加到 Target 的 Build Settings 的 Library Search Paths
2.支付宝sdk错误
1.打开Demo中的错误
这是路径错误导致
解决办法:在Build Settings 中找到 Library Search Paths ,去掉其中的 ///
2.自己集成支付宝SDK时的错误
这个也是路径错误,
解决办法:在自己工程文件夹里建一个文件夹,随便起什么名字。把支付宝所需要的东西都拷贝进去,然后add files,然后找到TARGETS-Build Settings,在里面找到如下位置
把自己新建的文件夹拖动到这个框里面,再次运行就OK了,如果不行可以再多试几次
3.跳转后出现“系统繁忙,请稍后再试(ALI59)”
问题情况:模拟器没问题,在没有按照支付宝的测试机上也可以。但是在安装了支付宝的机器上就不行了。
解决:原因是out_trade_no这个参数里不能有符号。我的订单号是获取当前时间确定的,获取后去掉字符串中的 : 就可以了。但是不知道为什么在模拟器上获取的当前时间就是没有:的