Xcode

Xcode配置编译前脚本

脚本动态添加Xcode文件

PlistBuddy使用

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

  • 屏蔽第三方SDKwas 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

  1. 安装mergepbx
brew install mergepbx
  1. ~/.gitconfig文件中配置mergepbx
[merge "mergepbx"]
        name = XCode project files merger
        driver = mergepbx %O %A %B
  1. 在工程目录下创建. gitattributes文件并设置用mergepbx处理pbxproj文件合并
*.pbxproj merge=mergepbx
*.pbxproj binary merge=union

xUnique (弃用)

使用xUnique解决xcproject文件冲突

  1. 安装pip: pip官方文档

  2. 安装xUnique:

    // 一定要加sudo
    sudo pip install xUnique
    
  3. 去掉.git/hook/pre-commit.sample的后缀名.sample

  4. 将如下内容添加到pre-commit: ``` xunique path/project.xcodeproj

// 如果用了cocopods,还需要加入Pods.xcodeproj xunique path/Pods.xcodeproj `` 完成以上操作后,每次commit之前都会通过xUnique将.xcproject`文件重新编码,避免合并时的冲突。

results matching ""

    No results matching ""