Используйте криптографический алгоритм, такой как AES , чтобы зашифровать данные, которые вы храните в NSUserDefaults.Сохранение ключа шифрования, встроенного в ваше приложение, либо жестко запрограммированным, либо вычисленным с использованием последовательности операций над несколькими элементами, будет успешно сдерживать любую инициативу редактирования в отношении значений, которые вы храните.Чтобы упростить задачу, вы должны написать метод-обертку, который принимает ключ и значение в виде открытого текста, шифрует их, а затем сохраняет их в NSUserDefaults для вас и, конечно, делает то же самое в обратном порядке при чтении значений обратно.Однако обратите внимание, что это будет медленнее, чем небезопасное хранилище, учитывая время на шифрование / дешифрование, поэтому рассмотрите возможность применения этого метода только к наиболее чувствительным параметрам конфигурации вашего приложения.