выполнение xcodebuild с веб-сайта php

Я написал соответствующие сценарии сборки xcode, и когда я запускаю их из командной строки, они работают каждый раз.

Моя система apache работает как мой локальный пользователь / группа (myuser / staff), поэтому ДОЛЖНА иметь соответствующие разрешения (я думаю).

Проблема, с которой я столкнулся, заключается в том, что, хотя сборка создается, она не подписывается.

В самом конце я получаю ошибку «Программа / usr / bin / codeign вернула 1: [/tmp/1u_gMG7iJU/Payload/myapp.app: объект кода вообще не подписан».

Как я уже сказал, если я выполняю один и тот же сценарий непосредственно из командной строки, он работает отлично.

Я пробовал полагаться на команду чистой сборки xcodebuild для назначения правильного профиля подготовки, но это не сработало, поскольку я фактически генерирую две сборки. Один с корпоративным (wild card), чтобы мы могли быстро и легко тестировать внутри, а другой с точным профилем. Поэтому мне нужно указать, какой профиль использовать.

Я пробовал указать значения CODE_SIGN_IDENTITY и PROVISIONING_PROFILE во время процесса подписи, но это не работает

Я попытался указать флаги --sign и --embed, но безрезультатно.

Мои текущие рабочие команды xcodebuild:

/ usr / bin / xcodebuild -project /path/to/my.xcodeproj CODE_SIGN_IDENTITY = "Распространение iPhone: Моя компания" PROVISIONING_PROFILE = "my-provisioning-profile-uuid" чистая сборка;

/ usr / bin / xcrun -sdk iphoneos PackageApplication -v /path/to/build/Release-iphoneos/myapp.app -o /path/to/my/output/myapp.ipa --sign «iPhone Distribution: my company» --embed "/ local / path / to / provisioning profiles / my-provisioning-profile-uuid.mobileprovisioningprofile";

Может ли кто-нибудь придумать что-нибудь, чего я не пробовал?

Я начинаю думать, что, может быть, мне следует настроить специальную цепочку для ключей, которая будет хранить все сертификаты и тому подобное для автоматизированных сборок, но я не слишком уверен, окупится ли эта кроличья нора.

Если бы я пошел по этому пути, потребовались бы мне специальные разрешения для профилей подготовки? Придется ли мне заново создавать все мои активные профили подготовки (я бы предпочел не делать этого). Придется ли мне, может быть, переехать туда, где находятся мои профили обеспечения?

Другая возможность, которая, как я думаю, МОЖЕТ работать (в равной степени может и не работать), заключается в том, что все мои приложения по умолчанию подписываются корпоративным сертификатом, и только когда я готов выпустить их, я указываю «производственный» сертификат ... может это сделать с помощью скриптов?

Я действительно не знаю, что делать, и ничто из того, что я искал до сих пор, не приблизило меня.

Спасибо за вашу помощь!


person MrNickel    schedule 21.07.2013    source источник
comment
Я считаю, что вы на правильном пути в том, что касается связки ключей, можете ли вы запустить свой PHP-скрипт whoami, чтобы узнать, от имени какого пользователя он выполняется? Затем я бы попытался вызвать сборку с помощью sudo -u phpuser   -  person Chris Wagner    schedule 21.07.2013
comment
Как я уже упоминал, пользователь работает от имени моего локального пользователя .... Это сводит меня с ума!   -  person MrNickel    schedule 22.07.2013


Ответы (1)


Чтобы ответить на свой вопрос, я закончил тем, что создал сценарий сборки ANT. Первый процесс - это SSH-вход в мою учетную запись пользователя, и этот пользователь имеет все соответствующие разрешения. Это также позволило мне не возиться с пользовательскими настройками apache.

person MrNickel    schedule 09.01.2014