Свойство первичного ключа name не существует в объекте RealmSwiftPermissionRole
Я использую RealmSwift в качестве базы данных в моем быстром проекте. Сегодня, после открытия моего проекта в Xcode-beta версии 11, мое приложение вылетает с этой ошибкой:
Завершение работы приложения из-за необработанного исключения "RLMException", причина: "Свойство первичного ключа" name "не существует для объекта" RealmSwiftPermissionRole "
Мое приложение работает должным образом на предыдущей версии Xcode (10.2.1). RealmSwiftPermissionRole класс от Realm и у меня нет доступа к нему. Возможно, в своих обновлениях функций они исправили эту ошибку, но сейчас я много искал, но не нашел решения. (Я очищаю проект, удаляю приложение из симулятора и снова запускаю проект, но ничего не изменилось.) Есть предложения?
Ответы
Ответ 1
Существует проблема с iOS 13 и Xcode 11, которая может вызвать эту проблему. Все свойства String классов Realm со значением по умолчанию String
как-то игнорируются.
Вы можете исправить это, обновившись до последней версии (в настоящее время 3.19.1), а затем в Xcode: Product → Clean Build Folder.
Если вы используете cocoa-стручки:
Откройте ваш проект Podfile и замените строку RealmSwift на:
pod 'RealmSwift', '~> 3.19.1'
Затем откройте терминал в папке проекта и:
pod repo update
pod install
Надеюсь, это поможет.
Ответ 2
Разработчики Realm начали работать над совместимостью с Xcode 11. С этой страницы...
Использование Realm с бета-версиями Xcode требует сборки из исходного кода и обычно требует использования веток разработки, а не выпусков.
Carthage
github "realm/realm-cocoa" "tg/xcode-11-b1"
DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer carthage bootstrap -no-use-binaries
CocoaPods
pod 'Realm', git: 'https://github.com/realm/realm-cocoa.git', branch: 'tg/xcode-11-b1', submodules: true
pod 'RealmSwift', git: 'https://github.com/realm/realm-cocoa.git', branch: 'tg/xcode-11-b1', submodules: true
Требуется явное включение модуля Realm в качестве зависимости, так как в противном случае он попытается использовать последний выпуск части obj-c.
Обратите внимание, что последнее предложение. Вы должны включить модуль Realm в качестве зависимости, иначе он будет использовать не бета-версию и не будет работать.
Ответ 3
Попробуйте удалить и переустановить приложение тоже.