Widziałem wszystkie inne posty z SO dotyczące udostępniania danych NSUserDefaults między aplikacjami hosta i rozszerzeniami aplikacji, ale moje nadal nie działa. Oto wszystko, co zrobiłem:Dlaczego grupy aplikacji nie działają w moim rozszerzeniu WatchKit?
- Włącz grupy aplikacji na karcie "Możliwości" Xcode dla aplikacji rozszerzenia i hosta.
- Ustaw nazwę grupy na "group.com.mycompany.foo" i sprawdź, czy rozszerzenie i aplikacja hosta zostały dodane do grupy.
- Potwierdzono, że istnieje plik uprawnień dla obu z kluczem "com.apple.security.application-groups" ustawionym na nazwę mojej grupy aplikacji. (Dla tego, co jest warte, korzystam również ze współużytkowanych funkcji keychain między rozszerzeniem a aplikacją hosta, która działa - więc nie sądzę, aby to stanowiło problem z uprawnieniami).
- Regeneracja wszystkich profili udostępniania. W rzeczywistości nawet anulowałem wszystkie moje certyfikaty i zregenerowałem wszystkie profile świeże po skonfigurowaniu grupy aplikacji.
I po tym wszystkim, ten kod nie zadziała:
// in the host app
NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"];
[testDefaults setObject:@"TEST" forKey:@"foo"];
[testDefaults synchronize];
a następnie:
// in the extension
NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"];
NSLog(@"%@", [testDefaults objectForKey:@"foo"]);
co skutkuje:
(null)
Kiedy spójrz w preferencje Xcode, zauważam te ikony, z których żadna nie ma ikony "Grupa aplikacji":
Ale jak już wcześniej wspomniałem, po skonfigurowaniu grupy aplikacji posunąłem się do końca po wyczyszczeniu profili pęków kluczy, certyfikatów i obsługi administracyjnej. Więc jeśli to jest faktycznie problem, w jaki sposób mogę dodać uprawnienia do profili?
Czego mi brakuje? Jestem świeży z pomysłów.
Pomoc?
EDYCJA: Grupy dostępu działają w moim obecnie rozszerzeniu Safari o numerze &, ale nie w rozszerzeniu WatchKit. Nie mam pojęcia dlaczego, a wszystkie ustawienia kompilacji wydają się być skonfigurowane w ten sam sposób.
EDIT 2: Dla tych, twierdząc, że moje możliwości nie są ustawione prawidłowo, oto zrzut ekranu:
Czy próbowałeś kliknięcie „refres h "w lewym dolnym rogu listy profili obsługi Xcode? –
Prawdopodobnie milion razy. :( – user2393462435
Brak ikony grup aplikacji w kolumnie Uprawnienia w załączonym widoku (przynajmniej ja tego nie mam i aplikacje działają dla mnie) Powrót do problemu: czy jesteś w 100% pewien, że zarówno aplikacja hosta, jak i cel rozszerzenia są podpisany z prawidłowym profilem administracyjnym i identyfikatorem szyldu kodu, a poprawne mam na myśli 'com.mycompany.foo.myapp' i' com.mycompany.foo.myapp.myappwatchkitextension'. Wildcard nie zadziała tutaj – lvp