Skip to content


Subversion checkout URL

You can clone with
Download ZIP
iOS keychain wrapper for Appcelerator Titanium
JavaScript Objective-C Python Java
Latest commit 0c31916 @pegli Update
Failed to load latest commit information.
mobile updated Ti SDK on android version to 3.5.0.Beta
samples/KeychainExample issue 6: set 'Build Active Architecture Only' to NO for all deploymen…
.gitignore initial commit

ti_keychain module

The keychain module provides methods for securely storing sensitive data on iOS and Android.


Version 1.0 for iOS contains a design flaw where the identifier passed to createKeychainItem() is stored in the account field of the keychain item. If you ever change the value of the account property, a new item will be created. In version 2.0, this problem has been fixed by assigning the identifier to the label field of the keychain item. If you are using 1.0 and want to upgrade to 2.0, you will need to continue to use the account name as the keychain item identifier, but will be free to change the account property of the keychain item once it is fetched.



  1. Download the module from the Releases section of the Github repository. Save the module ZIP to either your project's root directory (the same directory as the Resources folder) or your Titanium SDK installation directory.
  2. Edit tiapp.xml and add the following line to the <modules> section, using the version number specified in the ZIP file name:
<module version="2.0">com.obscure.keychain</module>
  1. Clean and rebuild your project.

Detailed instructions for installing modules can be found on the Appcelerator documentation site.

Usage Example

var keychain = require('com.obscure.keychain');

// NOTE passphrase is ignored on iOS
var keychainItem = keychain.createKeychainItem('server account', 'supersecretpassphrase');

// get values
alert('Your account name is ' + keychainItem.account);

// set values
keychainItem.account = 'pegli'; // username
keychainItem.valueData = 'correctbatteryhorsestaple'; // password
Something went wrong with that request. Please try again.