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

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

У меня есть:

  • Выделенный Mac Mini.
  • Учетная запись пользователя с именем "build"
  • Hudson set up as a LaunchAgent for build, by dropping a plist in /Users/build/Library/LaunchAgents
    • Tried as a system-wide LaunchDaemon running as hudson, but then had no access to the build user's login keychain. Long story, full of heartache.
  • Система настроена на автоматический вход в систему "build" при запуске, так что Hudson начинает работать.

Большая проблема - это кодовая подпись и брелок.

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

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

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

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

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

Кто-нибудь знает способ обойти это?

Мне известен один метод, использующий переключатель -T в «импорт безопасности», но затем вы должны указать ACL при импорте ключа в первую очередь, поэтому любые ключи, добавленные в графический интерфейс Keychain, должны быть отброшены и повторно импортированы. Не совсем хорошо.


person David Boike    schedule 21.01.2011    source источник
comment
Вы когда-нибудь находили решение этой проблемы? Имея ту же проблему.   -  person scootklein    schedule 16.03.2011
comment
Когда вы говорите, что нет возможности перейти в / usr / bin / codeign, что вы имеете в виду? / usr / bin /codeign - это просто программа, если вам нужно открыть / usr / bin в поисковике, используйте open / usr / bin   -  person Daniel    schedule 19.03.2011
comment
В Safari vnc: //miniName.local является одним из способов, вы можете использовать машину удаленно один раз для каждого проекта. Решение Scootklein с applescript выглядит так, как будто оно должно работать.   -  person Adam Eberbach    schedule 22.03.2011
comment
Нет, диалоговое окно Get Info для ключа на вкладке Access Control не имеет способа вручную ввести / usr / bin / codeign - вы должны нажать кнопку со знаком плюса, что дает вам очищенный вид файловой системы Finder без каких-либо скрытых записи (например, / usr) отображаются из корня Macintosh HD. Однако проверка этого привела меня к другому решению ...   -  person David Boike    schedule 22.03.2011
comment
Уловка, которую я нашел, чтобы обойти эти ограничения диалогового окна файла, заключается в том, чтобы поместить папку (/ usr / bin) на боковую панель Places, которую вы затем можете выбрать изнутри диалогового окна (если это не нестандартный файловый диалог)   -  person Tim    schedule 11.07.2011
comment
-T все равно не работает, потому что графический интерфейс по-прежнему запрашивает доступ к закрытому ключу.   -  person malhal    schedule 09.10.2012


Ответы (4)


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

  1. Установите нормальные окна Finder для отображения всех файлов. Если вы не знаете, как это сделать, прочтите эту статью.
  2. В обычном окне Finder перейдите в / usr / bin
  3. Перетащите корзину в область "Метки" на боковой панели. Теперь bin - это ярлык, к которому вы можете получить доступ из любого места.
  4. На панели «Получить информацию» -> «Контроль доступа» связки ключей нажмите кнопку «+», чтобы открыть диалоговое окно поиска приложения.
  5. Щелкните корзину, которая теперь находится под метками на этой боковой панели.
  6. Найдите и выберите кодовый знак.
  7. Нажмите кнопку «Сохранить изменения».
person David Boike    schedule 22.03.2011
comment
Обычно я бы не хотел отмечать свой ответ как принятый, когда есть другие хорошие и достоверные ответы. Единственная причина, по которой я это делаю, заключается в том, что решение, которое мне удалось найти, можно сделать заранее, тогда как ответ Скуткляйна более реактивный. - person David Boike; 28.03.2011

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

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

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

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

person Paul Bar.    schedule 25.04.2014

Я нашел решение, написав applescript, который «Щелкает» по кнопке «Всегда разрешать» после того, как мне не повезло с безопасностью или 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
person scootklein    schedule 16.03.2011