Stworzyłem aplikację, która zawiera narzędzie wiersza polecenia. Włączyłem piaskownicę aplikacji i przetestowałem, czy działa. Mam również podpisaną kodem aplikację i narzędzie wiersza poleceń.
Ale kiedy przesyłam aplikację do iTunes, otrzymałem wiadomość e-mail z informacją: „Nie włączono piaskownicy aplikacji”.
Najwyraźniej muszę ustawić plik uprawnień klucza com.apple.security.app-sandbox
z true
wartość i wypisz pliki wykonywalne: /Contents/MacOS/myApp
i /contents/Frameworks/x86/myCommandLineTool
.
Jestem pewien, że włączyłem piaskownicę w Xcode, więc pomyślałem, że problem dotyczy narzędzia wiersza poleceń.
Jak mogę włączyć piaskownicę dla narzędzia wiersza poleceń? Czy jest jakiś konkretny folder, w którym powinienem umieścić narzędzie? Wszelkie sugestie mile widziane - martwiłem się tym przez kilka dni.
Odpowiedzi:
22 dla odpowiedzi nr 1Miałem ten sam problem i po kilku wyszukiwaniach, próbach i błędach działało to dla mnie:
utwórz plik uprawnień - dla mnie to po prostu com.apple.security.inherit ustawione na TAK. Utworzyłem ten plik w samym xcode.
Teraz podpisz to narzędzie wiersza polecenia, używając polecenia:
codesign --entitlements ./entitlements.plist -s "copy & paste your certificate from keychain" ./commandlinetool
Dla pewności sprawdź za pomocą tego polecenia:
codesign --display --entitlements - ./commandlinetool
To narzędzie zostało już uwzględnione w projekcie. Po prostu skompiluj, zarchiwizuj i prześlij
Status „oczekuje na sprawdzenie”.