Dodaj codesign do klucza prywatnego ACL bez pęku kluczy

Próbuję skonfigurować continuous builds/integration dla stabilnej aplikacji na iPhone ' a.

Mam:

    Dedykowany Mac Mini.
  • konto użytkownika o nazwie "build"
  • Hudson został skonfigurowany jako LaunchAgent dla build, przez upuszczenie plist w /Users / build / Library / LaunchAgents
    • próbował jako Systemowy LaunchDaemon działający jako hudson, ale potem nie miał dostępu do pęku kluczy logowania użytkownika build. Długa historia, pełna bólu.
  • The system ustawiony na Automatyczne logowanie "build" przy starcie, tak, że Hudson zaczyna działać.

Wielkim problemem jest kodowanie i Brelok.

Tworzymy kod w imieniu tożsamości deweloperów naszych klientów, więc mamy kilka tożsamości deweloperów i będziemy dodawać kolejne.

Chcę umieścić Mini w głębokim ciemnym pokoju i nigdy na niego nie patrzeć, ale gdy po raz pierwszy budujesz z tożsamością dewelopera, pojawia się okno GUI z pytaniem, czy chcesz zawsze zezwalać na codesign uzyskaj dostęp do tożsamości dewelopera.

Zakładając, że tak, to okno dialogowe modyfikuje listę kontroli dostępu do łańcucha kluczy (ACL) tak, że codesign jest dozwolony.

Możesz to zobaczyć, otwierając dostęp do pęku kluczy, rozwijając certyfikat, wybierając klucz prywatny, klikając prawym przyciskiem myszy, wybierając opcję Pobierz informacje, a następnie przechodząc do karty Kontrola dostępu. Klucz " dziewiczy "będzie miał dostęp tylko do pęku kluczy na liście aplikacji" Zawsze zezwalaj". Ten, który został użyty i potwierdzony w oknie dialogowym, będzie miał codesign również.

To pole umożliwia dodanie aplikacji, z wyjątkiem standardowego selektora plików Findera, który ukrywa foldery uniksowe. Nie można przejść do /usr / bin / codesign. Więc nie można dodać ręcznie!

Czy ktoś wie jak to obejść?

Znam jedną metodę używającą przełącznika-T "security import", ale wtedy musisz określić ACL podczas importowania klucza, więc wszelkie klucze dodane w GUI pęku kluczy będą muszą być wyrzucone i sprowadzone ponownie. Niezbyt miło.

Author: David Boike, 2011-01-22

4 answers

Zwykle "oczyszczona" wersja systemu plików, którą wyświetla okno pobierania informacji w Pęku Kluczy, nie pozwala na dostęp do ukrytego katalogu / usr / bin, ale znalazłem sposób na obejście tego problemu.

  1. Get normal Finder windows To show all files. Jeśli nie wiesz, jak to zrobić, Sprawdź ten artykuł.
  2. w normalnym oknie Findera przejdź do /usr / bin
  3. Przeciągnij kosz do obszaru miejsca na pasku bocznym. Teraz bin jest skrótem dostępnym z gdziekolwiek.
  4. w Panelu Pobierz informacje - > Kontrola dostępu kliknij przycisk"+", aby otworzyć okno dialogowe Znajdź aplikację.
  5. Kliknij kosz, który znajduje się teraz pod miejscami na tym pasku bocznym.
  6. Przejdź do i wybierz codesign.
  7. Kliknij przycisk Zapisz zmiany.
 18
Author: David Boike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-02 09:52:31

Zapisałem się, żeby ci podziękować, Davidzie Boike. Świetne obejście, które bardzo mi pomogło. Ale jest na to lepszy sposób.

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

Ta kombinacja powinna przełączać widoczność ukrytych elementów w systemie plików. Jeśli kombinacja nie była skuteczna, spróbuj zmienić tryb prezentacji na ' list 'lub' grid ' i spróbuj ponownie.

Dzięki i powodzenia!

 5
Author: Paul Bar.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-25 11:40:58

Znalazłem rozwiązanie, wykonując applescript, który "klika" przycisk "Zawsze zezwalaj" po braku szczęścia z zabezpieczeniami lub certtool do dodawania uprawnień 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
Author: scootklein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-16 18:02:17

Ok to zajęło mi prawie pół dnia, aby dowiedzieć się, ale teraz mam to działa. Śledziłem ten Artykuł .

Artykuł pokazuje dodawanie cert w ten sposób z opcją-A, ale to nie działało dla mnie.

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

To pytanie wspominało o opcji-T, która zadziałała dla mnie.

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign
 3
Author: jspooner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-26 04:06:03