PlistBuddy на Windows
Я нахожусь в процессе перевода нашей инфраструктуры сборки Xamarin на Windows, и я столкнулся с проблемой, заключающейся в том, что наши скрипты сборки в настоящее время используют PlistBuddy для чтения и записи в файл Info.plist приложения.
Очевидно, PlistBuddy не будет работать на Windows.
Кто-нибудь видел какое-либо другое решение для взаимодействия с файлами Plist в Windows? Я видел несколько, которые используют графический интерфейс, но нам нужно это иметь CLI.
1 ответ
Вы можете заставить Build Agent запускать произвольные команды на Mac путем привязки к любому универсальному Task/Target
(Вы можете посмотреть в Xamarin.iOS .targets
файлы для лучшей идеи здесь), который работает через соединение SSH. В настоящее время это доступно в другом методе с помощью <Exec>
Задача с SessionId
вашей $(BuildSessionId)
, Вот пример того, как вы можете сделать это:
<Exec Command="..." SessionId="$(BuildSessionId)" />
Если SessionId
имеет значение null / empty, то это означает, что мы не подключены к Mac. Если это не ноль / пусто, то мы подключены к Mac.
Затем мы можем принудительно запустить это условие на Mac с помощью:
<Exec Command="..." SessionId="$(BuildSessionId)" Condition=" '$(BuildSessionId)' != '' " />
Обратите внимание, что для удаленного выполнения доступны следующие встроенные задачи:
- копия
- удалять
- Exec
- MakeDir
- Переехать
- RemoveDir
- потрогать
Затем вы можете вызвать PlistBuddy
Команда через этот метод.
EX:
<Target Name="_SayGoodbye">
<Exec Command="plistbuddy ..." SessionId="$(BuildSessionId)" Condition=" '$(BuildSessionId)' != '' "/>
</Target>
Если вы хотите пойти о MSBuild
Пользовательский способ Задачи. Вы можете увидеть примеры ранее созданных Задач здесь:
EX Plist в использовании:
EX тесты с Plist:
На данный момент это больше похоже на настройку MSBuild, но определенно возможно сделать то, что вы пытаетесь сделать, используя эти элементы.