Nie można użyć starego NDK (android-ndk-r17c) po aktualizacji Catalina ze względu na nowe zabezpieczenia

14

Po uaktualnieniu do macOS Catalina mój projekt już się nie buduje. Wynika to z przekonania Cataliny, że pliki binarne w 'android-ndk-r17c' nie pochodzą od zaufanego programisty.

Otrzymujesz wiadomości typu: „Nie można otworzyć„ ld ”, ponieważ nie można zweryfikować programisty”. „System macOS nie może zweryfikować, czy ta aplikacja jest wolna od złośliwego oprogramowania”

Muszę używać starego NDK z powodu problemów z natywnym zestawem SDK biblioteki openCV i nowszymi NDK. Pracują nad tym, ale nowszy SDK nie jest jeszcze dla mnie wystarczająco stabilny.

Byłem w stanie ominąć „clang” i „clang ++”, nie mogąc pracować, przechodząc do okienka bezpieczeństwa i klikając „Allow Anyway” w alertach bezpieczeństwa. Jednak, gdy próbuję tego z „Id”, mogę ominąć pierwsze ostrzeżenie, klikając „Allow Anyway”, ale wydaje się, że jest wywoływane później, a przy kolejnym wywołaniu nie mam opcji, aby pozwolić mu się otworzyć.

Naprawdę nie ma kodu. Po prostu mam (i miałem od dłuższego czasu) referencję Android Studio NDK wskazującą na stary NDK poprzez konfigurację.

W IDE z NDK nie ładuje „Id”:

„Nie można otworzyć„ ld ”, ponieważ nie można zweryfikować programisty”. „System macOS nie może zweryfikować, czy ta aplikacja jest wolna od złośliwego oprogramowania”

StainlessSteelRat
źródło
Zobacz github.com/android/ndk/issues/1060 . Nie wiem jednak, dlaczego pozwoliłeś tylko niektórym z nich. Dla mnie działało dobrze.
Dan Albert

Odpowiedzi:

21

Właśnie znalazłem rozwiązanie.

To żmudny proces, ale:

  1. MacOS: otwórz Preferencje systemowe
  2. MacOS: przejdź do Bezpieczeństwo i prywatność (pozostaw to otwarte, będziesz go potrzebować przez cały proces)
  3. Jedność: idź i zbuduj swój projekt. Gdy pojawi się błąd, kliknij „Anuluj”
  4. MacOS: W oknie Bezpieczeństwo i prywatność - kliknij i kliknij „Zezwalaj” obok błędu „clang” - aby system MacOS rozpoznał aplikację i wykorzystał ją.
  5. Błąd pojawi się ponownie, ale tym razem poprosi cię o jego „otwarcie”. Kliknij „Otwórz”
  6. Kompilacja nie powiedzie się kilka razy z powodu różnych zależności, ale zakończy się niepowodzeniem z innymi plikami, które musisz zezwolić, tak jak w poprzednich krokach.
  7. Zbuduj ponownie swój projekt.
  8. Jeśli się nie powiedzie, wykonaj te czynności ponownie, aż przestanie działać. Każdy błąd, który wystąpi w wyniku nierozpoznania pliku, będzie za każdym razem inny
Mudassar Ashraf
źródło
2
dodatkowo: Jeśli wcześniej tak sudo spctl --master-disablebyło, istnieją 3 opcje poniżej „Zezwalaj na pobieranie aplikacji z:”, w kroku 4 wybierz drugą o nazwie „App Store i zidentyfikuj programistów”, aby zobaczyć „Zezwalaj” i „brzęcz” błąd.
linjiang
Dodaj do instrukcji, które muszą znajdować się na karcie Ogólne w obszarze Bezpieczeństwo i prywatność, aby zobaczyć komunikat bezpieczeństwa.
Steve
5

Aby zezwolić na aplikacje pobrane z dowolnego miejsca na MacO Catalana:

sudo spctl --master-disable
YuryP
źródło
Czy to faktycznie coś robi? Nadal nic nie mogę uruchomić
Luz
Może to usunąć kilka kroków .. więc musimy nacisnąć „zezwól”, a następnie „otwórz” .. w przeciwnym razie każda pojedyncza biblioteka używana przez każde narzędzie musi być dozwolona, ​​to jest koszmarne jabłko. zróbmy to dla poszczególnych folderów ..
Paschalis
Aby więc „Anywhere” się pojawiło, musisz pozostawić moduł Bezpieczeństwo i prywatność Ustawienia. Jednak teraz nadal pojawia się komunikat „Nie można zweryfikować”, ale nigdzie nie ma zezwolenia ani otwarcia.
UserOneFourTwo
3

Chciałbym dodać do odpowiedzi Mudassara Ashrafa.

Jeśli nie widzisz opcji « Zezwalaj » po kliknięciu « Anuluj », przełącz «Zezwól aplikacjom pobranym z» w oknie Zabezpieczenia na « App Store i zidentyfikowani programiści ». To w jakiś sposób sprawi, że pojawi się przycisk « Zezwól ». Następnie przełącz go z powrotem na « Anywhere ». Powtórzyć w razie potrzeby.

Sergey Manvelov
źródło
1

Jeśli z jakiegoś powodu w oknie Zabezpieczenia i prywatność przycisk zezwól się nie pojawi, po prostu przenieś ndk do innego katalogu i spróbuj ponownie cały proces.

RadekJ
źródło