2013-02-14 27 views
11

Potrzebuję uruchomić następujący kod, aby wyłączyć ekran iphone.Jak mogę zmienić uprawnienia do aplikacji na iOS?

Na iOS6:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked"); 

a następnie użyć:

BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim 

nie robi praca. Ktoś powiedział mi, że muszę mieć uprawnienia do pracy na moim iPhone'ie. Nie wiem, jak ustawić te uprawnienia. Widziałem kilka sposobów ustalania uprawnień, ale są one dla mnie bardzo kłopotliwe, jak ten.

Tak, musisz kodować podpisywanie uprawnień. Ale nie, to nie musi być z certyfikatem Apple na telefonach jailbroken. Można fałszywego kodu znak, pobierając plik wykonywalny ldid i robi

cd MyAppName.app 
ldid -Sentitlements.xml MyAppName 

zakładając swoją aplikację o nazwie MyAppName i dokonaniu plików entitlements.xml uprawnienia . Wierzę, że ten plik uprawnień byłby dla ciebie , jeśli podszyfrowujesz go pod ldidem.

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> 
    <dict> 
    <key>com.apple.backboard.client</key> 
    <true/> 
    </dict> 
</plist> 

Nawet z powyższego sposobu, w którym mogę się zgłosić powyższe uprawnienia?

Odpowiedz

16

Przez Jailbreak app/uprawnienia, trzeba zrobić coś takiego. Najpierw utwórz plik o nazwie entitlements.xml (lub cokolwiek chcesz):

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
    <key>com.apple.backboard.client</key> 
    <true/> 
    </dict> 
</plist> 

Możesz dodać więcej uprawnienia, jeśli trzeba. Ten przykładowy plik po prostu przyznaje aplikacji uprawnienie com.apple.backboard.client.

To naprawdę nie ma znaczenia gdzie umieściłeś ten plik. Kluczem jest:

  1. Będziesz musiał zmodyfikować plik SDKSettings.plist Xcode, w as shown here. CODE_SIGNING_REQUIRED należy ustawić na NO.
  2. Nie koduj swojej aplikacji w Xcode. W Ustawienia kompilacji upewnij się, że tożsamość identyfikatora kodu jest ustawiona na Nie koduj znaku.
  3. Po wykonaniu tej czynności zbuduj swoją aplikację dla urządzenia iOS (nie na symulatorze!), A następnie przejdź do katalogu na komputerze Mac, na którym znajdują się pliki wyjściowe. W przypadku aplikacji o nazwie HelloWorld szukasz katalogu HelloWorld.app.Może się różnić w zależności od konfiguracji, więc nie będę zawracać sobie głowy informacją, gdzie to jest. W razie wątpliwości użyj polecenia find z linii poleceń.
  4. Pobierz ldid fabrycznie z this location lub jako source from here.
  5. Skopiuj plik entitlements.xml do tego samego katalogu, w którym znajduje się HelloWorld.app. (Uwaga: nie musisz mieć, aby mieć go tutaj ... jeśli umieścisz go gdzieś indziej, po prostu dostosuj wiersz polecenia pokazuję poniżej).
  6. Zmień katalog na katalog, w którym znajduje się plik entitlements.xml.
  7. Fake code-sign with this command:
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld 

Po tym punkcie, trzeba przenieść cały folder HelloWorld.app zainstalować aplikację na urządzeniu. Jest na to wiele sposobów i brzmi to, jakbyś już miał sposób.

Mam cały proces konfiguracji ze skryptem, aby było łatwiej.

Uwaga: ja nie stwierdzając, czy uprawnienie to jest poprawne uprawnienie do wykorzystania na rozmowy BKSDisplayServicesSetScreenBlanked() na iOS 6. Nie badanego że. Wiem, że to uprawnienie pozwala ci używać SBDimScreen() w niższych wersjach systemu iOS. Ale ta odpowiedź to tylko opis, jak jak dodać uprawnienia do aplikacji jailbreak.

+0

Czy mogę uzyskać twój identyfikator skype? Więc mógłbym wysłać ci e-mail następnym razem, gdy mam pytanie typu jailbreak – zzzzz

+0

Okay Nate dzięki :) – zzzzz

+0

Nie mogę go podpisać za pomocą polecenia ldid.it mówi -bash: -Sentitlements.xml: command not found – zzzzz

-1

Uprawnienia są ustawiane w pliku projektu Xcode lub ustawiane w pliku uprawnień, który wybiera projekt Xcode.

Look w ustawieniach projektu w „Podsumowaniu” lub „zbudować Fazy” do ustawienia lub nazwy uprawnień złożyć

+2

(-1) ta odpowiedź jest błędna lub żałośnie niekompletna. Ten * normalny * proces dodawania uprawnień nie działa w przypadku dodawania tego rodzaju uprawnień do ** aplikacji jailbreak **. – Nate

+1

Mogę potwierdzić, że nie działa dla aplikacji jailbreak. (iOS 7.0.4) – 0x8BADF00D

Powiązane problemy