SORU
10 Mayıs 2012, PERŞEMBE


değil arka plandan değerleri alma iOS Anahtarlık

Şu anda kullanıcı adı (e-posta) ve e-posta tuzlu karma ve parola iOS Anahtarlık saklamak ediyorum. ARC'ified sürümü here bulundu kullanıyorum.

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
[wrapper setObject:APP_NAME forKey:(__bridge id)kSecAttrService];
[wrapper setObject:email forKey:(__bridge id)kSecAttrAccount];
[wrapper setObject:token forKey:(__bridge id)kSecValueData];

Bu uygulama etkin durumdayken token ağ telefonlarıma için dışarı çekmek istediğimde gayet iyi çalışıyor. Tüm ağ aramaları boyunca temiz bir başlangıç olarak günlük için çalışıyor. Sorun app arka planda olduğunda başlar.

Unutmayın, bu sadece ara sıra olur tutmak ve henüz belirli iOS sürümü veya bir aygıt için aşağı atmak zorundayım.

Kullanıcı bir konum gezileri (bölge izleme) ve kendi durumu ile sunucu güncellemek istiyorum. Belirteç Anahtarlık, diğer her ağ için benimle aynı şekilde çağrı, çek ve durumunu güncelleştirmek için çalışıyorum. Ama bazı kullanıcılar için değeri sıfır. O olmadan, ağ falan update edemiyorum. Neden bu küçük bir yüzdesi için en değil ama bir işe yarar mı?

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData];

Arka keychainwrapper olmayan ARK sürüme geçtim, ama ben hala aynı sonuçları elde. Bu konuda herhangi bir geri bildirim takdir ediyorum. Sadece benim kullanıcı küçük bir parçasıdır, ama düzeltme ve endişe etmemesini istiyorum bir sorun. Şimdiden teşekkürler.

Ayrıca, arka plan çalışmalarımın hepsi bir backgroundTask zamanlama şeyleri önlemek için ayarlanır. İş ile ilgili sorunları Anahtarlık saran değilim, ama benim token dolana kadar şeyin devam etmesine izin vermem.

EDİT Onlar Anahtarlık kökenli değerleri alma ile sorunumu çözdüm. Cevap aşağıda yazı ve bu soru başkaları için daha değerli olabilir hissediyorum olarak kabul ediyorum.

CEVAP
14 Mayıs 2012, PAZARTESİ


Benim soru işareti yakın neden, ama bu kadar değil. Öğretici blog öğretici blog okuduktan sonra, sonunda neler olabileceğini bir ipucu verdi onu buldum.

Ana ekran kilitli. Anahtarlık öğreticiler her zaman Apple'ın en düşük/güvenli erişim düzeyi için varsayılan o Anahtarlık için erişilebilirlik ayarlarını boş bırakılmış. Bu seviye ancak eğer kullanıcı kilit ekranında şifre varsa Anahtarlık erişim izin vermez. Bingo! Bu, kullanıcıların yalnızca küçük bir yüzdesi olur neden dağınık davranışını açıklar.

Kod tek satır, tüm pisliği çözer.

[wrapper setObject:(__bridge id)kSecAttrAccessibleAlways forKey:(__bridge id)kSecAttrAccessible];

Kullanıcı adı ve parola değerleri ayarlıyorum bu satırı ekleyin. Bir cazibe gibi çalışır. Birisi bu konuda yardımcı olacağını umuyoruz. Parçaları bir araya koymak mümkün olana kadar uzunca bir süre beni şaşkına çevirdi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • RocketJump

    RocketJump

    22 ŞUBAT 2006