Şu anda kullanıcı adını (e-posta) ve e-posta ve şifrenin tuzlu bir karmasını iOS KeyChain'de saklıyorum. Burada bulunan ARC tarafından belirlenmiş sürümü 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 etkinken ağ aramalarım için belirteci çıkarmam gerektiğinde iyi çalışıyor. Temiz bir başlangıçtan ve tüm ağ çağrılarından oturum açmak için çalışır. Uygulama arka planda olduğunda sorun başlar.
Unutmayın, bu sadece ara sıra oluyor ve henüz belirli bir iOS sürümüne veya cihazına sabitlemedim.
Kullanıcı bir konumu gösteriyor (bölge izleme) ve sunucuyu durumuyla güncellemek istiyorum. Diğer ağ aramalarında yaptığım gibi jetonu anahtar zincirinden çıkarmaya ve durumu güncellemeye çalışıyorum. Ancak bazı kullanıcılar için değer sıfırdır. Onsuz, ağ öğelerini güncelleyemiyorum. Bu neden çoğu kişi için işe yarasın ama küçük bir yüzde için değil?
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData];
Keychainwrapper'ın ARC olmayan sürümüne geri döndüm, ancak yine de aynı sonuçları alıyorum. Bununla ilgili herhangi bir geri bildirim almaktan memnuniyet duyarım Bu, kullanıcılarımın yalnızca küçük bir kısmı, ancak bu, düzeltmek istediğim ve endişelenmek istemediğim bir sorun. Şimdiden teşekkürler.
Ayrıca, tüm arka plan çalışmalarım, işlerin zaman aşımına uğramasını önlemek için bir arka plan görevinde ayarlandı. Anahtar zincirini çevreleyen çalışmayla ilgili herhangi bir sorun yaşamıyorum, ancak simgem dolana kadar işlerin ilerlemesine izin vermiyorum.
DÜZENLE Anahtar zincirinin arka plandaki değerleri alamamasıyla ilgili sorunumu çözdüm. Cevabı aşağıda yayınlayacağım ve bu sorunun daha sonra başkaları için değerli olabileceğini düşündüğüm için kabul edeceğim.