Существует еще одно решение, которое может быть намного проще, чем любой из предыдущих ответов. Apple встраивает инструмент командной строки под названием PlistBuddy в большинство своих инсталляторов и включает его в Leopard на /usr/libexec/PlistBuddy
.
Поскольку вы хотите заменить VersionValue
, предполагая, что у вас есть значение версии, извлеченное в $newVersion
, вы можете использовать эту команду:
/usr/libexec/PlistBuddy -c "Set :VersionValue $newVersion" /path/to/Root.plist
Нет необходимости возиться с sed или регулярными выражениями, этот подход довольно прост. См. справочную страницу для получения подробных инструкций. Вы можете использовать PlistBuddy для добавления, удаления или изменения любой записи в списке свойств. Например, мой друг написал в блоге о увеличении числа сборки в Xcode с использованием PlistBuddy.
Примечание: Если вы указываете только путь к списку, PlistBuddy переходит в интерактивный режим, поэтому вы можете выполнить несколько команд, прежде чем принять решение о сохранении изменений. Я определенно рекомендую сделать это перед тем, как добавить его в ваш скрипт сборки.