PListBuddy терпит неудачу, когда вызывается из муравья - PullRequest
1 голос
/ 21 сентября 2011

У меня есть скрипт сборки, который вытаскивает старую версию из списка для продукта iOs, выводит ее, а затем обновляет список.Две команды:

/usr/libexec/PlistBuddy -c Print CFBundleVersion ${LocationOfPList}
/usr/libexec/PlistBuddy -c Set :CFBundleVersion ${Version} ${LocationOfPList}

Запуск из командной строки (с версией и правильным расположением файла PList), все в порядке.Запуск из муравья как

<exec executable="/usr/libexec/PlistBuddy" 
  outputproperty="CurrentVersion"
  errorproperty="PListError">
  <arg value="-c"/>
  <arg value ="Print :CFBundleVersion"/>
  <arg value="${LocationOfPList}"/>
</exec> 

<echo message="Fetched the last version in the plist: ${CurrentVersion}" />

<!-- Set the plist to the current build number -->
<exec executable="/usr/libexec/PlistBuddy"
  outputproperty="PListOutput"
  errorproperty="PListError"
>       
  <arg value="-c"/>
  <arg value ="Set :CFBundleVersion ${Version}" />              
  <arg value=" ${LocationOfPList}"/>
</exec>

<echo message="Output: ${PListOutput}"/>
<echo message="Errors: ${PListError}"/>
<echo message="Old version number: ${CurrentVersion} New Version Number: ${Version}" /> 

В результате получается странное поведение.Первая команда работает, вторая не работает.Этот ant-скрипт выполняется от имени того же пользователя, что и пример командной строки.Вывод, который я вижу:

[echo] Fetched the last version in the plist: 3.0.0
[exec] Result: 1
[echo] Output: File Doesn't Exist, Will Create:  /Users/macbuild/iPhone/branches/anttest/iChime/Program-Info.plist
[echo] Errors: 
[echo] Old version number: 3.0.0 New Version Number: anttest

plist не обновляется, и единственным попаданием является код возврата 1. Я инженер по выпуску, я не знаю xcodeКто-нибудь видит, что я здесь делаю не так?

1 Ответ

1 голос
/ 21 сентября 2011

У вас есть начальный пробел перед положением plist в команде set:

 <!--        v -->
 <arg value=" ${LocationOfPList}"/>

Это одна из тех невидимых ошибок - вы можете заметить два пробела между "Will Create:" и "/Пользователи »в сообщении об ошибке.Удалите пробел, и он должен работать.

Кроме того, свойство PListError задается пустой строкой первым exec, а свойства Ant являются неизменяемыми, поэтому для второго exec текст ошибки отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...