Hamed Ghadirian
Hamed Ghadirian

Reputation: 6353

Primary key property 'name' does not exist on object 'RealmSwiftPermissionRole'

I'm using RealmSwift as a database in my swift project. Today, after opening my project in Xcode-beta version 11, my app crash with this error:

Terminating app due to uncaught exception 'RLMException', reason: 'Primary key property 'name' does not exist on object 'RealmSwiftPermissionRole''

My app works properly on the previous version of Xcode(10.2.1). RealmSwiftPermissionRole is a class from the Realm and I don't have access to it. Maybe in their feature updates, they fix this bug but for now, I search a lot but didn't find any solution. (I clean the project, delete the app from the simulator, and run the project again but nothing changed.) Any suggestion?

Upvotes: 42

Views: 17325

Answers (5)

Amrit Tiwari
Amrit Tiwari

Reputation: 990

For me,

Updating the Realm to pod 'RealmSwift', '~> 4.4.1'

and update the pod install

Works for me.

Upvotes: 0

Gal Shahar
Gal Shahar

Reputation: 2795

There's an issue with iOS 13 and Xcode 11 which may cause this problem. All String properties of Realm classes with a default String value set are disregarded somehow. You can fix this by updating to the latest version (currently 3.20.0) and then on Xcode: Product -> Clean Build Folder.

If you're using cocoa-pods:

Open your project's Podfile, and replace RealmSwift line with:

pod 'RealmSwift', '~> 4.4.1'

Then, open terminal on the project's folder and:

pod repo update
pod install

Upvotes: 96

Iosif
Iosif

Reputation: 377

I had run into the same issue with RealmSwift 4.3.1, the problem was I forgot to mark the property as @objc

@objc dynamic var id = ""

Upvotes: 11

Sammy Spets
Sammy Spets

Reputation: 261

Developers of Realm have started working on Xcode 11 compatibility. From that page...

Using Realm with Xcode betas requires building from source, and typically will require using dev branches rather than releases.

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

Explicitly including the Realm pod as a dependency is required as otherwise it'll try to use the latest release of the obj-c part.

Note that last sentence. You must include the Realm pod as a dependency or it'll use the non-beta version and it won't work.

Upvotes: 16

Mukesh Shakya
Mukesh Shakya

Reputation: 445

Try deleting and reinstalling your application too.

Upvotes: 0

Related Questions