Xcode
xcode-install
安装多个版本Xcode:
gem install xcode-install
xcversion list
xcversion install 7
切换Xcode:
// 查看当前 Xcode 路径
xcode-select -p
// 切换
sudo xcode-select -s /Applications/Xcode-8.2.1.app/Contents/Developer/
Warning
警告等级
- 开启可信度较高的警告
Build Setting -> other c flags -> -Wall
- 开启大部分警告
Build Setting -> other c flags -> -Wextra
- 屏蔽第三方SDK
was built for newer iOS version
警告
Target -> Build Setting -> Other Linker Flag -> -w
警告屏蔽
对于编译警告,右键Reveal in Log
,找到类似[-Wprotocol]
的警告类型,然后在Build Setting
-> Other Warning Flags
中添加[-Wno-protocol]
环境变量
Edit Scheme
-> Arguments
-> Environment Variables
例如添加DYLD_PRINT_STATISTICS = 1
,app在启动时会在console中打印详细的启动耗时
多Framework
僵尸模式
XCodeConfig
pbxproj合并冲突
mergepbx
- 安装
mergepbx
brew install mergepbx
- 在
~/.gitconfig
文件中配置mergepbx
[merge "mergepbx"]
name = XCode project files merger
driver = mergepbx %O %A %B
- 在工程目录下创建
. gitattributes
文件并设置用mergepbx处理pbxproj
文件合并
*.pbxproj merge=mergepbx
*.pbxproj binary merge=union
xUnique (弃用)
安装pip: pip官方文档
安装xUnique:
// 一定要加sudo sudo pip install xUnique
去掉
.git/hook/pre-commit.sample
的后缀名.sample
将如下内容添加到
pre-commit
: ``` xunique path/project.xcodeproj
// 如果用了cocopods,还需要加入Pods.xcodeproj
xunique path/Pods.xcodeproj
``
完成以上操作后,每次commit之前都会通过xUnique将
.xcproject`文件重新编码,避免合并时的冲突。