Как вызвать builtin-productPackagingUtility в командной строке

Когда вы указываете права доступа и идентификатор подписи кода в настройках сборки (Xcode 4.2.1), вы получаете следующий вывод при создании из Xcode:

ProcessProductPackaging "myAppName.entitlements" "/path/to/myAppName.xcent"
cd /path/to/myAppName/SourceCode
builtin-productPackagingUtility "/path/to/myAppName/SourceCode/myAppName.entitlements" -entitlements -format xml -o "/path/to/myAppName.xcent"


CodeSign "/path/to/Garfields Comic Boom 1.0.app"
cd /path/to/myAppName/SourceCode
setenv CODESIGN_ALLOCATE /Developer/usr/bin/codesign_allocate
/usr/bin/codesign --force --sign "myCertificate" --entitlements "/path/to/myAppName.xcent" "/path/to/myAppName.app"

Я хотел бы подписать мою папку приложения в конце сборки, а не во время сборки Xcode.

Моя проблема в том, что я не знаю, как создать файл xcent в командной строке.

Вопрос: Как вы создаете xcent файлы в командной строке? Я сделал поиск из корня, нет ничего называемого productPackagingUtility...

Ответ 1

Я хотел бы подписать мою папку приложения в конце сборки, а не во время сборки Xcode.

В последних версиях XCode IIRC сообщаются, если вы отключили подписание кода для сборки устройства.

Самый простой способ - позволить Xcode подписать его, а затем переписать позже. Шаги приблизительно

  • Сбросьте исходные права с помощью codesign -d --entitlements=MyApp.xcent MyApp.app
  • Если вы меняете профили подготовки, скопируйте новый в MyApp.app/embedded.mobileprovision и соответствующим образом измените права (IIRC - формат файла имеет 4-байтовую магию и 4-байтовую длину, не забудьте обновить длину!).
  • Подтвердите свой сертификат.

Ответ 2

Использование утилиты codesign не требует файла xcent. Вы можете просто создать файл plist и использовать его для получения прав. Убедитесь, что это XML-слой, а не бинарный.

Ответ 3

Формат этих прав и ${APPNAME}.xcent одинаковый, поэтому его можно просто скопировать.