Изменение идентификатора пакета подписанного IPA и отказ от моего собственного профиля сертификации / обеспечения - PullRequest
0 голосов
/ 11 января 2019

Сторонняя компания поставила подписанное IPA, используя свои сертификаты и профили обеспечения.

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

Я пробовал это с помощью Fastlane Sigh (resign.sh), XReSign и нескольких ручных методов, перечисленных в этом Посте переполнения стека об отставке IPA.

Я отказываюсь от IPA через сертификат распространения Enterprise и устанавливаю на устройство, однако приложение запускается при запуске со следующей ошибкой:

default 22:49:29.170425 -0500   assertiond  Submitting new job for "ca.mybundleid.here" on behalf of <BKProcess: 0x10130eda0; SpringBoard; com.apple.springboard; pid: 55; agency: SystemShell; visibility: foreground; task: running>
default 22:49:29.170487 -0500   assertiond  Submitted job with label: UIKitApplication:ca.mybundleid.here[0xe47b][66]
error   22:49:29.172015 -0500   assertiond  Unable to obtain a task name port right for pid 1475: (os/kern) failure (0x5)
error   22:49:29.172074 -0500   assertiond  Failed to start job with error <NSError: 0x101354c60; domain: NSPOSIXErrorDomain; code: 3; reason: "The process failed to exec"> {
    description = "Unable to get valid task name port right for pid 1475";
    failureReason = "The process failed to exec";
    recoverySuggestion = "Consult /var/log/com.apple.xpc.launchd/launchd.log for more information";
}
default 22:49:29.172277 -0500   assertiond  Deleted job with label: UIKitApplication:ca.mybundleid.here[0xe47b][66]
error   22:49:29.173927 -0500   SpringBoard [ca.mybundleid.here] Bootstrap failed with error: <NSError: 0x1c0459590; domain: BKSProcessErrorDomain; code: 1 (bootstrap-failed); reason: "Failed to start job">
error   22:49:29.174034 -0500   SpringBoard Bootstrapping failed for <FBApplicationProcess: 0x113768450; ca.mybundleid.here; pid: -1> with error: Error Domain=BKSProcessErrorDomain Code=1 "Unable to bootstrap process with bundleID ca.mybundleid.here" UserInfo={NSLocalizedDescription=Unable to bootstrap process with bundleID ca.mybundleid.here, BKSProcessExitReason=0, NSLocalizedFailureReason=Failed to start job, NSUnderlyingError=0x1c144a290 {Error Domain=NSPOSIXErrorDomain Code=3 "No such process" UserInfo={NSLocalizedFailureReason=The process failed to exec, NSLocalizedRecoverySuggestion=Consult /var/log/com.apple.xpc.launchd/launchd.log for more information, NSLocalizedDescription=Unable to get valid task name port right for pid 1475}}, BSErrorCodeDescription=bootstrap-failed}

Конкретное сообщение об ошибке: Unable to bootstrap process with bundleID ca.mybundleid.here

После небольшой копки кажется, что эта проблема связана с изменением идентификатора пакета.

Я также нашел этот пост https://oleb.net/blog/2011/06/code-signing-changes-in-xcode-4/, в котором он говорит следующее

Обновление: Колин Хамбер, разработчик TestFlight, сообщил мне о потенциальная проблема с этим подходом. Судя по всему, идентификатор приложения профиль обеспечения, используемый для построения приложения, жестко закодирован в двоичный файл во время процесса сборки. Если позже вы уйдете в отставку с профилем обеспечения, который принадлежит другому идентификатору приложения, один в двоичном файле больше не будет соответствовать идентификатору приложения профиля обеспечения так как двоичный файл не будет перекомпилирован. Это может вызвать все виды проблемы со службами, использующими идентификатор приложения, такие как доступ к связка ключей, push-уведомления или встроенные покупки.

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

Учитывая это, есть ли какой-нибудь способ для меня подать в отставку приложение, используя мой сертификат и профиль обеспечения?

Редактировать: Эта запись относительно идентификатора пакета, встроенного в двоичный файл, все еще точна?

...