Подтвердить что ты не робот

Добавить код для частного ключа ACL без брелка

Я пытаюсь настроить непрерывную сборку/интеграцию для стабильных приложений для iPhone.

У меня есть:

  • Специальный Mac Mini.
  • Учетная запись пользователя с именем "build"
  • Hudson настроен как LaunchAgent для сборки, сбросив plist в /Users/build/Library/LaunchAgents
    • Пробовал как системный LaunchDaemon, работающий как hudson, но затем не имел доступа к цепочке логина входа пользователя сборки. Длинная история, полная душевной боли.
  • Система настроена на автоматический вход в систему при запуске, так что Хадсон начнет работать.

Большая проблема - кодовое кодирование и Keychain.

Мы создаем код от имени идентификаторов разработчиков наших клиентов, поэтому у нас есть несколько идентификаторов разработчиков, и мы добавим больше.

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

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

Вы можете просмотреть это, открыв доступ к Keychain Access, расширив сертификат, выбрав закрытый ключ, щелкнув правой кнопкой мыши, выбрав "Получить информацию", а затем перейдите на вкладку "Контроль доступа". "Виргинский" ключ будет иметь доступ к Keychain Access в своем списке "всегда разрешать". Тот, который вы использовали и подтвердил в диалоговом окне, также будет иметь код.

В этом поле вы можете добавить приложение, за исключением того, что вы получаете стандартный файл Finder, который скрывает папки Unix. Невозможно перейти к /usr/bin/codesign. Так что это невозможно добавить вручную!

Кто-нибудь знает об этом?

Я знаю один метод, используя ключ -T "импорт безопасности", но затем вы должны указать ACL при импорте в первую очередь, так что любые ключи, добавленные в GUI Keychain, должны были бы быть переброшены и реимпортированы. Не совсем очень приятно.

4b9b3361

Ответ 1

Обычно "очищенная" версия файловой системы, которую предоставляет диалоговое окно "Получение информации о ключевой цепочке", не позволит вам получить доступ к скрытому каталогу /usr/bin, но я нашел способ обойти это.

  • Получить нормальные окна Finder для отображения всех файлов. Если вы не знаете, как это сделать, ознакомьтесь с этой статьей.
  • В обычном окне Finder перейдите в /usr/bin
  • Перетащите бит в область "Места" на боковой панели. Теперь bin - это ярлык, доступ к которому вы можете получить где угодно.
  • Внутри панели "Получить информацию → панель управления доступом" нажмите кнопку "+", чтобы открыть диалоговое окно поиска.
  • Щелкните ячейку, которая теперь находится в разделе "Места на этой боковой панели".
  • Перейдите к и выберите коды.
  • Нажмите кнопку "Сохранить изменения".

Ответ 2

Просто зарегистрируйся, чтобы сказать СПАСИБО, Дэвид Бойке. Большое обходное решение, которое очень помогло мне. Но есть лучший способ сделать это.

Open File Dialog press 'Cmd' + 'Shift' + '.'

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

Спасибо и удачи!

Ответ 3

Я нашел решение, выполнив аппликацию, которая "Щелкнет" по кнопке "Всегда разрешать" после того, как вам не повезло с безопасностью или certtool для добавления привилегий ACL.

#!/usr/bin/osascript
tell application "System Events"
  tell window 1 of process "SecurityAgent"
    click button "Always Allow" of group 1
  end tell
end tell

Ответ 4

Хорошо, мне потребовалось почти полдня, чтобы понять, но теперь у меня это работает. Я следил за этой статьей.

В статье показано добавление сертификата, подобного этому, с опцией -A, но это не сработало для меня.

security import "ADistribution.p12" -k appledev -f pkcs12 -A -P ""

В этом вопросе упоминался вариант -T, который работал у меня.

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign