Xcode: очередные «улучшения» билд системы

В недавнем обновлении Xcode были сделаны улучшения в билд системе, направленные на повышение скорости сборки проекта.

Xcode build system

Допускаю, что эти изменения действительно ускоряют сборку проекта и не портят бинарник, если редактирование исходника происходит из встроенного редактора.

Но те, кто пользуется внешним редактором или использует внешние инструменты для работы с системой контроля версий, получат незабываемые ощущения.

Я использую VIM как основной редактор кода (да и вообще для любого текста) и GIT в эмуляторе терминала.

Раньше билд система Xcode сравнивала дату модификации файла с объектным файлом (как и делает большинство билд систем), если тот существует, и на этом основании строилось дерево зависимостей, необходимых для сборки. Полагаю, что очередная «оптимизация» билд системы Xcode строит дерево на основании флага об изменении файла во встроенном редакторе. А все, что изменялось из-вне, считается не модифицированным.

Сделал git checkout some_branch_name, жми cmd + shift + k для очистки проекта и его полной пересборки.
Отредактировал файл во внешнем редакторе, снова жми cmd + shift + k для очистки проекта и его полной пересборки.

Новое поведение билд системы теперь включено по умолчанию. Вернуть старую Build System можно из File > Project Settings…

Xcode Legacy Build System

iOS: Invalid Image Path

Вот с такой “CFBundleIcons: AppIcon 120×120 not found” ошибкой столкнулся сегодня при попытке выгрузить новую версию игры в AppStore. Проблема была в “а возьму-ка я этот iconset-темплейт и с его помощью нагенерю иконки”. Темплейт хороший, умеет все нужные иконки. И даже на одну больше, чем мне нужно. Вот из-за нее и была проблема.

Решается просто. В Project navigator кликаем на ресурс Images.xcassets, выбираем AppIcon, удаляем иконку из слота CarPlay iOS 8 120pt. Все, проблема решена.

xcode и subversion

Для хранения и слежением за изменениями я использую Subversion (правда много старых проектов так и осталось в CVS). Возникла необходимость работать с Subversion в Mac OS X. По умолчанию (как минимум в моем случае) Subversion в Mac OS X не идет. Хотя xcode и поддерживает эту систему, но самого клиента нет.
В интернете нашелся мануал по установке Subversion в Mac OS X. Все очень просто – скачиваем клиента, устанавливаем его, прописываем пути к его бинарникам. В свойствах проекта указываем использование Subversion. На этом все.