Podpisywanie kodu ad-hoc
W przypadku aplikacji i plików binarnych innych firm, które sam skompilujesz i które wymagają podpisania kodu, użyj podpisu kodu ad hoc .
- Zakładam, że aplikacja nie będzie działać bez podpisu;
- Zakładam, że aplikacja nie będzie rozpowszechniana;
- Zakładam, że nie obchodzi cię ważność podpisu.
Podpis ad-hoc nie zapewnia niezawodnych korzyści bezpieczeństwa. Można go użyć do ustalenia, czy aplikacja została zmieniona, i można zastosować do zastosowania ograniczeń bezpieczeństwa, takich jak uprawnienia, do aplikacji.
Podpis ad-hoc zostanie zatwierdzony, codesign
ale nie spctl
. To może, ale nie musi mieć znaczenia, w zależności od podpisanego pliku binarnego. W przypadku aplikacji i plików wykonywalnych nie ma to większego znaczenia, ponieważ spctl
nie jest uruchamiane na lokalnie tworzonych plikach binarnych.
Dlaczego znak kodowy?
Jeśli chodzi o dopracowane pytanie:
Jak powinienem obsługiwać niepodpisany kod źródłowy, który sam kompiluję, ponieważ nie oczekuję, że autorzy zawsze będą w stanie podpisywać swój kod, lub pamiętają o tym, szczególnie jeśli chodzi o niewielki wkład w projekty open source z wieloma autorami.
W przypadku większości samodzielnie skompilowanych aplikacji podpisywanie kodu nie jest konieczne. Zakłada się, że ufasz kodowi aplikacji. W systemie macOS możesz otwierać niezaufane aplikacje z Findera, zobacz Apple Otwórz aplikację od niezidentyfikowanego programisty .
Jeśli nie ufasz kodowi ani programistom, nie kompiluj ani nie uruchamiaj aplikacji.
Twoja odpowiedzialność
Dostawca kodu źródłowego nie jest odpowiedzialny za dostarczenie gotowych plików binarnych z podpisanym kodem. Ponieważ sam kompilujesz się, wszystkie podpisywanie kodu jest twoim wyborem i obowiązkiem.
Apple wymaga podpisania kodu w swoich sklepach z aplikacjami.
Jabłko żądania deweloperów spoza swoich sklepach App podpisać swój kod, ale to jeszcze nie jest wymagane.
W obu przypadkach podpisywane są tylko końcowe pliki binarne. Oryginalny kod źródłowy i zasoby nie są podpisane.
Kod źródłowy nie jest podpisany
Sam kod źródłowy nie może być kodowany w znaczący sposób dla macOS. Pliki źródłowe i kod mogą być podpisane cyfrowo, tak jak każdy inny plik, ale nie ma to wpływu na sposób, w jaki aplikacja lub plik binarny jest traktowany przez macOS.
Jak kodować Ad-Hoc Podpisz aplikację na Maca
Aby podpisać aplikację w systemie macOS za pomocą podpisu ad-hoc, ustaw -s
flagę tożsamości na -
:
codesign --force -s - </path/to/application>
Wszystkie pozostałe reguły, wymagania i permutacje codesign
polecenia pozostają takie same.
Flaga --force
służy tutaj do zastąpienia istniejącego podpisu.
Konieczne może być dodanie --deep
flagi do codesign
polecenia, aby podpisać zasoby podrzędne, takie jak struktury i usługi osadzone.