2014-11-17 3 views
1

Когда я создаю приложение прямо на свой iPhone, я могу хранить элементы в keyChain, но если я его заархивирую и отправлю в ItunesConnect, а кто-то скажет его с помощью testFlight, хранить элемент в KeychainБрелок не работает при установке приложения с помощью TestFlight

Вот о том, когда он пытается получить доступ к брелка:

Dec 4 23:10:40 <Error>: securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.123944Z,F87F1109) 
Dec 4 23:10:40 <Error>: SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.123944Z,F87F1109)) 
Dec 4 23:10:40 <Error>: securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.146946Z,5CD00596) 
Dec 4 23:10:40 <Error>: SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.146946Z,5CD00596)) 
Dec 4 23:10:40 <Error>: securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.20269Z,846CAAC0) 
Dec 4 23:10:40 <Error>: SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,7937CF51,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.20269Z,846CAAC0)) 
Dec 4 23:10:40 <Error>: securityd_xpc_dictionary_handler appName[2687] add The operation couldn’t be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.222921Z,7E11CA46) 
Dec 4 23:10:40 <Error>: SecOSStatusWith error:[-25299] The operation couldn’t be completed. (OSStatus error -25299 - Remote error : The operation couldn‚Äôt be completed. (OSStatus error -25299 - duplicate item O,genp,801FEEB1,L,ak,bundleID.appName,0,acct,svce,gena,v_Data,20141205041040.222921Z,7E11CA46)) 

EDIT

Это то, что я использую, чтобы положить что-то в связке ключей: https://github.com/jrendel/KeychainWrapper/blob/master/KeychainWrapper/KeychainWrapper.swift

Я не знаю, использует ли он kSecClassGenericPassword. Это то, что я сделать, чтобы поместить данные в брелка:

KeychainWrapper.setString(self.username.text, forKey: "username") 
KeychainWrapper.setString(self.password.text, forKey: "password") 

И я получить его обратно с помощью:

if let u = KeychainWrapper.stringForKey("username") { 
     username = KeychainWrapper.stringForKey("username")! 
     password = KeychainWrapper.stringForKey("password")! 
} 
+0

Что вы пытаетесь сохранить в брелках? элементы связки ключей на устройство или на пользователя (iCloud), поэтому, если вы поместите что-то в свой собственный брелок через ваше приложение, оно не будет передаваться магически в чужой брелок. –

+0

Я знаю, что пытаюсь сохранить имя пользователя и пароль, которые пользователь вводит в текстовое поле –

ответ

1

Вы должны проверить консоль на устройстве вы не можете получить доступ к брелка на и искать журналы, указывающие на проблему с доступом к цепочке ключей. Это звучит как проблема с правами. Проверьте эту справку о том, как решить проблему вы, вероятно, увидеть в консоли:

https://developer.apple.com/library/ios/qa/qa1726/_index.html

EDIT

Я думаю, что вы, вероятно, не заполняя всю необходимую информацию для брелка пункт. Если вы используете kSecClassGenericPassword, то вам необходимо заполнить как kSecAttrAccount и kSecAttrService

Этот блог имеет более подробную информацию: http://useyourloaf.com/blog/2010/04/28/keychain-duplicate-item-when-adding-password.html

Этот вопрос StackOverflow перечисляет комбинации, которые образуют первичные ключи: What makes a keychain item unique (in iOS)?

Вот другой вопрос, для хорошей меры, с вашей же проблемой: Error saving in the keychain with iphone sdk

+0

Я не думаю, что это проблема с его устройством, если я строю его прямо к нему, он работает –

+0

Я ничего не сказал об устройстве и ни делает ссылку. Речь идет о профиле предоставления и правах, которые включены в приложение. Возможно, вы используете другой профиль обеспечения для создания вашего устройства для разработки, чем вы, когда вы создаете для adhoc-тестирования через TestFlight.Проверьте консоль, как я предложил, и посмотрим, видите ли вы ошибку, упомянутую в ссылке, если нет, отправьте сообщение здесь с сообщением, которое вы видите. – bjtitus

+0

Как я вижу консоль и журнал? У меня нет его устройства со мной –

1

Кажется, ошибка с компилятором Swift.

Он должен работать, если вы измените «Уровень оптимизации» для «Release» «Нет» в «Build Settings» вашей цели

Проверьте ответ Марк в этой теме: https://stackoverflow.com/a/26467942/2977842

Надежда это помогает!

Смежные вопросы