Jak uzyskać uprawnienie „com.apple.developer.driverkit.userclient-access”?
Poprosiliśmy o wszystkie uprawnienia związane z DriverKit. Co mamy poniżej:
com.apple.developer.driverkitcom.apple.developer.driverkit.transport.hidcom.apple.developer.driverkit.family.hid.devicecom.apple.developer.driverkit.family.hid.eventservicecom.apple.developer.driverkit.family.hid.virtual.device
Właśnie dowiedzieliśmy się, że jeśli chcemy rozpowszechniać aplikację, która jest w stanie komunikować się z DriverKit, com.apple.developer.driverkit.userclient-accesswymagane jest uprawnienie . Nie wiemy jednak, jak wygenerować profil prowizyjny zawierający to uprawnienie. Czy brakuje nam czegoś podczas wysyłania uprawnień żądania do Apple? Czy to uprawnienie jest gotowe na dany przedmiot, gdy wybieramy odpowiednie możliwości?
Odpowiedzi
Czy brakuje nam czegoś podczas wysyłania uprawnień żądania do Apple?
Formularz o to nie pyta, ale niestety musisz poprosić o to wyraźnie w wolnym polu tekstowym. Upewnij się, że wymieniono również wszystkie identyfikatory pakietów dext, z którymi aplikacja (-y) musi się komunikować, ponieważ uprawnienie jest przyznawane indywidualnie dla każdego dekstu. (A przynajmniej było to kilka tygodni temu).
Możesz ponownie przesłać formularz lub spróbować odpowiedzieć na wiadomość e-mail dotyczącą pierwotnego przyznania uprawnień. Upewnij się, że wyraźnie poprosiłeś o kanały dystrybucji (programowanie, identyfikator programisty, sklep z aplikacjami), z którymi będziesz korzystać z uprawnienia (i sprawdź, czy wszystkie istniejące uprawnienia zostały przyznane dla kanałów, których potrzebujesz), ponieważ jeden z moich klientów otrzymał uprawnienia przyznane na tylko programowanie, a nie dystrybucja, ponieważ nie zażądaliśmy wyraźnie inaczej.
W celach programistycznych, dopóki nie otrzymasz uprawnienia, możesz włączyć następujący boot-argsparametr jądra, aby system zignorował brak uprawnienia w Twoim profilu obsługi administracyjnej (ale aplikacja nadal potrzebuje uprawnienia na liście) - w ten sposób aplikacja może nadal launch, a uprawnienie dostępu klienta użytkownika po stronie jądra przejdzie. Zwykle aplikacja zostanie natychmiast zabita przez AMFI, jeśli wymienia uprawnienie, którego nie ma w profilu aprowizacji.
nvram boot-args="amfi_get_out_of_my_way=1"
(Można to ustawić tylko w środowisku przywracania; upewnij się, że nie nadpisujesz żadnego istniejącego boot-args, po prostu dodaj go do istniejących, jeśli to konieczne)
Wreszcie, jeśli planujesz komunikować się z dextem z aplikacji w trybie piaskownicy (np. Dowolnej aplikacji dystrybuowanej za pośrednictwem App Store), myślę, że dodatkowo musisz złożyć wniosek o tymczasowy wyjątek klasy klienta użytkownika IOKit z piaskownicy. To jest com.apple.security.temporary-exception.iokit-user-client-classuprawnienie, które będzie musiało być wydane dla IOUserUserClientklasy. Nie znam szczegółów, jak to działa, ale zdecydowanie wspomniałbym o tym wraz z uprawnieniami dostępu klienta użytkownika do zestawu sterowników, jeśli dotyczy to Ciebie.