2013-06-18 2 views
0

У нас есть моно приложение, что мы подписываем и расслоение в приложение на OSX. Наше приложение получает доступ к брелка для хранимых паролей, хранящихся, используя имя приложенияОбновление кода подписал Моно приложение вызывает KeyChain прекратить доступ без перезагрузки

Это прекрасно работает, пока мы не выполнить обновление. При обновлении мы заменяем содержимое .app содержимым (также подписанным) обновления zip-файла.

Однако, когда приложение пытается получить доступ к цепочке ключей раньше, мы возвращаем NULL вместо наших сохраненных паролей. Мы нашли:

  • Запуск кодекса -vvv против обновленного приложения показывает, что подпись действительна.
  • Если мы перезагрузим коробку, приложение сможет получить доступ к брелоку для ключей.
  • Если приложение без знака, доступ к обновлению и связыванию ключей работает нормально.

Итак, если есть шаг, который мне не хватает при подписании/обновлении? Есть ли служба, которую я могу перезапустить, чтобы решить ее?

Update:

  • после обновления, вызов брелка для получения учетных данных возвращает «AuthFailed» после перезагрузки мы получаем «Успех»

ответ

0

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

Наш процесс автоматического обновления заменяет содержимое OSX .app A «файл» .app это просто архив/каталога, так что это содержимое может быть заменен на месте с помощью автоматического обновления An активы, которые Дон» t соответствует подписанным, приведет к проблеме подписи

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