Я создаю приложение для iOS с покупкой внутри приложения, подумывая о сохранении выбора плана пользователя в SwiftData.
Интересно, возможно ли, чтобы пользователь мог изменять данные SwiftData SQLite напрямую с помощью некоторых инструментов редактора.
Если это возможно, я не могу использовать SwiftData/CoreData для хранения выбора плана пользователя.
Это возможно или нет?
Воспользуйтесь StoreKit 2, и тогда вам вообще не нужно будет хранить данные о покупках. Вы можете напрямую и безопасно получить их права при запуске приложения и просто сохранить их в памяти.
Я думаю, что это очень возможно. Но если вы используете SwiftData с iCloud, вы можете попробовать @Attribute(.allowsCloudEncryption) var ....
в своих моделях. Для локального SwiftData SQLite вы можете зашифровать конфиденциальные свойства ваших моделей, чтобы они хранились в зашифрованном виде в базе данных SQLite, и при необходимости расшифровывать их в вашем приложении. Например, хранение ключа в связке ключей.
да, пользователь вполне может изменить данные напрямую, если у него есть доступ к устройству и необходимые инструменты для изменения данных, он может манипулировать базой данных. использование Swiftdata — «хороший» выбор для iOS, но оно сопряжено с огромными рисками.
Это больше подходит в качестве комментария, чем ответа.
@JoakimDanielson Но он отвечает на поставленный вопрос.
@JoakimDanielson, это действительно не так. Ответ ясен и краток и предлагает альтернативу. Это все, что нужно для ответа.
Я, конечно, не согласен, там говорится о необходимых инструментах, но не упоминается ни один пример, поэтому он очень расплывчатый, и сказать, что использование SwiftData «огромный риск» — это преувеличение, не подкрепленное никакими доказательствами или данными. Так что на самом деле там говорится только «да, это очень возможно», и это не совсем ответ. Тогда вопрос явно не по теме, но я думаю, это не имеет отношения к данной дискуссии.
@JoakimDanielson, очень жаль, я новичок в stackoverflow, поэтому не знаю, как четко отвечать на вопросы. спасибо за это, я буду иметь в виду, чтобы сделать лучше.
Да, с взломанным телефоном. Я не уверен в обратном. Подобные вещи обычно хранятся на вашем внутреннем сервере.