Переподписал AppStore .ipa для сбоя Enterprise In-House - PullRequest
0 голосов
/ 04 марта 2020

В моем проекте мы создали .ipa, используя наши сертификаты AppStore из нашей учетной записи Apple Developer. Более того, наши клиенты хотят, чтобы мы повторно подписали .ipa, используя их собственный корпоративный сертификат и профиль обеспечения из своей учетной записи Apple Enterprise, чтобы они могли распространять приложение внутри компании. Однако после установки .ipa на устройстве без отображаемой ошибки приложение запускается, но сразу вылетает. Мне удалось получить следующие журналы:

Начальная загрузка не удалась из-за ошибки: Ошибка Domain = BKSProcessErrorDomain Code = 1 "Невозможно bootstrap обработать с bundleID com.com.xxxx.xxxx.xxxx" UserInfo = {NSLocalizedDescription = Невозможно bootstrap обработать с идентификатором bundleID com.com.xxxx.xxxx.xxxx, BKSProcessExitReason = 0, NSLocalizedFailureReason = Не удалось запустить задание, NSUnderlyingError = 0x282068ff0 {Ошибка домена = NSPOSIXErrorDomain Code = такой код процесса 3 "=" UserInfo = {BKLaunchdOperation = launch_get_running_pid_4SB, NSLocalizedDescription = Невозможно получить pid для метки UIKitApplication: com.xxxx.xxxx.xxxx [0x333f] [62], BKLaunchdJobLabel = UIKitApplication: comxx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx , NSLocalizedFailureReason = Нет такого процесса}}, BKSProcessJobLabel = UIKitApplication: com.com.xxxx.xxxx.xxxx [0x333f] [62], BSErrorCodeDescription = bootstrap -filed}

У меня уже дважды -проверены даты истечения срока действия сертификата и профиля обеспечения, а также в доверии они установлены на Use System Defaults, и оба хорошо подходим друг другу. Кроме того, я обновляю идентификатор пакета в файле Info.plist и обновляю Entitlements.plist. Для подписи кода я уже использовал такие инструменты, как iResign или EasyResign, и ручную процедуру, описанную здесь .

Есть идеи, в чем может быть проблема?

ОБНОВЛЕНИЕ : я смог решить проблему, создав первоначальный .ipa с сертификатом разработки вместо сертификата AppStore (как предложено @ ниже), перед тем как заново подписать его сертификатом Enterprise In-House. Похоже, проблема заключается в том, что Apple несколько прописывает двоичные файлы приложений, подписанных AppStore, и делает это, когда мы повторно подписываем, не все приложение полностью переписывается. Таким образом, из того, что я мог узнать, когда требуется повторная подпись и когда клиент не предоставляет нам учетную запись Apple, а только идентификатор пакета, сертификат и профиль обеспечения, я бы предложил на нашей стороне кодировать .ipa с помощью Разработка или Ad-Ho c (не проверено, но, вероятно, работает) сертификаты.

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

ОБНОВЛЕНИЕ : я смог решить проблему, построив исходный .ipa с сертификатом разработки вместо сертификата AppStore (как предложено @ ниже), перед тем как заново подписать его с корпоративной службой заказчика. сертификат. Похоже, проблема заключается в том, что Apple несколько прописывает двоичные файлы приложений, подписанных AppStore, и делает это, когда мы повторно подписываем, не все приложение полностью переписывается. Таким образом, из того, что я мог узнать, когда требуется повторная подпись и когда клиент не предоставляет нам учетную запись Apple, а только идентификатор пакета, сертификат и профиль обеспечения, я бы предложил с нашей стороны кодировать .ipa с помощью Сертификаты разработки или Ad-Ho c (не тестировались, но, вероятно, также работают).

0 голосов
/ 04 марта 2020

Если у вас есть сертификат Enterprise ... почему вы не создаете приложение с ним в первую очередь?

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

...