2016-11-14 10 views
0

Меня попросили обновить старый проект, выполненный в объективе-c.Профилирование «XXXXXX» не включает сертификат подписи «iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)».

У меня возникла проблема с профилем распределения. Он идет как этот

Provisioning профиль "XXXXXX" не включает в себя сертификат для подписи "iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)".

Дело в том, что я вижу сертификат «iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)» в моей цепочке ключей. Но есть 2 из них. У одного есть закрытый ключ, а другой нет, и у обоих есть другая дата истечения срока действия. Когда я проверил счет разработчика, распределение резервов профиля подписано с сертификатом, который не имеет закрытый ключа (дата истечения срока действия свидетельства, указанное на счете разработчиков является то, что тот без секретного ключа)

  1. Что вызывает эту проблему?
  2. Как это исправить?
  3. Что делать, если я не могу получить секретный ключ от старой машины (как эта машина больше не использовать)

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

Пожалуйста, помогите.

+2

Я бы предложил удалить оба сертификата распространения в цепочке ключей, а затем перейти в Центр-член и отменить ваш сертификат распространения. Затем попросите Xcode сделать вам новый сертификат распространения. Затем удалите все ваши профили распространения (они все теперь испортились) и воссоздают их с нуля. – matt

+0

@matt повлияет на мое существующее приложение, которое было создано со старым сертификатом? Будет ли яблоко разрешать мне обновлять существующее приложение с помощью нового сертификата? – avrospirit

+0

Да, они будут. Я уже несколько лет отменяю и создаю сертификаты и обновляю свои приложения уже много лет. Нет проблем. – matt

ответ

1
  1. Проблема в том, что единственный действительный профиль обеспечения, который вы привязали к сертификату распространения, для которого у вас нет закрытого ключа. Без закрытого ключа это не действительный идентификатор подписи, поэтому Xcode не будет использовать его.

  2. Чтобы исправить это, вам нужно будет создать новый сертификат приватного ключа/распространения, а затем создать новый профиль распространения с использованием вновь созданного сертификата. Инструкции можно найти, начиная с создания запроса на подпись сертификата, here.

  3. См. 2 выше. Без ключа вы не можете использовать существующий сертификат. Если вам нужно строить из нескольких компьютеров Mac, вам необходимо настроить механизм совместного доступа для предоставления закрытого ключа для любых других компьютеров Mac, которые будут загружать и использовать сертификаты/профили с сайта Apple. Я также создаю резервную копию закрытого ключа, чтобы вы не столкнулись с этим в будущем, если что-то случится с вашей сборкой Mac. Кроме того, когда истекает срок действия сертификата, полезно сохранить файл .csr из ответа 2 выше. Это означает, что вы можете использовать тот же закрытый ключ для нового сертификата, когда истекает срок действия вашего сертификата распространения.

+0

Спасибо Wottle.Но повлияет ли это на мое существующее приложение, которое было создано со старым сертификатом? Будет ли яблоко разрешать мне обновлять существующее приложение с помощью нового сертификата? – avrospirit

+0

Да, ваше существующее приложение в магазине приложений не будет затронуто. Вы можете отправить приложение, подписанное новым сертификатом, без каких-либо проблем для Apple. То же самое потребуется, когда истечет срок действия вашего сертификата. – wottle