2009-09-15 9 views

Odpowiedz

6

Nie można modyfikować zawartości pakietu podczas pracy, nie masz uprawnień do zapisu do tego katalogu. Nie jestem pewien, czy istnieje sposób, aby zrobić dokładnie to, co chcesz.

3

Wiem, że można uzyskać info.plist jako NSDictionary poprzez NSBundle z następujących czynności:

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary]; 

stamtąd można zrobić mutableCopy z NSDictionary i ustawić wartości w nim. Podczas wysyłania zapytań do kluczy musisz upewnić się, że zapytanie do pliku NSDictionary, a nie do pliku info.plist, nie powinno być trudne, ale nie powinno to być trudne do hermetyzacji w klasie, która obsługuje oba problemy.

Jeśli chodzi o modyfikowanie pliku info.plist aplikacji, mogą to być problemy (np. Jeśli zmodyfikujesz plik, podpisywanie kodu zakończy się niepowodzeniem, a twoja aplikacja zostanie uznana za uszkodzoną), chociaż nie jestem tego pewien.

+0

Klawisz 'UIRequiresPersistentWiFi' wydaje się przechwycić do jakiegoś większego kodu' UIApplication' Nie mogę lub nie wiem, jak dostęp, który przedstawia okno dialogowe Wi-Fi, gdy potrzebne jest połączenie sieciowe. Dlatego zrobienie kopii preferencji pakunku może nie zająć mi dużo w tym konkretnym przypadku, chociaż może to dotyczyć innych kluczy, jeśli ich zachowanie może zostać przesłonięte. –

+0

Nie będzie można zmienić pliku info.plist ani żadnego z plików w głównym katalogu. – mahboudz

0

Nie można modyfikować pliku Info.plist. Wydaje się, że nie ma usankcjonowanego przez Apple sposobu robienia tego, o co prosisz.

0

Nie sądzę, że to zadziała. [NSBundle mainBundle] ma wskaźnik do określonego infoDictionary. Nawet jeśli weźmiesz zmienną kopię, NSBundle nie będzie wiedział nic o naszym nowym pliście. Ktoś próbował jeszcze?

0

Info.plist to nic innego jak słownik. Dlatego można go edytować.

Powiązane problemy