Non è possibile farlo in modo sicuro. Un token è di dominio pubblico e non appena è sul tuo dispositivo, un hacker potrebbe accedervi, indipendentemente da ciò che cerchi di proteggerlo. Inserirlo nel portachiavi non cambierà questo fatto. Anche se lo memorizzi lì, il che lo renderebbe sicuro mentre è lì dentro, possono semplicemente aspettare fino alla scadenza e poi afferrare il prossimo quando arriva il filo la prossima volta. I token di accesso non sono la cosa di cui ti devi preoccupare per la sicurezza, perché in effetti non puoi farlo in un ambiente mobile.
Ciò significa che è possibile memorizzarlo ovunque desideri. NSUserDefaults va bene, il portachiavi va bene, un database va bene, un file di testo nella directory dei documenti va bene. Tutti sono ugualmente sicuri perché un hacker determinato può semplicemente aspettare l'opportunità giusta per accedere ai dati che desidera. Dovresti invece preoccuparti di proteggere le credenziali di autenticazione dei tuoi utenti. Assicurati di archiviarli nel portachiavi e comunicare sempre e solo con la tua API su HTTPS a un server con un certificato SSL valido.
Si consiglia di osservare anche le linee guida OWASP - https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet – rajagp