Приложение для сборки Xcode на ipa из командной строки

Я не могу создать файл, подписанный ipa, из командной строки. Сначала несколько слов о моем окружении:

1. Приложение Я приготовил простое приложение для iPad из шаблона "Master-Detail Application". Ничего не менял в коде, ничего не менял в настройках. Просто новый проект.

2. Скрипт сборки Вот мой «скрипт» сборки

cd /Users/admin/Desktop/signtest/signtest/

xcodebuild -target signtest -configuration Debug -sdk iphonesimulator4.3 clean build

/usr/bin/xcrun -sdk iphoneos PackageApplication -v /Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app -o /Users/admin/Desktop/binaries/signtest.ipa --sign "iPhone Developer: Marcin Zyga (CLJR93MXJ6)" --embed "/Users/admin/Library/MobileDevice/Provisioning\ Profiles/94D99766-0268-4E0E-B8D1-053063BB2DA1.mobileprovision"

3. Проблема

Приложение собирается, а потом пытаюсь сделать из сборки ipa файл. Но у меня есть это:

** BUILD SUCCEEDED **

Packaging application: '/Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app'
Arguments: embed=/Users/admin/Library/MobileDevice/Provisioning\ Profiles/94D99766-0268-4E0E-B8D1-053063BB2DA1.mobileprovision  verbose=1  output=/Users/admin/Desktop/binaries/signtest.ipa  sign=iPhone Developer: Marcin Zyga (CLJR93MXJ6)  
Environment variables:
HOME = /Users/admin
SUDO_GID = 20
DISPLAY = /tmp/launch-vj2zx7/org.x:0
VERSIONER_PERL_PREFER_32_BIT = no
MAIL = /var/mail/root
SSH_AUTH_SOCK = /tmp/launch-YPyQMl/Listeners
PWD = /Users/admin/Desktop/signtest/signtest
LANG = pl_PL.UTF-8
USER = root
LOGNAME = root
__CF_USER_TEXT_ENCODING = 0x0:29:42
USERNAME = root
SHLVL = 1
OLDPWD = /SMT/ci_shell_scripts
_ = /usr/bin/xcrun
PATH = /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
LSCOLORS = GxFxCxDxBxegedabagaced
SUDO_USER = admin
SHELL = /bin/bash
TERM = xterm-256color
SUDO_COMMAND = ./sign_test_ipa.sh
VERSIONER_PERL_VERSION = 5.12
SUDO_UID = 502

Output directory: '/Users/admin/Desktop/binaries/signtest.ipa'
Temporary Directory: '/tmp/eiJTk08At3'  (will NOT be deleted on exit when verbose set)
+ /bin/cp -Rp /Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app /tmp/eiJTk08At3/Payload
Program /bin/cp returned 0 : []
### Checking original app
+ /usr/bin/codesign --verify -vvvv /Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app
Program /usr/bin/codesign returned 1 : [/Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app: object file format unrecognized, invalid, or unsuitable
]
error: Codesign check fails : /Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app: object file format unrecognized, invalid, or unsuitable

Важная часть здесь:

  Program /usr/bin/codesign returned 1 : [/Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app: object file format unrecognized, invalid, or unsuitable
    ]
    error: Codesign check fails : /Users/admin/Desktop/signtest/signtest/build/Debug-iphonesimulator/signtest.app: object file format unrecognized, invalid, or unsuitable

Я не могу найти решение.

4. Что я уже сделал Вот список того, что я уже пытался сделать. Однако, если вы уверены, что то, что я уже пробовал, является решением моей проблемы, напишите пошагово, как это сделать (возможно, я раньше делал что-то не так).

5. То, что я пытаюсь достичь Я пытаюсь создать файл ipa, подписанный сертификатом разработчика, поэтому я могу загрузить файл ipa через iTunes, чтобы протестировать его на устройстве.

6. Ответ на ответы снизу

  • Я изменил командную строку сборки на:

    xcodebuild -target signtest -configuration Debug -sdk iphoneos clean build

Но теперь я получаю:

=== BUILD NATIVE TARGET signtest OF PROJECT signtest WITH CONFIGURATION Debug ===
Check dependencies
[BEROR]Code Sign error: Provisioning profile '94D99766-0268-4E0E-B8D1-053063BB2DA1' can't be found


** BUILD FAILED **

Я вручную установил профили подготовки в xcode для этого проекта. Я дважды проверил, и они там. Что я здесь делаю не так? Более того, когда я собираю с подключенным устройством, все идет нормально, и приложение запускается на моем iPad.


person Ertai    schedule 16.12.2011    source источник


Ответы (1)


Вы выбираете iPhone Simulator SDK в своем сценарии сборки. Переключите его на настоящий SDK.

person Jim    schedule 16.12.2011
comment
Хорошо, я изменил строку сборки на: xcodebuild -target signtest -configuration Debug -sdk iphoneos clean build, и теперь я получаю: === СТРОИТЬ НАТИВНУЮ ЦЕЛЬ подписать ПРОЕКТА подписать С КОНФИГУРАЦИЕЙ Отладка === Проверить зависимости [BEROR] Код Ошибка подписи: профиль подготовки «94D99766-0268-4E0E-B8D1-053063BB2DA1» не найден ** СБОЙ СБОЙ ** Я проверил профиль подготовки, и он есть. Я настроил проект в Xcode для сборки с этим профилем. Как я могу настроить это из командной строки? - person Ertai; 16.12.2011
comment
Обновил мой вопрос, чтобы отразить изменения. - person Ertai; 16.12.2011
comment
У вас теперь другой вопрос. Вы не должны редактировать этот вопрос, чтобы заменить его другим, вы должны опубликовать новый вопрос. - person Jim; 16.12.2011
comment
Я так делаю и принимаю ваш ответ, так как он кажется правильным. - person Ertai; 19.12.2011