Full Code of realm/realm-swift for AI

community 1cd09f1a41e7 cached
736 files
10.3 MB
2.7M tokens
254 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (10,918K chars total). Download the full file to get everything.
Repository: realm/realm-swift
Branch: community
Commit: 1cd09f1a41e7
Files: 736
Total size: 10.3 MB

Directory structure:
gitextract_n99e6kjn/

├── .dir-locals.el
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yml
│   │   ├── config.yml
│   │   └── feature.yml
│   └── workflows/
│       ├── build-binaries.yml
│       ├── build-pr.yml
│       ├── check-changelog.yml
│       ├── master-push.yml
│       └── publish-release.yml
├── .gitignore
├── .ruby-version
├── .swiftlint.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Configuration/
│   ├── Base.xcconfig
│   ├── Debug.xcconfig
│   ├── Realm/
│   │   ├── PrivateSymbols.txt
│   │   ├── Realm.xcconfig
│   │   └── Tests.xcconfig
│   ├── RealmSwift/
│   │   ├── RealmSwift.xcconfig
│   │   └── Tests.xcconfig
│   ├── Release.xcconfig
│   ├── Static.xcconfig
│   ├── SwiftUITestHost.xcconfig
│   ├── SwiftUITests.xcconfig
│   ├── TestBase.xcconfig
│   └── TestHost.xcconfig
├── Gemfile
├── LICENSE
├── Package.swift
├── README.md
├── Realm/
│   ├── PrivacyInfo.xcprivacy
│   ├── RLMAccessor.h
│   ├── RLMAccessor.hpp
│   ├── RLMAccessor.mm
│   ├── RLMArray.h
│   ├── RLMArray.mm
│   ├── RLMArray_Private.h
│   ├── RLMArray_Private.hpp
│   ├── RLMAsyncTask.h
│   ├── RLMAsyncTask.mm
│   ├── RLMAsyncTask_Private.h
│   ├── RLMClassInfo.hpp
│   ├── RLMClassInfo.mm
│   ├── RLMCollection.h
│   ├── RLMCollection.mm
│   ├── RLMCollection_Private.h
│   ├── RLMCollection_Private.hpp
│   ├── RLMConstants.h
│   ├── RLMConstants.m
│   ├── RLMDecimal128.h
│   ├── RLMDecimal128.mm
│   ├── RLMDecimal128_Private.hpp
│   ├── RLMDictionary.h
│   ├── RLMDictionary.mm
│   ├── RLMDictionary_Private.h
│   ├── RLMDictionary_Private.hpp
│   ├── RLMEmbeddedObject.h
│   ├── RLMEmbeddedObject.mm
│   ├── RLMError.h
│   ├── RLMError.mm
│   ├── RLMError_Private.hpp
│   ├── RLMGeospatial.h
│   ├── RLMGeospatial.mm
│   ├── RLMGeospatial_Private.hpp
│   ├── RLMLogger.h
│   ├── RLMLogger.mm
│   ├── RLMLogger_Private.h
│   ├── RLMManagedArray.mm
│   ├── RLMManagedDictionary.mm
│   ├── RLMManagedSet.mm
│   ├── RLMMigration.h
│   ├── RLMMigration.mm
│   ├── RLMMigration_Private.h
│   ├── RLMObject.h
│   ├── RLMObject.mm
│   ├── RLMObjectBase.h
│   ├── RLMObjectBase.mm
│   ├── RLMObjectBase_Dynamic.h
│   ├── RLMObjectBase_Private.h
│   ├── RLMObjectId.h
│   ├── RLMObjectId.mm
│   ├── RLMObjectId_Private.hpp
│   ├── RLMObjectSchema.h
│   ├── RLMObjectSchema.mm
│   ├── RLMObjectSchema_Private.h
│   ├── RLMObjectSchema_Private.hpp
│   ├── RLMObjectStore.h
│   ├── RLMObjectStore.mm
│   ├── RLMObject_Private.h
│   ├── RLMObject_Private.hpp
│   ├── RLMObservation.hpp
│   ├── RLMObservation.mm
│   ├── RLMPredicateUtil.hpp
│   ├── RLMPredicateUtil.mm
│   ├── RLMPrefix.h
│   ├── RLMProperty.h
│   ├── RLMProperty.mm
│   ├── RLMProperty_Private.h
│   ├── RLMProperty_Private.hpp
│   ├── RLMQueryUtil.hpp
│   ├── RLMQueryUtil.mm
│   ├── RLMRealm.h
│   ├── RLMRealm.mm
│   ├── RLMRealmConfiguration.h
│   ├── RLMRealmConfiguration.mm
│   ├── RLMRealmConfiguration_Private.h
│   ├── RLMRealmConfiguration_Private.hpp
│   ├── RLMRealmUtil.hpp
│   ├── RLMRealmUtil.mm
│   ├── RLMRealm_Dynamic.h
│   ├── RLMRealm_Private.h
│   ├── RLMRealm_Private.hpp
│   ├── RLMResults.h
│   ├── RLMResults.mm
│   ├── RLMResults_Private.h
│   ├── RLMResults_Private.hpp
│   ├── RLMScheduler.h
│   ├── RLMScheduler.mm
│   ├── RLMSchema.h
│   ├── RLMSchema.mm
│   ├── RLMSchema_Private.h
│   ├── RLMSchema_Private.hpp
│   ├── RLMSectionedResults.h
│   ├── RLMSectionedResults.mm
│   ├── RLMSectionedResults_Private.hpp
│   ├── RLMSet.h
│   ├── RLMSet.mm
│   ├── RLMSet_Private.h
│   ├── RLMSet_Private.hpp
│   ├── RLMSwiftBridgingHeader.h
│   ├── RLMSwiftCollectionBase.h
│   ├── RLMSwiftCollectionBase.mm
│   ├── RLMSwiftObject.h
│   ├── RLMSwiftProperty.h
│   ├── RLMSwiftSupport.h
│   ├── RLMSwiftSupport.m
│   ├── RLMSwiftValueStorage.h
│   ├── RLMSwiftValueStorage.mm
│   ├── RLMThreadSafeReference.h
│   ├── RLMThreadSafeReference.mm
│   ├── RLMThreadSafeReference_Private.hpp
│   ├── RLMUUID.mm
│   ├── RLMUUID_Private.hpp
│   ├── RLMUtil.hpp
│   ├── RLMUtil.mm
│   ├── RLMValue.h
│   ├── RLMValue.mm
│   ├── Realm-Info.plist
│   ├── Realm.h
│   ├── Realm.modulemap
│   ├── Swift/
│   │   └── RLMSupport.swift
│   ├── TestUtils/
│   │   ├── RLMChildProcessEnvironment.m
│   │   ├── RLMMultiProcessTestCase.m
│   │   ├── RLMTestCase.m
│   │   ├── RLMTestObjects.m
│   │   ├── RealmTestSupport.h
│   │   ├── TestUtils.mm
│   │   └── include/
│   │       ├── RLMAssertions.h
│   │       ├── RLMChildProcessEnvironment.h
│   │       ├── RLMMultiProcessTestCase.h
│   │       ├── RLMTestCase.h
│   │       ├── RLMTestObjects.h
│   │       └── TestUtils.h
│   └── Tests/
│       ├── ArrayPropertyTests.m
│       ├── AsyncTests.mm
│       ├── CompactionTests.m
│       ├── Decimal128Tests.m
│       ├── DictionaryPropertyTests.m
│       ├── DynamicTests.m
│       ├── EncryptionTests.mm
│       ├── EnumeratorTests.m
│       ├── InterprocessTests.m
│       ├── KVOTests.mm
│       ├── LinkTests.m
│       ├── LinkingObjectsTests.mm
│       ├── MigrationTests.mm
│       ├── NotificationTests.m
│       ├── ObjectCreationTests.mm
│       ├── ObjectIdTests.m
│       ├── ObjectInterfaceTests.m
│       ├── ObjectSchemaTests.m
│       ├── ObjectTests.m
│       ├── PerformanceTests.m
│       ├── PredicateUtilTests.mm
│       ├── PrimitiveArrayPropertyTests.m
│       ├── PrimitiveArrayPropertyTests.tpl.m
│       ├── PrimitiveDictionaryPropertyTests.m
│       ├── PrimitiveDictionaryPropertyTests.tpl.m
│       ├── PrimitiveRLMValuePropertyTests.m
│       ├── PrimitiveRLMValuePropertyTests.tpl.m
│       ├── PrimitiveSetPropertyTests.m
│       ├── PrimitiveSetPropertyTests.tpl.m
│       ├── PropertyTests.m
│       ├── QueryTests.m
│       ├── RLMValueTests.m
│       ├── RealmConfigurationTests.mm
│       ├── RealmTests-Info.plist
│       ├── RealmTests.mm
│       ├── ResultsTests.m
│       ├── SchemaTests.mm
│       ├── SectionedResultsTests.m
│       ├── SetPropertyTests.m
│       ├── Swift/
│       │   ├── RLMTestCaseUtils.swift
│       │   ├── RealmObjcSwiftTests-Info.plist
│       │   ├── Swift-Tests-Bridging-Header.h
│       │   ├── SwiftArrayPropertyTests.swift
│       │   ├── SwiftArrayTests.swift
│       │   ├── SwiftDynamicTests.swift
│       │   ├── SwiftLinkTests.swift
│       │   ├── SwiftObjectInterfaceTests.swift
│       │   ├── SwiftPropertyTypeTest.swift
│       │   ├── SwiftRLMDictionaryTests.swift
│       │   ├── SwiftRealmTests.swift
│       │   ├── SwiftSchemaTests.swift
│       │   ├── SwiftSetPropertyTests.swift
│       │   ├── SwiftSetTests.swift
│       │   ├── SwiftTestObjects.swift
│       │   └── SwiftUnicodeTests.swift
│       ├── SwiftUITestHost/
│       │   ├── Info.plist
│       │   ├── LaunchScreen.storyboard
│       │   ├── Objects.swift
│       │   └── SwiftUITestHostApp.swift
│       ├── SwiftUITestHostUITests/
│       │   ├── Info.plist
│       │   └── SwiftUITestHostUITests.swift
│       ├── TestHost/
│       │   ├── Info.plist
│       │   └── main.m
│       ├── ThreadSafeReferenceTests.m
│       ├── TransactionTests.m
│       ├── UnicodeTests.m
│       ├── UtilTests.mm
│       ├── array_tests.py
│       ├── dictionary_tests.py
│       ├── mixed_tests.py
│       └── set_tests.py
├── Realm.podspec
├── Realm.xcodeproj/
│   ├── Realm.xcworkspace/
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   ├── project.pbxproj
│   └── xcshareddata/
│       ├── xcbaselines/
│       │   ├── 5D660FD71BE98C7C0021E04F.xcbaseline/
│       │   │   ├── 6890B8D9-CE81-403E-8EF6-B95A367D65B5.plist
│       │   │   ├── B87A7896-8B70-4814-B20D-7CD723D62868.plist
│       │   │   └── Info.plist
│       │   └── E856D1DE195614A400FB2FCF.xcbaseline/
│       │       ├── 2EB6396F-9FD1-4243-AA83-2D9F9D4DD919.plist
│       │       ├── 3AE81604-3FF9-49E2-A414-9B18BEEAE28F.plist
│       │       ├── AAC6BA1A-785D-4850-B3EC-68BC9F1D3EEF.plist
│       │       └── Info.plist
│       └── xcschemes/
│           ├── CI.xcscheme
│           ├── Realm.xcscheme
│           ├── RealmSwift.xcscheme
│           ├── SwiftLint.xcscheme
│           ├── SwiftUITestHost.xcscheme
│           ├── SwiftUITests.xcscheme
│           └── TestHost.xcscheme
├── RealmSwift/
│   ├── Aliases.swift
│   ├── AnyRealmValue.swift
│   ├── Combine.swift
│   ├── CustomPersistable.swift
│   ├── Decimal128.swift
│   ├── EmbeddedObject.swift
│   ├── Error.swift
│   ├── Geospatial.swift
│   ├── Impl/
│   │   ├── BasicTypes.swift
│   │   ├── CollectionAccess.swift
│   │   ├── ComplexTypes.swift
│   │   ├── KeyPathStrings.swift
│   │   ├── ObjcBridgeable.swift
│   │   ├── Persistable.swift
│   │   ├── PropertyAccessors.swift
│   │   ├── RealmCollectionImpl.swift
│   │   └── SchemaDiscovery.swift
│   ├── LinkingObjects.swift
│   ├── List.swift
│   ├── Map.swift
│   ├── Migration.swift
│   ├── MutableSet.swift
│   ├── Object.swift
│   ├── ObjectId.swift
│   ├── ObjectSchema.swift
│   ├── ObjectiveCSupport+AnyRealmValue.swift
│   ├── ObjectiveCSupport.swift
│   ├── Optional.swift
│   ├── PersistedProperty.swift
│   ├── PrivacyInfo.xcprivacy
│   ├── Projection.swift
│   ├── Property.swift
│   ├── Query.swift
│   ├── Realm.swift
│   ├── RealmCollection.swift
│   ├── RealmConfiguration.swift
│   ├── RealmKeyedCollection.swift
│   ├── RealmProperty.swift
│   ├── Results.swift
│   ├── Schema.swift
│   ├── SectionedResults.swift
│   ├── SortDescriptor.swift
│   ├── SwiftUI.swift
│   ├── Tests/
│   │   ├── AnyRealmValueTests.swift
│   │   ├── CodableTests.swift
│   │   ├── CombineTests.swift
│   │   ├── CompactionTests.swift
│   │   ├── CustomColumnNameTests.swift
│   │   ├── CustomObjectCreationTests.swift
│   │   ├── CustomPersistableTestObjects.swift
│   │   ├── Decimal128Tests.swift
│   │   ├── GeospatialTests.swift
│   │   ├── KVOTests.swift
│   │   ├── KeyPathTests.swift
│   │   ├── ListTests.swift
│   │   ├── MapTests.swift
│   │   ├── MigrationTests.swift
│   │   ├── MixedCollectionTest.swift
│   │   ├── ModernKVOTests.swift
│   │   ├── ModernObjectAccessorTests.swift
│   │   ├── ModernObjectCreationTests.swift
│   │   ├── ModernObjectTests.swift
│   │   ├── ModernTestObjects.swift
│   │   ├── MutableSetTests.swift
│   │   ├── ObjectAccessorTests.swift
│   │   ├── ObjectCreationTests.swift
│   │   ├── ObjectCustomPropertiesTests.swift
│   │   ├── ObjectIdTests.swift
│   │   ├── ObjectSchemaInitializationTests.swift
│   │   ├── ObjectSchemaTests.swift
│   │   ├── ObjectTests.swift
│   │   ├── ObjectiveCSupportTests.swift
│   │   ├── PerformanceTests.swift
│   │   ├── PrimitiveListTests.swift
│   │   ├── PrimitiveMapTests.swift
│   │   ├── PrimitiveMutableSetTests.swift
│   │   ├── ProjectedCollectTests.swift
│   │   ├── ProjectionTests.swift
│   │   ├── PropertyTests.swift
│   │   ├── QueryTests.swift
│   │   ├── QueryTests.swift.gyb
│   │   ├── RealmCollectionTypeTests.swift
│   │   ├── RealmConfigurationTests.swift
│   │   ├── RealmPropertyTests.swift
│   │   ├── RealmSwiftTests-BridgingHeader.h
│   │   ├── RealmTests.swift
│   │   ├── SchemaTests.swift
│   │   ├── SectionedResultsTests.swift
│   │   ├── SortDescriptorTests.swift
│   │   ├── SwiftLinkTests.swift
│   │   ├── SwiftTestObjects.swift
│   │   ├── SwiftUITests.swift
│   │   ├── SwiftUnicodeTests.swift
│   │   ├── TestCase.swift
│   │   ├── TestUtils.swift
│   │   ├── TestValueFactory.swift
│   │   └── ThreadSafeReferenceTests.swift
│   ├── ThreadSafeReference.swift
│   └── Util.swift
├── RealmSwift.podspec
├── SUPPORT.md
├── build.sh
├── contrib/
│   ├── Development.md
│   ├── ReleaseProcess.md
│   ├── SignXCFramework.md
│   └── UpgradingXcode.md
├── dependencies.list
├── docs/
│   ├── README.md
│   ├── custom_head.html
│   ├── example-projects.md
│   ├── guides/
│   │   ├── crud/
│   │   │   ├── create.md
│   │   │   ├── crud.md
│   │   │   ├── delete.md
│   │   │   ├── filter-data.md
│   │   │   ├── react-to-changes.md
│   │   │   ├── read.md
│   │   │   ├── threading.md
│   │   │   └── update.md
│   │   ├── logging.md
│   │   ├── model-data/
│   │   │   ├── change-an-object-model.md
│   │   │   ├── model-data.md
│   │   │   ├── object-models.md
│   │   │   ├── relationships.md
│   │   │   └── supported-types.md
│   │   ├── quick-start.md
│   │   ├── realm-files/
│   │   │   ├── bundle-a-realm.md
│   │   │   ├── compacting.md
│   │   │   ├── configure-and-open-a-realm.md
│   │   │   ├── delete-a-realm.md
│   │   │   ├── encrypt-a-realm.md
│   │   │   ├── realm-files.md
│   │   │   └── tvos.md
│   │   ├── swift-concurrency.md
│   │   ├── swiftui/
│   │   │   ├── configure-and-open-realm.md
│   │   │   ├── filter-data.md
│   │   │   ├── model-data/
│   │   │   │   ├── change-an-object-model.md
│   │   │   │   └── define-a-realm-object-model.md
│   │   │   ├── pass-realm-data-between-views.md
│   │   │   ├── react-to-changes.md
│   │   │   ├── swiftui-previews.md
│   │   │   ├── swiftui-tutorial.md
│   │   │   └── write.md
│   │   ├── swiftui.md
│   │   ├── test-and-debug.md
│   │   ├── use-realm-with-actors.md
│   │   └── xcode-playgrounds.md
│   └── install.md
├── examples/
│   ├── README.md
│   ├── installation/
│   │   ├── .gitignore
│   │   ├── Carthage.xcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── CocoaPods.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── App.xcscheme
│   │   ├── CocoaPods.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   ├── Podfile
│   │   ├── Source/
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AccentColor.colorset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── ObjCImport.m
│   │   │   ├── Preview Content/
│   │   │   │   └── Preview Assets.xcassets/
│   │   │   │       └── Contents.json
│   │   │   ├── SwiftExample.entitlements
│   │   │   └── SwiftExampleApp.swift
│   │   ├── Static/
│   │   │   ├── StaticExample/
│   │   │   │   ├── Base.lproj/
│   │   │   │   │   ├── LaunchScreen.xib
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   └── AppIcon.appiconset/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   └── main.m
│   │   │   └── StaticExample.xcodeproj/
│   │   │       ├── project.pbxproj
│   │   │       └── xcshareddata/
│   │   │           └── xcschemes/
│   │   │               └── StaticExample.xcscheme
│   │   ├── SubRealm/
│   │   │   ├── SubRealm.podspec
│   │   │   └── SubRealm.swift
│   │   ├── SwiftPackageManager.notxcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── SwiftPackageManagerDynamic.notxcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── XCFramework.xcodeproj/
│   │   │   └── project.pbxproj
│   │   └── build.rb
│   ├── ios/
│   │   ├── objc/
│   │   │   ├── .gitignore
│   │   │   ├── Backlink/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Backlink-Info.plist
│   │   │   │   └── main.m
│   │   │   ├── Common/
│   │   │   │   └── LaunchScreen.xib
│   │   │   ├── Encryption/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Encryption-Info.plist
│   │   │   │   ├── LabelViewController.h
│   │   │   │   ├── LabelViewController.m
│   │   │   │   └── main.m
│   │   │   ├── Extension/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Extension.entitlements
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Tick.h
│   │   │   │   ├── Tick.m
│   │   │   │   └── main.m
│   │   │   ├── GroupedTableView/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── LaunchImage.launchimage/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── TableViewController.h
│   │   │   │   ├── TableViewController.m
│   │   │   │   └── main.m
│   │   │   ├── Migration/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Examples/
│   │   │   │   │   ├── Example_v0.h
│   │   │   │   │   ├── Example_v1.h
│   │   │   │   │   ├── Example_v2.h
│   │   │   │   │   ├── Example_v3.h
│   │   │   │   │   ├── Example_v4.h
│   │   │   │   │   └── Example_v5.h
│   │   │   │   ├── Migration-Info.plist
│   │   │   │   ├── RealmTemplates/
│   │   │   │   │   ├── default-v0.realm
│   │   │   │   │   ├── default-v1.realm
│   │   │   │   │   ├── default-v2.realm
│   │   │   │   │   ├── default-v3.realm
│   │   │   │   │   ├── default-v4.realm
│   │   │   │   │   └── default-v5.realm
│   │   │   │   └── main.m
│   │   │   ├── REST/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── REST-Info.plist
│   │   │   │   ├── Venue.h
│   │   │   │   ├── Venue.m
│   │   │   │   └── main.m
│   │   │   ├── RealmExamples.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           ├── Backlink.xcscheme
│   │   │   │           ├── Encryption.xcscheme
│   │   │   │           ├── Extension.xcscheme
│   │   │   │           ├── GroupedTableView.xcscheme
│   │   │   │           ├── Migration.xcscheme
│   │   │   │           ├── REST.xcscheme
│   │   │   │           ├── Simple.xcscheme
│   │   │   │           ├── TableView.xcscheme
│   │   │   │           └── TodayExtension.xcscheme
│   │   │   ├── RealmExamples.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       ├── RealmExamples.xcscmblueprint
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   ├── Simple/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Simple-Info.plist
│   │   │   │   └── main.m
│   │   │   ├── TableView/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── LaunchImage.launchimage/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── TableView-Info.plist
│   │   │   │   ├── TableViewController.h
│   │   │   │   ├── TableViewController.m
│   │   │   │   └── main.m
│   │   │   └── TodayExtension/
│   │   │       ├── Info.plist
│   │   │       ├── MainInterface.storyboard
│   │   │       ├── TodayExtension.entitlements
│   │   │       ├── TodayViewController.h
│   │   │       └── TodayViewController.m
│   │   └── swift/
│   │       ├── .gitignore
│   │       ├── AppClip/
│   │       │   ├── AppClip.entitlements
│   │       │   ├── AppClipApp.swift
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Info.plist
│   │       │   └── Preview Content/
│   │       │       └── Preview Assets.xcassets/
│   │       │           └── Contents.json
│   │       ├── AppClipParent/
│   │       │   ├── AppClipParent.entitlements
│   │       │   ├── AppClipParentApp.swift
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Constants.swift
│   │       │   ├── ContentView.swift
│   │       │   ├── DemoObject.swift
│   │       │   ├── Info.plist
│   │       │   └── Preview Content/
│   │       │       └── Preview Assets.xcassets/
│   │       │           └── Contents.json
│   │       ├── Backlink/
│   │       │   ├── AppDelegate.swift
│   │       │   └── Info.plist
│   │       ├── Common/
│   │       │   └── LaunchScreen.xib
│   │       ├── Encryption/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Info.plist
│   │       │   └── ViewController.swift
│   │       ├── GettingStarted.playground/
│   │       │   ├── Contents.swift
│   │       │   └── contents.xcplayground
│   │       ├── GroupedTableView/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Images.xcassets/
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── LaunchImage.launchimage/
│   │       │   │       └── Contents.json
│   │       │   ├── Info.plist
│   │       │   └── TableViewController.swift
│   │       ├── ListSwiftUI/
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Info.plist
│   │       │   ├── Preview Content/
│   │       │   │   └── Preview Assets.xcassets/
│   │       │   │       └── Contents.json
│   │       │   └── Views/
│   │       │       ├── App.swift
│   │       │       └── ContentView.swift
│   │       ├── Migration/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Examples/
│   │       │   │   ├── Example_v0.swift
│   │       │   │   ├── Example_v1.swift
│   │       │   │   ├── Example_v2.swift
│   │       │   │   ├── Example_v3.swift
│   │       │   │   ├── Example_v4.swift
│   │       │   │   └── Example_v5.swift
│   │       │   ├── Info.plist
│   │       │   ├── Migration.xcconfig
│   │       │   ├── README.md
│   │       │   └── RealmTemplates/
│   │       │       ├── default-v0.realm
│   │       │       ├── default-v1.realm
│   │       │       ├── default-v2.realm
│   │       │       ├── default-v3.realm
│   │       │       ├── default-v4.realm
│   │       │       └── default-v5.realm
│   │       ├── PlaygroundFrameworkWrapper/
│   │       │   ├── Info.plist
│   │       │   └── PlaygroundFrameworkWrapper.swift
│   │       ├── Projections/
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── ContentView.swift
│   │       │   ├── Info.plist
│   │       │   ├── Preview Content/
│   │       │   │   └── Preview Assets.xcassets/
│   │       │   │       └── Contents.json
│   │       │   └── ProjectionsApp.swift
│   │       ├── RealmExamples.xcodeproj/
│   │       │   ├── project.pbxproj
│   │       │   └── xcshareddata/
│   │       │       └── xcschemes/
│   │       │           ├── AppClip.xcscheme
│   │       │           ├── Backlink.xcscheme
│   │       │           ├── Encryption.xcscheme
│   │       │           ├── GroupedTableView.xcscheme
│   │       │           ├── Migration.xcscheme
│   │       │           ├── Simple.xcscheme
│   │       │           └── TableView.xcscheme
│   │       ├── RealmExamples.xcworkspace/
│   │       │   ├── contents.xcworkspacedata
│   │       │   └── xcshareddata/
│   │       │       ├── IDEWorkspaceChecks.plist
│   │       │       ├── RealmExamples.xcscmblueprint
│   │       │       └── WorkspaceSettings.xcsettings
│   │       ├── Simple/
│   │       │   ├── AppDelegate.swift
│   │       │   └── Info.plist
│   │       └── TableView/
│   │           ├── AppDelegate.swift
│   │           ├── Images.xcassets/
│   │           │   ├── AppIcon.appiconset/
│   │           │   │   └── Contents.json
│   │           │   └── LaunchImage.launchimage/
│   │           │       └── Contents.json
│   │           ├── Info.plist
│   │           └── TableViewController.swift
│   ├── osx/
│   │   └── objc/
│   │       ├── JSONImport/
│   │       │   ├── Person.h
│   │       │   ├── Person.m
│   │       │   ├── main.m
│   │       │   └── persons.json
│   │       ├── RealmExamples.xcodeproj/
│   │       │   ├── project.pbxproj
│   │       │   └── xcshareddata/
│   │       │       └── xcschemes/
│   │       │           └── JSONImport.xcscheme
│   │       └── RealmExamples.xcworkspace/
│   │           ├── contents.xcworkspacedata
│   │           └── xcshareddata/
│   │               └── WorkspaceSettings.xcsettings
│   └── tvos/
│       ├── objc/
│       │   ├── DownloadCache/
│       │   │   ├── AppDelegate.h
│       │   │   ├── AppDelegate.m
│       │   │   ├── Assets.xcassets/
│       │   │   │   ├── App Icon & Top Shelf Image.brandassets/
│       │   │   │   │   ├── App Icon - Large.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── App Icon - Small.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── Contents.json
│       │   │   │   │   └── Top Shelf Image.imageset/
│       │   │   │   │       └── Contents.json
│       │   │   │   ├── Contents.json
│       │   │   │   └── LaunchImage.launchimage/
│       │   │   │       └── Contents.json
│       │   │   ├── Base.lproj/
│       │   │   │   └── Main.storyboard
│       │   │   ├── Info.plist
│       │   │   ├── RepositoriesViewController.h
│       │   │   ├── RepositoriesViewController.m
│       │   │   ├── Repository.h
│       │   │   ├── Repository.m
│       │   │   ├── RepositoryCell.h
│       │   │   ├── RepositoryCell.m
│       │   │   └── main.m
│       │   ├── PreloadedData/
│       │   │   ├── AppDelegate.h
│       │   │   ├── AppDelegate.m
│       │   │   ├── Assets.xcassets/
│       │   │   │   ├── App Icon & Top Shelf Image.brandassets/
│       │   │   │   │   ├── App Icon - Large.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── App Icon - Small.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── Contents.json
│       │   │   │   │   └── Top Shelf Image.imageset/
│       │   │   │   │       └── Contents.json
│       │   │   │   ├── Contents.json
│       │   │   │   └── LaunchImage.launchimage/
│       │   │   │       └── Contents.json
│       │   │   ├── Base.lproj/
│       │   │   │   └── Main.storyboard
│       │   │   ├── Info.plist
│       │   │   ├── Place.h
│       │   │   ├── Place.m
│       │   │   ├── PlacesViewController.h
│       │   │   ├── PlacesViewController.m
│       │   │   └── main.m
│       │   ├── RealmExamples.xcodeproj/
│       │   │   ├── project.pbxproj
│       │   │   └── xcshareddata/
│       │   │       └── xcschemes/
│       │   │           ├── DownloadCache.xcscheme
│       │   │           └── PreloadedData.xcscheme
│       │   └── RealmExamples.xcworkspace/
│       │       ├── contents.xcworkspacedata
│       │       └── xcshareddata/
│       │           └── WorkspaceSettings.xcsettings
│       └── swift/
│           ├── DownloadCache/
│           │   ├── AppDelegate.swift
│           │   ├── Assets.xcassets/
│           │   │   ├── App Icon & Top Shelf Image.brandassets/
│           │   │   │   ├── App Icon - Large.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── App Icon - Small.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── Contents.json
│           │   │   │   └── Top Shelf Image.imageset/
│           │   │   │       └── Contents.json
│           │   │   ├── Contents.json
│           │   │   └── LaunchImage.launchimage/
│           │   │       └── Contents.json
│           │   ├── Base.lproj/
│           │   │   └── Main.storyboard
│           │   ├── Info.plist
│           │   ├── RepositoriesViewController.swift
│           │   ├── Repository.swift
│           │   └── RepositoryCell.swift
│           ├── PreloadedData/
│           │   ├── AppDelegate.swift
│           │   ├── Assets.xcassets/
│           │   │   ├── App Icon & Top Shelf Image.brandassets/
│           │   │   │   ├── App Icon - Large.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── App Icon - Small.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── Contents.json
│           │   │   │   └── Top Shelf Image.imageset/
│           │   │   │       └── Contents.json
│           │   │   ├── Contents.json
│           │   │   └── LaunchImage.launchimage/
│           │   │       └── Contents.json
│           │   ├── Base.lproj/
│           │   │   └── Main.storyboard
│           │   ├── Info.plist
│           │   ├── Place.swift
│           │   └── PlacesViewController.swift
│           ├── RealmExamples.xcodeproj/
│           │   ├── project.pbxproj
│           │   └── xcshareddata/
│           │       └── xcschemes/
│           │           ├── DownloadCache.xcscheme
│           │           └── PreloadedData.xcscheme
│           └── RealmExamples.xcworkspace/
│               ├── contents.xcworkspacedata
│               └── xcshareddata/
│                   ├── RealmExamples.xcscmblueprint
│                   └── WorkspaceSettings.xcsettings
├── plugin/
│   ├── README.md
│   ├── RealmPlugin/
│   │   ├── RLMPRealmPlugin.h
│   │   ├── RLMPRealmPlugin.m
│   │   ├── RLMPSimulatorManager.h
│   │   ├── RLMPSimulatorManager.m
│   │   ├── RealmPlugin-Info.plist
│   │   ├── RealmPlugin-Prefix.pch
│   │   └── en.lproj/
│   │       └── InfoPlist.strings
│   ├── RealmPlugin.xcodeproj/
│   │   └── project.pbxproj
│   ├── Templates/
│   │   ├── file_templates/
│   │   │   └── Realm Model Object.xctemplate/
│   │   │       ├── Objective-C/
│   │   │       │   ├── ___FILEBASENAME___.h
│   │   │       │   └── ___FILEBASENAME___.m
│   │   │       ├── Swift/
│   │   │       │   └── ___FILEBASENAME___.swift
│   │   │       ├── TemplateIcon.icns
│   │   │       └── TemplateInfo.plist
│   │   └── install_templates.sh
│   └── rlm_lldb.py
└── scripts/
    ├── create-release-package.rb
    ├── download-core.sh
    ├── generate-rlmversion.sh
    ├── github_release.rb
    ├── package_examples.rb
    ├── pr-ci-matrix.rb
    ├── release-matrix.rb
    ├── setup-cocoapods.sh
    └── swift-version.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .dir-locals.el
================================================
;; Project specific Emacs settings
((nil . ((c-basic-offset . 4)
         (indent-tabs-mode . nil)
         (c-file-style . "ellemtel")
         (c-file-offsets . ((innamespace . 0)))
         (show-trailing-whitespace . t))))


================================================
FILE: .gitattributes
================================================
CHANGELOG.md merge=union
*.mm linguist-language=Objective-C


================================================
FILE: .github/ISSUE_TEMPLATE/bug.yml
================================================
name: Bug Report
description: Report a bug
labels: [T-Bug]
body:
  - type: markdown
    attributes:
      value: |
        Please provide as much detail as you can so we have a better chance of fixing the bug quickly.
        Thanks for your contribution to improve this project!
  - type: dropdown
    id: frequency
    attributes:
      label: How frequently does the bug occur?
      options:
        - -- select --
        - Once
        - Sometimes
        - Always
    validations:
      required: true
# Description
  - type: textarea
    id: description
    attributes:
      label: Description
      description: |
        Describe what you were expecting and what actually happened.
    validations:
      required: true
  - type: textarea
    id: stacktrace
    attributes:
      label: Stacktrace & log output
      description: Please paste any relevant log output or stacktrace if you're getting an exception/crash.
      render: shell
# Repro information
  - type: dropdown
    id: repro
    attributes:
      label: Can you reproduce the bug?
      options:
        - -- select --
        - Always
        - Sometimes
        - 'No'
    validations:
      required: true
  - type: textarea
    id: code-snippets
    attributes:
      label: Reproduction Steps
      description: |
        If you can reproduce the bug, please provide detailed steps for how WE can reproduce it.
        Ideally, please provide a self contained test case or link (e.g. github repo) to a sample app that demonstrates the bug.
        If that's not possible, please show code samples that highlight or reproduce the issue.
        If relevant, include your model definitions.
        Should you need to share code confidentially, you can send a link to: realm-help (the @) mongodb.com.
# Version
  - type: input
    id: version
    attributes:
      label: Version
      description: What version(s) of the SDK has the bug been observed in?
    validations:
      required: true
  - type: dropdown
    id: services
    attributes:
      label: What Atlas Services are you using?
      options:
        - -- select --
        - Local Database only
        - Atlas Device Sync
        - 'Atlas App Services: Functions or GraphQL or DataAPI etc'
        - Both Atlas Device Sync and Atlas App Services
    validations:
      required: true
  - type: dropdown
    id: encryption
    attributes:
      label: Are you using encryption?
      options:
        - -- select --
        - 'Yes'
        - 'No'
    validations:
      required: true
# Environment
  - type: input
    id: platform
    attributes:
      label: Platform OS and version(s)
      description: OS and version(s) are you seeing the issue on?
    validations:
      required: true
  - type: textarea
    id: cocoa-build-environment
    attributes:
      label: "Build environment"
      description: |
        Build environment versions
        In the [CONTRIBUTING guidelines](https://github.com/realm/realm-cocoa/blob/master/CONTRIBUTING.md#speeding-things-up-runner), you will find a script, which will help determining some of these versions.
 # ? Is the script still correct and useful? It seems to output more than needed?
      value: |
        Xcode version: ...
        Dependency manager and version: ...
    validations:
      required: false


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: true
contact_links:
  - name: General Questions and Inquiries
    url: https://www.mongodb.com/community/forums/tags/c/realm-sdks/58/swift
    about: Please ask general design/architecture questions in the community forums.
  - name: MongoDB Device Sync Production Issues
    url: https://support.mongodb.com/
    about: Please report urgent production issues to the support portal directly.


================================================
FILE: .github/ISSUE_TEMPLATE/feature.yml
================================================
# NOTE: This is a common file that is overwritten by realm/ci-actions sync service
# and should only be modified in that repository.

name: Feature Request
description: Request a new feature or enhancement
labels: [T-Enhancement]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to suggest improvements to Realm!
  - type: textarea
    id: problem
    attributes:
      label: Problem
      description: A clear and concise description of the problem you are trying to solve.
    validations:
      required: true
  - type: textarea
    id: solution
    attributes:
      label: Solution
      description: Describe the solution you envision, including API and usage example if possible.
    validations:
      required: false
  - type: textarea
    id: alternative-solution
    attributes:
      label: Alternatives
      description: Describe the alternative solutions or features you have considered
    validations:
      required: false
  - type: dropdown
    id: importance
    attributes:
      label: How important is this improvement for you?
      options:
        - -- select --
        - Dealbreaker
        - Would be a major improvement
        - I would like to have it but have a workaround
        - Fairly niche but nice to have anyway
    validations:
      required: true
  - type: dropdown
    id: sync
    attributes:
      label: Feature would mainly be used with
      options:
        - -- select --
        - Local Database only
        - Atlas Device Sync
        - 'Atlas App Services: Auth or Functions etc'
    validations:
      required: true


================================================
FILE: .github/workflows/build-binaries.yml
================================================
name: Build Core binaries
on:
  workflow_dispatch:
    inputs:
      core-version:
        type: string
        required: false
        default: ''
        description: Core version to use to generate the binaries. It should either be a tag or the version returned by (git describe). If not provided, the version in dependencies.list will be used.

jobs:
  build-packages:
    runs-on: macos-26
    name: Build Core ${{ inputs.core-version }} for ${{ matrix.target }}
    outputs:
      core-version: ${{ steps.get-core-version.outputs.version }}
    strategy:
      fail-fast: false
      matrix:
        target: [macosx, iphoneos, iphonesimulator, appletvos, appletvsimulator, watchos, watchsimulator, maccatalyst, xros, xrsimulator]
    env:
      DEVELOPER_DIR: /Applications/Xcode_26.1.1.app/Contents/Developer
    steps:
      - uses: actions/checkout@v4
      - name: Download additional platforms
        run: xcodebuild -downloadAllPlatforms

      - name: Get Core Version
        id: get-core-version
        run: |
          REALM_CORE_VERSION=${{ inputs.core-version }}
          if [[ -z $REALM_CORE_VERSION ]]; then
            REALM_CORE_VERSION=$(sed -n 's/^REALM_CORE_VERSION=\(.*\)$/\1/p' dependencies.list)
          fi
          echo "version=$REALM_CORE_VERSION" >> "$GITHUB_OUTPUT"

      - name: Clone Core
        uses: actions/checkout@v4
        with:
          repository: realm/realm-core
          path: core
          submodules: recursive
          fetch-depth: 0
          fetch-tags: true

      # CMake 3.30 introduced a check which tries to validate that the compiler
      # supports the requested architextures but it doesn't work.
      - name: Patch CMake
        run: sed -i '' 's/CMAKE_HOST_APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin"/CMAKE_HOST_APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_GENERATOR STREQUAL "Xcode"/' /opt/homebrew/Cellar/cmake/*/share/cmake/Modules/CMakeDetermineCompilerABI.cmake 

      - name: Checkout Core@${{ steps.get-core-version.outputs.version }}
        run: git checkout ${{ steps.get-core-version.outputs.version }} --recurse-submodules -f
        working-directory: core

      - name: Build for ${{ matrix.target }}
        run: sh tools/${{ matrix.target != 'macosx' && format('build-apple-device.sh -p {0} -c Release', matrix.target) || 'build-cocoa.sh -bm' }} -v ${{ steps.get-core-version.outputs.version }}
        working-directory: core

      - name: Archive binaries
        uses: actions/upload-artifact@v4
        with:
          name: binaries-${{ matrix.target }}
          path: core/realm-Release-*.tar.gz

  combine-xcframework:
    runs-on: macos-14
    name: Publish xcframework for Core ${{ inputs.core-version }}
    environment:
      name: Prebuilds
      url: ${{ steps.upload-to-s3.outputs.url }}
    needs:
      - build-packages
    steps:
      - uses: actions/checkout@v4

      - name: Clone Core
        uses: actions/checkout@v4
        with:
          repository: realm/realm-core
          path: core
          fetch-depth: 0
          fetch-tags: true

      - name: Checkout Core@${{ needs.build-packages.outputs.core-version }}
        run: git checkout ${{ needs.build-packages.outputs.core-version }}
        working-directory: core

      - name: Download binaries
        uses: actions/download-artifact@v4
        with:
          path: core

      - name: Combine xcframework
        run: |
          mv binaries-*/* ./
          sh tools/build-cocoa.sh -v ${{ needs.build-packages.outputs.core-version }}
          mkdir ../release
          mv realm-monorepo-xcframework-${{ needs.build-packages.outputs.core-version }}.tar.xz ../release/
        working-directory: core

      - name: Archive xcframework
        uses: actions/upload-artifact@v4
        with:
          name: Realm-${{ needs.build-packages.outputs.core-version }}.xcframework.tar.xz
          path: release

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
          aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_KEY }}
          aws-region: us-east-1

      - name: Upload release folder to S3
        id: upload-to-s3
        run: |
          s3_folder="static.realm.io/downloads/core/${{ needs.build-packages.outputs.core-version }}/cocoa"
          aws s3 sync --acl public-read . "s3://$s3_folder"
          echo "url=https://$s3_folder/realm-monorepo-xcframework-${{ needs.build-packages.outputs.core-version }}.tar.xz" >> $GITHUB_OUTPUT
        working-directory: release


================================================
FILE: .github/workflows/build-pr.yml
================================================

# This is a generated file produced by scripts/pr-ci-matrix.rb.
name: Pull request build and test
on:
  pull_request:
    paths-ignore:
      - '**.md'
  workflow_dispatch:

jobs:
  docs:
    runs-on: macos-26
    name: Test docs
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
      - run: sudo xcode-select -switch /Applications/Xcode_26.3.app
      - run: bundle exec sh build.sh verify-docs
  swiftlint:
    runs-on: macos-26
    name: Check swiftlint
    steps:
      - uses: actions/checkout@v4
      - run: sudo xcode-select -switch /Applications/Xcode_26.3.app
      - run: brew install swiftlint
      - run: sh build.sh verify-swiftlint

  osx-26_1:
    runs-on: macos-26
    name: Test osx on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx

  osx-26_2:
    runs-on: macos-26
    name: Test osx on Xcode 26.2
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.2.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx

  osx-26_3:
    runs-on: macos-26
    name: Test osx on Xcode 26.3
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.3.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx

  osx-26_4:
    runs-on: macos-26
    name: Test osx on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx

  osx-encryption-26_4:
    runs-on: macos-26
    name: Test osx-encryption on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-encryption

  swiftpm-26_1:
    runs-on: macos-26
    name: Test swiftpm on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm

  swiftpm-26_4:
    runs-on: macos-26
    name: Test swiftpm on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm

  swiftpm-debug-26_1:
    runs-on: macos-26
    name: Test swiftpm-debug on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-debug

  swiftpm-debug-26_2:
    runs-on: macos-26
    name: Test swiftpm-debug on Xcode 26.2
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.2.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-debug

  swiftpm-debug-26_3:
    runs-on: macos-26
    name: Test swiftpm-debug on Xcode 26.3
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.3.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-debug

  swiftpm-debug-26_4:
    runs-on: macos-26
    name: Test swiftpm-debug on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-debug

  swiftpm-address-26_4:
    runs-on: macos-26
    name: Test swiftpm-address on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-address

  swiftpm-thread-26_4:
    runs-on: macos-26
    name: Test swiftpm-thread on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr swiftpm-thread

  ios-static-26_1:
    runs-on: macos-26
    name: Test ios-static on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-static

  ios-static-26_4:
    runs-on: macos-26
    name: Test ios-static on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-static

  ios-26_1:
    runs-on: macos-26
    name: Test ios on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios

  ios-26_4:
    runs-on: macos-26
    name: Test ios on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios

  watchos-26_1:
    runs-on: macos-26
    name: Test watchos on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr watchos

  watchos-26_4:
    runs-on: macos-26
    name: Test watchos on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr watchos

  tvos-26_1:
    runs-on: macos-26
    name: Test tvos on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr tvos

  tvos-26_4:
    runs-on: macos-26
    name: Test tvos on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr tvos

  visionos-26_1:
    runs-on: macos-26
    name: Test visionos on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr visionos

  visionos-26_4:
    runs-on: macos-26
    name: Test visionos on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr visionos

  osx-swift-26_1:
    runs-on: macos-26
    name: Test osx-swift on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-swift

  osx-swift-26_2:
    runs-on: macos-26
    name: Test osx-swift on Xcode 26.2
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.2.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-swift

  osx-swift-26_3:
    runs-on: macos-26
    name: Test osx-swift on Xcode 26.3
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.3.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-swift

  osx-swift-26_4:
    runs-on: macos-26
    name: Test osx-swift on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-swift

  ios-swift-26_1:
    runs-on: macos-26
    name: Test ios-swift on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-swift

  ios-swift-26_4:
    runs-on: macos-26
    name: Test ios-swift on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-swift

  tvos-swift-26_1:
    runs-on: macos-26
    name: Test tvos-swift on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr tvos-swift

  tvos-swift-26_4:
    runs-on: macos-26
    name: Test tvos-swift on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr tvos-swift

  osx-swift-evolution-26_4:
    runs-on: macos-26
    name: Test osx-swift-evolution on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr osx-swift-evolution

  ios-swift-evolution-26_4:
    runs-on: macos-26
    name: Test ios-swift-evolution on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-swift-evolution

  tvos-swift-evolution-26_4:
    runs-on: macos-26
    name: Test tvos-swift-evolution on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr tvos-swift-evolution

  catalyst-26_1:
    runs-on: macos-26
    name: Test catalyst on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr catalyst

  catalyst-26_4:
    runs-on: macos-26
    name: Test catalyst on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr catalyst

  catalyst-swift-26_1:
    runs-on: macos-26
    name: Test catalyst-swift on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr catalyst-swift

  catalyst-swift-26_4:
    runs-on: macos-26
    name: Test catalyst-swift on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr catalyst-swift

  xcframework-26_4:
    runs-on: macos-26
    name: Test xcframework on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr xcframework

  cocoapods-osx-26_1:
    runs-on: macos-26
    name: Test cocoapods-osx on Xcode 26.1
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.1.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-osx

  cocoapods-osx-26_2:
    runs-on: macos-26
    name: Test cocoapods-osx on Xcode 26.2
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.2.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-osx

  cocoapods-osx-26_3:
    runs-on: macos-26
    name: Test cocoapods-osx on Xcode 26.3
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.3.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-osx

  cocoapods-osx-26_4:
    runs-on: macos-26
    name: Test cocoapods-osx on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-osx

  cocoapods-ios-static-26_4:
    runs-on: macos-26
    name: Test cocoapods-ios-static on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-ios-static

  cocoapods-ios-26_4:
    runs-on: macos-26
    name: Test cocoapods-ios on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-ios

  cocoapods-watchos-26_4:
    runs-on: macos-26
    name: Test cocoapods-watchos on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-watchos

  cocoapods-tvos-26_4:
    runs-on: macos-26
    name: Test cocoapods-tvos on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-tvos

  cocoapods-catalyst-26_4:
    runs-on: macos-26
    name: Test cocoapods-catalyst on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr cocoapods-catalyst

  ios-swiftui-26_4:
    runs-on: macos-26
    name: Test ios-swiftui on Xcode 26.4
    env:
      DEVELOPER_DIR: '/Applications/Xcode_26.4.app/Contents/Developer'
    steps:
      - uses: actions/checkout@v4
      - run: sh -x build.sh ci-pr ios-swiftui


================================================
FILE: .github/workflows/check-changelog.yml
================================================
# NOTE: This is a common file that is overwritten by realm/ci-actions sync service
# and should only be modified in that repository.

name: "Check Changelog"
on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]

jobs:
  changelog:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          submodules: false
      - name: Enforce Changelog
        uses: dangoslen/changelog-enforcer@c0b9fd225180a405c5f21f7a74b99e2eccc3e951
        with:
          skipLabels: no-changelog
          missingUpdateErrorMessage: Please add an entry in CHANGELOG.md or apply the 'no-changelog' label to skip this check.


================================================
FILE: .github/workflows/master-push.yml
================================================
name: Prepare Release
on:
  workflow_dispatch:
  push:
    branches:
      - "master"
      - "release/**"
env:
  XCODE_VERSION: "['26.1.1', '26.2', '26.3', '26.4']"
  PLATFORM: "['ios', 'osx', 'watchos', 'tvos', 'catalyst', 'visionos']"
  RELEASE_VERSION: '26.3'
  DEVELOPER_DIR: /Applications/Xcode_26.3.app/Contents/Developer
jobs:
  prepare:
      runs-on: ubuntu-latest
      name: Prepare outputs
      outputs:
        XCODE_VERSIONS_MATRIX: ${{ env.XCODE_VERSION }}
        PLATFORM_MATRIX: ${{ env.PLATFORM }}
        VERSION: ${{ steps.get-version.outputs.VERSION }}
      steps:
        - name: Compute outputs
          run: |
            echo "XCODE_VERSIONS_MATRIX=${{ env.XCODE_VERSION }}" >> $GITHUB_OUTPUT
            echo "PLATFORM_MATRIX=${{ env.PLATFORM }}" >> $GITHUB_OUTPUT
        - uses: actions/checkout@v4
        - name: Read SDK version
          id: get-version
          run: |
            version="$(sed -n 's/^VERSION=\(.*\)$/\1/p' "${GITHUB_WORKSPACE}/dependencies.list")"
            echo "VERSION=$version" >> $GITHUB_OUTPUT
  build-docs:
      runs-on: macos-26
      name: Package docs
      needs: prepare
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - name: Prepare docs for packaging
          run: bundle exec sh -x build.sh release-package-docs
        - name: Upload docs to artifacts library
          uses: actions/upload-artifact@v4
          with:
            name: realm-docs
            path: docs/realm-docs.zip
  build-examples:
      runs-on: macos-26
      name: Package examples
      needs: prepare
      steps:
        - uses: actions/checkout@v4
        - name: Prepare examples for packaging
          run: sh -x build.sh release-package-examples
        - name: Upload examples to artifacts library
          uses: actions/upload-artifact@v4
          with:
            name: realm-examples
            path: realm-examples.zip
  build-product: # Creates framework for each platform, xcode version, target and configuration
      name: Package framework
      needs: prepare
      strategy:
        max-parallel: 20
        fail-fast: false
        matrix:
          platform: ${{ fromJSON(needs.prepare.outputs.PLATFORM_MATRIX) }}
          xcode-version: ${{ fromJSON(needs.prepare.outputs.XCODE_VERSIONS_MATRIX) }}
          configuration: [swift, static]
          include:
            - xcode-version: 26.1.1
              xcode-version-tag: 26.1
              os: macos-26
            - xcode-version: 26.2
              xcode-version-tag: 26.2
              os: macos-26
            - xcode-version: 26.3
              xcode-version-tag: 26.3
              os: macos-26
            - xcode-version: 26.4
              xcode-version-tag: 26.4
              os: macos-26
          exclude:
            - platform: osx
              configuration: static
            - platform: tvos
              configuration: static
            - platform: watchos
              configuration: static
            - platform: visionos
              configuration: static
            - platform: catalyst
              configuration: static
      runs-on: ${{ matrix.os }}
      env:
        DEVELOPER_DIR: /Applications/Xcode_${{matrix.xcode-version}}.app/Contents/Developer
      steps:
        - uses: actions/checkout@v4
        - name: Install specific platform
          run: sh build.sh install-xcode-platform "${{matrix.platform}}"
        - run: sh build.sh ${{matrix.platform}}-${{matrix.configuration}}
        - run: tar cf build.tar build/*/${{matrix.platform}}
        - name: Upload framework
          uses: actions/upload-artifact@v4
          with:
            name: build-${{matrix.platform}}-${{matrix.xcode-version-tag}}-${{matrix.configuration}}
            path: build.tar
            compression-level: 1
  package-release:
      runs-on: macos-26
      name: Package release file
      needs: [build-product, prepare]
      steps:
        - uses: actions/checkout@v4
        - uses: actions/download-artifact@v4
        - name: Install the Apple certificate and provisioning profile
          env:
            DEVELOPMENT_CERTIFICATE_BASE64: ${{ secrets.DEVELOPMENT_CERTIFICATE_BASE64 }}
            P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
            KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
          run: sh build.sh install-apple-certificates
        - name: Create release
          env:
            SIGNING_IDENTITY: ${{ secrets.SIGNING_IDENTITY }}
          run: sh -x build.sh release-package
        - name: Upload release artifactss
          uses: actions/upload-artifact@v4
          with:
            name: release-package
            path: pkg/*.zip
        - name: Upload release for testing
          uses: actions/upload-artifact@v4
          with:
            name: test-release-package
            path: pkg/realm-swift-${{ needs.prepare.outputs.VERSION }}.zip
  test-package-examples:
      runs-on: macos-26
      name: Test examples
      needs: [package-release, prepare]
      steps:
        - uses: actions/checkout@v4
        - name: Restore release
          uses: actions/download-artifact@v4
          with:
            name: test-release-package
        - name: Test examples
          run: sh -x build.sh release-test-examples
  test-ios-static:
      runs-on: macos-26
      name: Run tests on iOS with configuration Static
      needs: package-release
      steps:
        - uses: actions/checkout@v4
        - name: Test ios static
          run: sh -x build.sh test-ios-static
  test-osx-static:
      runs-on: macos-26
      name: Run tests on macOS
      needs: package-release
      steps:
        - uses: actions/checkout@v4
        - name: Test osx static
          run: |
            export REALM_DISABLE_METADATA_ENCRYPTION=1
            sh -x build.sh test-osx
  test-installation:
      runs-on: macos-26
      name: Run installation test
      needs: [package-release, prepare]
      env:
        REALM_TEST_BRANCH: "${{github.ref_name}}"
      strategy:
        matrix:
          platform: ${{ fromJSON(needs.prepare.outputs.PLATFORM_MATRIX) }}
          installation: [cocoapods, spm, carthage]
          linkage: [dynamic, static]
          exclude:
            - platform: visionos
            - platform: catalyst
              installation: carthage
            - installation: carthage
              linkage: static
          include:
            - platform: ios
              installation: xcframework
              linkage: static
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - name: Download visionOS
          if: matrix.platform == 'visionos'
          run: xcodebuild -downloadPlatform visionOS
        - name: Restore release
          uses: actions/download-artifact@v4
          if: ${{ matrix.installation == 'xcframework' }}
          with:
            name: test-release-package
        - name: Run installation test
          run: |
            find . -name '*.zip' -depth 1 -exec mv {} examples/installation \;
            cd examples/installation
            bundle exec ./build.rb ${{ matrix.platform }} ${{ matrix.installation }} ${{ matrix.linkage }}
  test-installation-xcframework:
      name: Run installation test for xcframework
      needs: [package-release, prepare]
      strategy:
        matrix:
          xcode-version: ${{ fromJSON(needs.prepare.outputs.XCODE_VERSIONS_MATRIX) }}
          include:
            - xcode-version: 26.1
              os: macos-26
            - xcode-version: 26.2
              os: macos-26
            - xcode-version: 26.3
              os: macos-26
            - xcode-version: 26.4
              os: macos-26
      env:
        PLATFORM: 'osx'
        DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode-version }}.app/Contents/Developer
        REALM_TEST_BRANCH: "${{github.ref_name}}"
      runs-on: ${{ matrix.os }}
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - name: Restore release
          uses: actions/download-artifact@v4
          with:
            name: test-release-package
        - name: Run installation test
          run: |
            find . -name '*.zip' -depth 1 -exec mv {} examples/installation \;
            cd examples/installation
            bundle exec ./build.rb osx xcframework dynamic



================================================
FILE: .github/workflows/publish-release.yml
================================================
name: Publish release
on: workflow_dispatch
env:
  XCODE_VERSION: "['26.1', '26.2', '26.3']"
  TEST_XCODE_VERSION: '26.3'
jobs:
  prepare:
    runs-on: ubuntu-latest
    name: Prepare outputs
    outputs:
      XCODE_VERSIONS_MATRIX: ${{ env.XCODE_VERSION }}
      VERSION: ${{ steps.get-version.outputs.VERSION }}
    steps:
      - uses: actions/checkout@v4
      - name: Compute outputs
        run: |
          echo "XCODE_VERSIONS_MATRIX=${{ env.XCODE_VERSION }}" >> $GITHUB_OUTPUT
      - name: Read SDK version
        id: get-version
        run: |
          version="$(sed -n 's/^VERSION=\(.*\)$/\1/p' "${GITHUB_WORKSPACE}/dependencies.list")"
          echo "VERSION=$version" >> $GITHUB_OUTPUT
  tag-release:
      runs-on: ubuntu-latest
      name: Tag Release
      needs: prepare
      steps:
        - uses: actions/checkout@v4
        - uses: rickstaa/action-create-tag@v1
          id: "tag_create"
          with:
            tag: "v${{ needs.prepare.outputs.VERSION }}"
            tag_exists_error: false
            message: ""
  create-release:
      runs-on: macos-26
      name: Create github release
      needs: [tag-release, prepare]
      env:
        GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - name: Create Github release
          run: bundle exec ./build.sh publish-github ${{ github.sha }}
  publish-cocoapods:
      runs-on: macos-26
      name: Publish Cocoapods specs
      needs: [tag-release, prepare]
      env:
        COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - name: Publish
          run: bundle exec ./build.sh publish-cocoapods v${{ needs.prepare.outputs.VERSION }}
  update-checker:
      runs-on: macos-26
      name: Update to latest version update checker file
      needs: tag-release
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.UPDATE_CHECKER_ACCESS_KEY }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.UPDATE_CHECKER_SECRET_KEY }}
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - run: brew install s3cmd
        - run: bundle exec ./build.sh publish-update-checker
  test-installation:
      runs-on: macos-26
      name: Run installation test for ${{ matrix.platform }}, ${{ matrix.installation }} and ${{ matrix.linkage }}
      needs: [create-release, prepare, publish-cocoapods]
      strategy:
        fail-fast: false
        matrix:
          platform: [ios, osx, watchos, tvos, catalyst, visionos]
          installation: [cocoapods, spm, carthage, xcframework]
          linkage: [static, dynamic]
          exclude:
            - installation: carthage
              linkage: static
            - platform: catalyst
              installation: carthage
            - platform: osx
              installation: xcframework
              linkage: static
            - platform: watchos
              installation: xcframework
              linkage: static
            - platform: tvos
              installation: xcframework
              linkage: static
            - platform: catalyst
              installation: xcframework
              linkage: static
            - platform: visionos
              installation: xcframework
              linkage: static
            - platform: catalyst
              installation: carthage
              linkage: static
            - platform: visionos
              installation: carthage
            - platform: visionos
              installation: cocoapods
      steps:
        - uses: actions/checkout@v4
        - uses: ruby/setup-ruby@v1
          with:
            bundler-cache: true
        - uses: maxim-lobanov/setup-xcode@v1
          with:
            xcode-version: ${{ env.TEST_XCODE_VERSION }}
        - name: Run installation test
          uses: nick-fields/retry@v3
          env:
            REALM_TEST_RELEASE: ${{ needs.prepare.outputs.VERSION }}
          with:
            command: |
              cd examples/installation
              bundle exec ./build.rb ${{ matrix.platform }} ${{ matrix.installation }} ${{ matrix.linkage }}
            timeout_minutes: 30
            max_attempts: 10
            retry_wait_seconds: 60
            retry_on: error


================================================
FILE: .gitignore
================================================
*~
.DS_Store

# Merge files
*.orig

# Binaries
*.dylib
*.a
*.o
*.d
*.libdeps
*.zip
*.realm
!examples/ios/swift/Migration/RealmTemplates/*.realm
!examples/ios/objc/Migration/RealmTemplates/*.realm
*.realm.lock

# core
core
core-*
realm-core-*-xcframework

# sh build.sh test
build/


# sh build.sh cocoapods-setup
/include

# sh build.sh docs
/docs/objc_output
/docs/swift_output
/Realm/RLMPlatform.h

# XCode
*.bak
xcuserdata/
project.xcworkspace
*.xccheckout
DerivedData
/.build

# AppCode
.idea/
*.iml
# backup and crash files
*.swp

# xcpretty
build.log

# ruby
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/test/tmp/
/test/version_tmp/
/tmp/

## Carthage
# Cartfiles are ignored because they're generated on demand in the installation examples
Cartfile
Carthage

## Swift Version
SwiftVersion.swift

examples/ios/objc/Draw/Constants.h

## Sync testing
/ci_scripts/setup_baas/.baas

## Swiftpm
.swiftpm
.build
Package.resolved

examples/installation/ios/swift/SwiftPackageManagerExample/SwiftPackageManagerExample.xcodeproj


================================================
FILE: .ruby-version
================================================
3.3.4


================================================
FILE: .swiftlint.yml
================================================
included:
  - Realm/ObjectServerTests
  - RealmSwift
  - Realm/Swift
  - examples/installation/watchos/swift
  - examples/installation/osx/swift
  - examples/installation/ios/swift
  - examples/ios/swift
  - examples/tvos/swift
type_name:
  allowed_symbols:
    - _
identifier_name:
  allowed_symbols:
    - _
  min_length: # not possible to disable this partial rule, so set it to zero
    warning: 0
    error: 0
  excluded:
    - id
    - pk
    - to
disabled_rules:
  - blanket_disable_command
  - block_based_kvo
  # SwiftLint considers 'Realm' and 'Realm.Private' to be duplicate imports
  # because we're using submodules in an unsual way, and normally the parent
  # module re-exports all of its children.
  - duplicate_imports
  - file_length
  - force_cast
  - force_try
  - function_body_length
  - function_parameter_count
  - line_length
  - nesting
  - syntactic_sugar
  - todo
  - trailing_comma
  - type_body_length
  - vertical_whitespace
  # swiftlint complains about superfluous disable commands when the violation
  # occurs in an inactive #if and doesn't support conditionally disabling it
  - cyclomatic_complexity
  # #unavailable was implemented in Swift 5.6 so we can't use it until that's
  # the minimum version we support
  - unavailable_condition


================================================
FILE: CHANGELOG.md
================================================
20.0.4 Release notes (2026-02-22)
=============================================================

* Update build scripts for Xcode 26.
* Drop support for Xcode < 26.
* Prebuilt binaries are no longer code signed as Realm is no longer officially
  distributed by MongoDB.
* Fix compilation with Xcode 26.4.

### Compatibility

* Carthage release for Swift is built with Xcode 26.3.
* CocoaPods: 1.10 or later.
* Xcode: 26.1-26.4

20.0.3 Release notes (2025-06-15)
=============================================================

### Enhancements

* Update build scripts for Xcode 16.4.
* Add support for building with Xcode 26 beta 1.

### Compatibility

* Carthage release for Swift is built with Xcode 16.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.3.0-26 beta 1.

20.0.2 Release notes (2025-04-14)
=============================================================

### Enhancements

* Update build scripts for Xcode 16.3.

### Compatibility

* Carthage release for Swift is built with Xcode 16.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.3.0-16.3.

20.0.1 Release notes (2024-12-27)
=============================================================

### Enhancements

* Update build scripts for Xcode 16.2.

### Fixed

* A query with a number of predicates ORed together may result in a
  crash on some platforms (strict weak ordering check failing on iphone)
  ([#8028](https://github.com/realm/realm-core/issues/8028), since v10.50.0).

### Compatibility

* Realm Studio: 15.0.0 or later.
* Carthage release for Swift is built with Xcode 16.2.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.3.0-16.2.

### Internal

* Upgraded realm-core from v20.0.0 to 20.1.0

20.0.0 Release notes (2024-09-09)
=============================================================

The minimum supported version of Xcode is now 15.3.

### Enhancements

* Build in Swift 6 language mode when using Xcode 16. Libraries build in Swift
  6 mode can be consumed by apps built in Swift 5 mode, so this should not have
  any immediate effects beyond eliminating some warnings and ensuring that all
  Realm APIs can be used in Swift 6 mode. Some notes about using Realm Swift in
  Swift 6:
  - `try await Realm(actor: actor)` has been replaced with `try await
  Realm.open()` to work around isolated parameters not being implemented for
  initializers (https://github.com/swiftlang/swift/issues/71174). The actor is
  now automatically inferred and should not be manually passed in.
  - `@ThreadSafe` is not usable as a property wrapper on local variables and
  function arguments in Swift 6 mode. Sendability checking for property
  wrappers never got implemented due to them being quietly deprecated in favor
  of macros. It can still be used as a property wrapper for class properties
  and as a manual wrapper locally, but note that it does not combine well with
  actor-isolated Realms.
* Some SwiftUI components are now explicitly marked as `@MainActor`. These
  types were implicitly `@MainActor` in Swift 5, but became nonisolated when
  using Xcode 16 in Swift 5 mode due to the removal of implicit isolation when
  using property wrappers on member variables. This resulted in some new
  sendability warnings in Xcode 16 (or errors in Swift 6 mode).
* Add Xcode 16 and 16.1 binaries to the release packages (currently built with
  beta 6 and beta 1 respectively).

### Breaking Changes

* All Atlas App Services and Atlas Device Sync functionality has been removed.
  Users of Atlas Device Sync should pin to v10.
* Queries on AnyRealmValue properties previously considered strings to be
  equivalent to Data containing the UTF-8 encoded string. Strings and Data are
  now considered different types and queries for one of them will not match the
  other.
* Realms are no longer autoreleased when initialized. This means that code
  along the lines of the following will no longer work:

  ```Swift
  try! Realm().beginWrite()
  try! Realm().create(MyObject.self, value: ...)
  try! Realm().commitWrite()
  ```

  This was a pattern which was somewhat natural with the original version of
  the objective-c API, but only worked in debug builds and would fail in
  release builds. We decided to make it consistently work by forcing the Realm
  to be autoreleased rather than let users write code which appeared to work
  but was actually broken. In modern Swift this code is very strange, and
  autoreleasing the Realm made it much more difficult to ensure that the
  file is actually closed at predictable times.

  Realms are now returned retained in both debug and release modes, so this
  will always break rather than appearing to work. Note that there is still a
  weak cache of Realms and `Realm()` will still return a reference to the
  existing Realm if there is one open on the current thread.
* Iterating a Map now produces the tuple `(key: KeyType, value: ValueType)`
  rather than a very similar struct, and `.asKeyValueSequence()` has been
  removed. This aligns `Map` with `Dictionary` and makes many operations
  defined by `Sequence` work on `Map`.
* Passing an empty array for notification keypaths to filter on (e.g.
  `obj.observe(keyPaths: [])`) was treated the same as passing `nil`, i.e. no
  filtering was done. It now instead observes no keypaths. For objects this
  means it will only report the object being deleted, and for collections it
  will only report collection-level changes and not changes to the objects
  inside the collection.
* `Decimal128(string:)` was marked as `throws`, but it never actually threw an
  error and instead returned `NaN` if the string could not be parsed as a
  decimal128. That behavior was kept and it is no longer marked as `throws`.

### Compatibility

* Realm Studio: 15.0.0 or later.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.3.0-16.1 beta.

### Internal

* Upgraded realm-core from v14.12.1 to v20.0.0.

10.53.1 Release notes (2024-09-05)
=============================================================

### Enhancements

* Add the file path to the exception thrown by File::rw_lock() when it fails to
  open the file. ([Core #7999](https://github.com/realm/realm-core/issues/7999))

### Fixed

* Filtering notifications with a LinkingObjects property as the final element
  could sometimes give wrong results
  ([Core #7530](https://github.com/realm/realm-core/issues/7530), since v10.11.0)
* Fix a potential crash during process termination when Logger log level is set
  higher than Info. ([Core #7969](https://github.com/realm/realm-core/issues/7969), since v10.45.0)
* The check for maximum path length was incorrect and lengths between 240 and
  250 would fail to use the hashed fallback ([Core #8007](https://github.com/realm/realm-core/issues/8007), since v10.0.0).
* API misuse resulting in an exception being thrown from within a callback
  would sometimes terminate due to hitting `REALM_UNREACHABLE()` rather than
  the exception being propagated to the caller
  ([Core #7836](https://github.com/realm/realm-core/issues/7836)).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-16 beta 5.

### Internal

* Upgraded realm-core from v14.12.0 to 14.12.1

10.53.0 Release notes (2024-08-20)
=============================================================

### Enhancements

* Code sign our published xcframeworks. By Apple's requirements, we should sign our release
  binaries so Xcode can validate it was signed by the same developer on every new version.
  ([Apple](https://developer.apple.com/support/third-party-SDK-requirements/)).
* Report sync warnings from the server such as sync being disabled server-side to the sync error handler.
  ([#8020](https://github.com/realm/realm-swift/issues/8020)).
* Add support for string comparison queries, which allows building string
  queries with the following operators (`>`, `>=`, `<`, `<=`).
  This is a case sensitive lexicographical comparison.
  ([#8008](https://github.com/realm/realm-swift/issues/8008)).

### Fixed

* `-[RLMAsymmetricObject createObject:withValue:]` was marked as having a
  non-null return value despite always returning `nil` (since v10.29.0).
* Eliminate several clang static analyzer warnings which did not report actual
  bugs.
* The async and Future versions of `User.functions` only worked for functions
  which took exactly one argument, which had to be an array ([#8669](https://github.com/realm/realm-swift/issues/8669), since 10.16.0).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-16 beta 5.

10.52.3 Release notes (2024-08-09)
=============================================================

### Enhancements

* Improve performance of bulk object creation when the objects have embedded
  objects. This is particularly significant for applying sync bootstraps.
  ([Core #7945](https://github.com/realm/realm-core/issues/7945))
* Client reset cycle detection now checks if the previous recovery attempt was
  made by the same version of Realm, and if not attempts recovery again
  ([Core #7944](https://github.com/realm/realm-core/pull/7944)).

### Fixed

* App change notifications were being sent too soon when a new user was logged
  in, resulting in the user's profile being empty if it was read from within
  the change notification (since v10.51.0).
* A conflict resolution bug related to ArrayErase and Clear instructions could
  sometimes cause an "Invalid prior_size" exception when synchronizing
  ([Core #7893](https://github.com/realm/realm-core/issues/7893), since v10.51.0).
* Sync merges which resulted in a changeset's reciprotal transformation being
  empty were handled incorrectly, possibly resulting in data divergence. No
  instances of this actually happening have been reported.
  ([Core #7955](https://github.com/realm/realm-core/pull/7955), since v10.51.0)
* `Realm.writeCopy()` would sometimes incorrectly throw an exception claiming
  that there were unuploaded local changes when the source Realm is a
  synchronized Realm ([Core #7966](https://github.com/realm/realm-core/issues/7966), since v10.7.6).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-16 beta 5.

### Internal

* Upgraded realm-core from v14.11.1 to 14.12.0

10.52.2 Release notes (2024-07-19)
=============================================================

### Enhancements

* Server-side role and permissions changes no longer require a client reset to
  update the local Realm. ([Core #7440](https://github.com/realm/realm-core/pull/7440))

### Fixed

* Deleting an object with a `List<AnyRealmValue` proeprty which linked to an
  object which had been deleted by another sync client would switch to the
  incorrect cascade mode and perform a cascading delete. This meant that if any
  subsequent properties in the object linked to another top-level object and
  that was the *only* link to that object, the target object would also be
  recursively deleted as if it was an embedded object.
  ([Core #7828](https://github.com/realm/realm-core/issues/7828), since v10.51.0).
* Fix the assertion failure `array_backlink.cpp:112: Assertion failed:
  int64_t(value >> 1) == key.value` when removing links to an object (either by
  reassigning the link or by deleting the object). This could happen if the link
  came from a collection inside a `AnyRealmValue`, any `Map`, or a
  `List<AnyRealmValue>`, and there were more than 256 objects of the type which
  contained the link.
 ([Core #7594](https://github.com/realm/realm-core/issues/7594), since v10.8.0)
* Fix the assertion failure `array.cpp:319: Array::move() Assertion failed:
  begin <= end [2, 1]` when deleting objects containing collections nested
  inside a `AnyRealmValue` when this caused bptree leaves to be merged.
  ()[Core #7839](https://github.com/realm/realm-core/issues/7839), since v10.51.0).
* `SyncSession.wait(for .upload)` was inconsistent in how it handled commits
  which do no produce any changesets to upload (such as modifying flexible sync
  subscriptions). Previously if all unuploaded commits had empty changesets and
  the session had never completed a download it would wait for download
  completion, and otherwise it would complete immediate. It now always
  completes immediately. ([Core #7796](https://github.com/realm/realm-core/pull/7796)).
* The sync client could hit an assertion failure if a session is resumed while
  the session is being suspended. ([Core #7860](https://github.com/realm/realm-core/issues/7860), since v10.27.0)
* If a sync session was interrupted by a disconnect or restart while downloading
  a bootstrap (a set of downloads caused by adding or changing a query
  subscription), stale data from the previous bootstrap could be included when
  the session reconnected and completed downloading the bootstrap. This could
  lead to objects stored in the database that do not match the actual state of
  the server and potentially leading to compensating writes.
  ([Core #7827](https://github.com/realm/realm-core/issues/7827), since v10.27.0)
* Fixed unnecessary server roundtrips when there was no download to acknowledge
  ([Core #2129](https://jira.mongodb.org/browse/RCORE-2129), since v10.51.0).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-16 beta 3.

### Internal

* Upgraded realm-core from v14.10.2 to 14.11.0

10.52.1 Release notes (2024-06-28)
=============================================================

### Fixed

* Realm compaction (triggered by setting `shouldCompactOnLaunch`) on an
  encrypted Realm file could produce an invalid file unless the encryption key
  happened to be a valid nul-terminated string.
  ([Core #7842](https://github.com/realm/realm-core/issues/7842), since v10.52.0.
* Assigning a List or Dictionary to an AnyRealmValue property which already
  stored that type of collection would only emit a clear instruction if the
  collection was not already empty. This meant that assigning to the property
  on two different clients would merge the collections if the property
  initially stored an empty collection, but would pick one of the two
  assignments to win if it was initially non-empty. If merging is the desired
  behavior, appending to the List rather than assigning a new List will still
  achieve that ([Core #7809](https://github.com/realm/realm-core/issues/7809), since v10.51.0).


### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-15.4.0.

### Internal
* Upgraded realm-core from v14.10.1 to 14.10.2

10.52.0 Release notes (2024-06-18)
=============================================================

### Enhancements

* Add `@ObservedSectionedResults.remove(atOffsets:section:)` which adds the ability to
  remove a Realm Object when using `onDelete` on `ForEach` in a SwiftUI `List`.
* Add support for Xcode 16 beta 1 and fix some of the new warnings. Note that
  this does not yet include full support for Swift 6 language mode
  ([#8618](https://github.com/realm/realm-swift/pull/8618)).
* `Realm.asyncWrite()` and `Realm.asyncRefresh()` now use the new `#isolation`
  feature to avoid sendability warnings when building with Xcode 16
  ([#8618](https://github.com/realm/realm-swift/pull/8618)).
* Include the originating client reset error message in errors reporting that
  automatic client reset handling failed. ([Core #7761](https://github.com/realm/realm-core/pull/7761))
* Improve the performance of insertion-heavy write transactions, particularly
  when setting a large number of properties on each object created
  ([Core #7734](https://github.com/realm/realm-core/pull/7734)).
* App now trims trailing slashes from the base url rather than producing
  confusing 404 errors. ([Core #7791](https://github.com/realm/realm-core/pull/7791)).

### Fixed

* Deleting a Realm Object used in a `@ObservedSectionedResults` collection in `SwiftUI`
  would cause a crash during the diff on the `View`. ([#8294](https://github.com/realm/realm-swift/issues/8294), since v10.29.0)
* Fix some client resets (such as migrating to flexible sync) potentially
  failing if a new client reset condition (such as rolling back a flexible sync
  migration) occurred before the first one completed.
 ([Core #7542](https://github.com/realm/realm-core/pull/7542), since v10.40.0)
* The encryption code no longer behaves differently depending on the system
  page size, which should entirely eliminate a recurring source of bugs related
  to copying encrypted Realm files between platforms with different page sizes.
  One known outstanding bug was ([RNET-1141](https://github.com/realm/realm-dotnet/issues/3592)),
  where opening files on a system with a larger page size than the writing
  system would attempt to read sections of the file which had never been
  written to ([Core #7698](https://github.com/realm/realm-core/pull/7698)).
* There were several complicated scenarios which could result in stale reads
  from encrypted files in multiprocess scenarios. These were very difficult to
  hit and would typically lead to a crash, either due to an assertion failure
  or DecryptionFailure being thrown ([Core #7698](https://github.com/realm/realm-core/pull/7698), since v10.38.0).
* Encrypted files have some benign data races where we can memcpy a block of
  memory while another thread is writing to a limited range of it. It is
  logically impossible to ever read from that range when this happens, but
  Thread Sanitizer quite reasonably complains about this. We now perform a
  slower operations when running with TSan which avoids this benign race
  ([Core #7698](https://github.com/realm/realm-core/pull/7698)).
* `Realm.asyncOpen()` on a flexible sync Realm would sometimes fail to wait for
  pending subscriptions to complete, resulting in it not actually waiting for
  all data to be downloaded. ([Core #7720](https://github.com/realm/realm-core/issues/7720),
  since flexible sync was introduced).
* `List<AnyRealmValue>.clear()` would hit an assertion failure when used on a
  file originally created by a version of Realm older than v10.49.0.
  ([Core #7771](https://github.com/realm/realm-core/issues/7771), since 10.49.0)

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-16 beta

### Internal

* Upgraded realm-core from v14.9.0 to 14.10.1

10.51.0 Release notes (2024-06-06)
=============================================================

### Enhancements

* Added support for storing nested collections (List and Map not ManagedSet) in a `AnyRealmValue`.
  ```swift
  class MixedObject: Object {
    @Persisted var anyValue: AnyRealmValue
  }

  // You can build a AnyRealmValue from a Swift's Dictionary.
  let dictionary: Dictionary<String, AnyRealmValue> = ["key1": .string("hello"), "key2": .bool(false)]

  // You can build a AnyRealmValue from a Swift's Map
  // and nest a collection within another collection.
  let list: Array<AnyRealmValue> = [.int(12), .double(14.17), AnyRealmValue.fromDictionary(dictionary)]

  let realm = realmWithTestPath()
  try realm.write {
    let obj = MixedObject()
    obj.anyValue = AnyRealmValue.fromArray(list)
    realm.add(obj)
  }
  ```
* Added new operators to Swift's Query API for supporting querying nested collections.
  ```swift
  realm.objects(MixedObject.self).where { $0.anyValue[0][0][1] == .double(76.54) }
  ```

  The `.any` operator allows looking up in all keys or indexes.
  ```swift
  realm.objects(MixedObject.self).where { $0.anyValue["key"].any == .bool(false) }
  ```
* Report the originating error that caused a client reset to occur.
  ([Core #6154](https://github.com/realm/realm-core/issues/6154))

### Fixed

* Accessing `App.currentUser` from within a notification produced by `App.switchToUser()`
  (which includes notifications for a newly logged in user) would deadlock.
  ([Core #7670](https://github.com/realm/realm-core/issues/7670), since v10.50.0).
* Inserting the same link to the same key in a dictionary more than once would incorrectly create
  multiple backlinks to the object. This did not appear to cause any crashes later, but would
  have affecting explicit backlink count queries and possibly notifications.
  ([Core #7676](https://github.com/realm/realm-core/issues/7676), since v10.49.2).
* A non-streaming progress notifier would not immediately call its callback after registration.
  Instead you would have to wait for a download message to be received to get your first
  update - if you were already caught up when you registered the notifier you could end up waiting a
  long time for the server to deliver a download that would call/expire your notifier
  ([Core #7627](https://github.com/realm/realm-core/issues/7627), since v10.50.0).
* After compacting, a file upgrade would be triggered. This could cause loss of data
  if `deleteRealmIfMigrationNeeded` is set to true.
  ([Core #7747](https://github.com/realm/realm-core/issues/7747), since v10.49.0).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-15.4.0.

### Internal

* Upgraded realm-core from v14.6.2 to 14.9.0

10.50.1 Release notes (2024-05-21)
=============================================================

### Enhancements

* Update release packaging for Xcode 15.4.

### Fixed

* `@AutoOpen` and `@AsyncOpen` failed to use the `initialSubscriptions` set in
  the configuration passed to them ([PR #8572](https://github.com/realm/realm-swift/pull/8572), since v10.50.0).
* `App.baseURL` was always `nil` ([PR #8573](https://github.com/realm/realm-swift/pull/8573), since it was introduced in v10.50.0).

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-15.4.0.

10.50.0 Release notes (2024-05-02)
=============================================================

Drop support for Xcode 14, as it can no longer be used to submit app to the app
store. Xcode 15.1 is now the minimum supported version.

### Known Issues
* Accessing `App.currentUser` within an `App.subscribe` callback would lead to a deadlock.

### Enhancements
* Added `SyncConfiguration.initialSubscriptions` which describes the initial
  subscription configuration that was passed when constructing the
  `SyncConfiguration`. ([#8548](https://github.com/realm/realm-swift/issues/8548))
* When connecting to multiple server apps, a unique encryption key is used for
  each of the metadata Realms rather than sharing one between them
  ([Core #7552](https://github.com/realm/realm-core/pull/7552)).
* Improve perfomance of IN queries and chained OR equality queries for
  UUID/ObjectId types. ([.Net #3566](https://github.com/realm/realm-dotnet/issues/3566))
* Added support for updating Atlas Device Sync's base url, in case the need to roam between
  servers (cloud and/or edge server). This API is private and can only be imported using
  `@_spi(Private)`
   ```swift
   @_spi(RealmSwiftExperimental) import RealmSwift

   try await app.updateBaseUrl(to: "https://services.cloud.mongodb.com")
  ```
  ([#8486](https://github.com/realm/realm-swift/issues/8486)).
* Enable building RealmSwift as a dynamic framework when installing via SPM, which
  lets us supply a privacy manifest. When RealmSwift is built as a static
  library you must supply your own manifest, as Xcode does not build static
  libraries in a way compatible with xcprivacy embedding. Due to some bugs in
  Xcode, this may require manual changes to your project:
   - Targets must now depend on only Realm or RealmSwift. If you use both the
     obj-c and swift API, depending on RealmSwift will let you import Realm.
     Trying to directly depend on both will give the error "Swift package
     target 'Realm' is linked as a static library by 'App' and 'Realm', but
     cannot be built dynamically because there is a package product with the
     same name."
   - To actually build RealmSwift as a dynamic framework, change "Do Not Embed"
     to "Embed & Sign" in the "Frameworks, Libraries, and Embedded Content"
     section on the General tab of your target's settings.
  ([#8561](https://github.com/realm/realm-swift/pull/8561)).
* The `transferredBytes` and `transferrableBytes` fields on `Progress` have been deprecated
  in favor of `progressEstimate` which is a value between 0.0 and 1.0 indicating the estimated
  progress toward the upload/download transfer. ([#8476](https://github.com/realm/realm-swift/issues/8476))

### Fixed
* `-[RLMUser allSessions]` did not include sessions which were currently
  waiting for an access token despite including sessions in other non-active
  states. ([Core #7300](https://github.com/realm/realm-core/pull/7300), since v10.0.0).
* `[RLMApp allUsers]` included users which were logged out during the current
  run of the app, but not users which had previously been logged out. It now
  always includes all logged out users. ([Core #7300](https://github.com/realm/realm-core/pull/7300), since v10.0.0).
* Deleting the active user (via `User.delete()`) left the active user
  unset rather than selecting another logged-in user as the active user like
  logging out and removing users does. ([Core #7300](https://github.com/realm/realm-core/pull/7300), since v10.23.0).
* Fixed several issues around copying an encrypted Realm between platforms with
  different page sizes (such as between x86_64 and arm64 Apple platforms):
  - Fixed `Assertion failed: new_size % (1ULL << m_page_shift) == 0` when
    opening an encrypted Realm less than 64Mb that was generated on a platform
    with a different page size than the current platform.
    ([Core #7322](https://github.com/realm/realm-core/issues/7322), since v10.42.0)
  - Fixed a `DecryptionFailed` exception thrown when opening a small (<4k of
    data) Realm generated on a device with a page size of 4k if it was bundled
    and opened on a device with a larger page size (since the beginning).
  - Fixed an issue during a subsequent open of an encrypted Realm for some rare
    allocation patterns when the top ref was within ~50 bytes of the end of a
    page. This could manifest as a DecryptionFailed exception or as an
    assertion: `encrypted_file_mapping.hpp:183: Assertion failed: local_ndx <
    m_page_state.size()`. ([Core #7319](https://github.com/realm/realm-core/issues/7319))
* Schema initialization could hit an assertion failure if the sync client
  applied a downloaded changeset while the Realm file was in the process of
  being opened ([#7041](https://github.com/realm/realm-core/issues/7041), since v10.15.0).
* The reported download progress for flexible sync Realms was incorrect. It is now replaced by a
  progress estimate, which is derived by the server based on historical data and other heuristics.
  ([#8476](https://github.com/realm/realm-swift/issues/8476))

### Deprecations

* `rlm_valueType` is deprecated in favour of `rlm_anyValueType` which now includes collections (List and Dictionary).

<!-- ### Breaking Changes - ONLY INCLUDE FOR NEW MAJOR version -->

### Compatibility
* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.1.0-15.3.0.

### Internal
* Upgraded realm-core from v14.5.2 to 14.6.2

10.49.2 Release notes (2024-04-17)
=============================================================

### Enhancements

* The default base url in `AppConfiguration` has been updated to point to `services.cloud.mongodb.com`. See https://www.mongodb.com/docs/atlas/app-services/domain-migration/ for more information. ([#8512](https://github.com/realm/realm-swift/issues/8512))

### Fixed

* Fixed a crash that would occur when an http error 401 or 403 is returned upon
  opening a watch stream for a MongoDB collection. ([#8519](https://github.com/realm/realm-swift/issues/8519))
* Fix an assertion failure "m_lock_info && m_lock_info->m_file.get_path() == m_filename" that appears to be related to opening a Realm while the file is in the process of being closed on another thread. ([#8507](https://github.com/realm/realm-swift/issues/8507))
* Fixed diverging history due to a bug in the replication code when setting default null values (embedded objects included). ([Core #7536](https://github.com/realm/realm-core/issues/7536))
* Null pointer exception may be triggered when logging out and async commits callbacks not executed. ([Core #7434](https://github.com/realm/realm-core/issues/7434))
* `AppConfiguration.baseUrl` will now return the default value of the url when not set rather than `nil`. ([#8512](https://github.com/realm/realm-swift/issues/8512))
* Added privacy manifest to Core's Swift package ([Swift #8535](https://github.com/realm/realm-swift/issues/8535))
* Fixed crash when integrating removal of already removed dictionary key ([Core #7488](https://github.com/realm/realm-core/issues/7488), since v10.0.0)

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.3.0.

### Internal

* Upgraded realm-core from 14.4.1 to 14.5.2

10.49.1 Release notes (2024-03-22)
=============================================================

### Enhancements

* Improve file compaction performance on arm64 platforms for encrypted files
  between 16kB and 4MB in size. ([PR #7492](https://github.com/realm/realm-core/pull/7492)).

### Fixed

* Opening a Realm with a cached user while offline would fail to retry some
  steps of the connection process and instead report a fatal error.
  ([#7349](https://github.com/realm/realm-core/issues/7349), since v10.46.0)

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.3.0.

### Internal

* Upgraded realm-core from v14.3.0 to 14.4.1

10.49.0 Release notes (2024-03-22)
=============================================================

This version introduces a new Realm file format version (v24). Opening existing
Realm files will automatically upgrade the files, making them unable to be
opened by older versions. This upgrade process should typically be very fast
unless you have large Sets of AnyRealmValue, String, or Data, which have to be rewritten.

A backup will automatically be created next to the Realm before performing the
upgrade. Downgrading to older versions of Realm will attempt to automatically
restore the backup, or it will be deleted after three months.

### Enhancements

* Storage of Decimal128 properties has been optimised similarly to Int
  properties so that the individual values will take up 0 bits (if all nulls),
  32 bits, 64 bits or 128 bits depending on what is needed.
  ([Core #6111](https://github.com/realm/realm-core/pull/6111))

### Fixed

* Sorting on binary Data was done by comparing bytes as signed char rather than
  unsigned char, resulting in very strange orders (since sorting on Data was
  enabled in v6.0.4)
* Sorting on AnyRealmValue did not use a valid total ordering, and certain
  combinations of values could result in values not being sorted or potentially
  even crashes. The resolution for this will result in some previously-valid
  combinations of values of different types being sorted in different orders
  than previously (since the introduction of AnyRealmValue in 10.8.0).
* RLMSet/MutableSet was inconsistent about if it considered a String and a Data
  containing the utf-8 encoded bytes of that String to be equivalent. They are
  now always considered distinct. (since the introduction of sets in v10.8.0).
* Equality queries on a Mixed property with an index could sometimes return
  incorrect results if values of different types happened to have the same hash
  code. ([Core 6407](https://github.com/realm/realm-core/issues/6407) since v10.8.0).
* Creating more than 8388606 links pointing to a single object would crash.
  ([Core #6577](https://github.com/realm/realm-core/issues/6577), since v5.0.0)
* A Realm generated on a non-apple ARM 64 device and copied to another platform
  (and vice-versa) were non-portable due to a sorting order difference. This
  impacts strings or binaries that have their first difference at a non-ascii
  character. These items may not be found in a set, or in an indexed column if
  the strings had a long common prefix (> 200 characters).
  ([Core #6670](https://github.com/realm/realm-core/pull/6670), since 2.0.0 for indexes, and since since the introduction of sets in v10.8.0)
* Fix a spurious crash related to opening a Realm on background thread while
  the process was in the middle of exiting ([Core #7420](https://github.com/realm/realm-core/pull/7420)).

### Breaking Changes

* Drop support for opening pre-v5.0.0 Realm files.

### Compatibility

* Realm Studio: 15.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.3.0. Note that we will be dropping support for Xcode 14 when
  Apple begins requiring Xcode 15 for app store submissions on April 29.

### Internal

* Upgraded realm-core from 13.26.0 to 14.3.0

10.48.1 Release notes (2024-03-15)
=============================================================

### Fixed

* The Realm.framework privacy manifest was missing
  NSPrivacyAccessedAPICategoryDiskSpace, but we check free disk space before
  attempting to automatically back up Realm files (since 10.46.0).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.3.0.

10.48.0 Release notes (2024-03-07)
=============================================================

### Enhancements

* Lifted a limitation that would prevent declaring a model with only computed
  properties. ([#8414](https://github.com/realm/realm-swift/issues/8414))
* Add Xcode 15.3 to the release package ([PR #8502](https://github.com/realm/realm-swift/pull/8502)).

### Fixed

* Fix multiple arguments support via the `REALM_EXTRA_BUILD_ARGUMENTS`
  environment variable in `build.sh`. ([PR #8413](https://github.com/realm/realm-swift/pulls/8413)).
  Thanks, [@hisaac](https://github.com/hisaac)!
* Fix some of the new sendability warnings introduced in Xcode 15.3
  ([PR #8502](https://github.com/realm/realm-swift/pull/8502)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.3.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.3.0.

10.47.0 Release notes (2024-02-12)
=============================================================

### Enhancements

* Added initial support for geospatial queries on points.
  There is no new dedicated type to store Geospatial points, instead points should
  be stored as ([GeoJson-shaped](https://www.mongodb.com/docs/manual/reference/geojson/))
  embedded object, as the example below:
  ```swift
  public class Location: EmbeddedObject {
    @Persisted private var coordinates: List<Double>
    @Persisted private var type: String = "Point"

    public var latitude: Double { return coordinates[1] }
    public var longitude: Double { return coordinates[0] }

    convenience init(_ latitude: Double, _ longitude: Double) {
        self.init()
        // Longitude comes first in the coordinates array of a GeoJson document
        coordinates.append(objectsIn: [longitude, latitude])
    }
  }
  ```
  Geospatial queries (`geoWithin`) can only be executed on such a type of
  objects and will throw otherwise. The queries can be used to filter objects
  whose points lie within a certain area, using the following pre-established
  shapes (`GeoBox`, `GeoPolygon`, `GeoCircle`).
  ```swift
  class Person: Object {
    @Persisted var name: String
    @Persisted var location: Location? // GeoJson embedded object
  }

  let realm = realmWithTestPath()
  try realm.write {
    realm.add(PersonLocation(name: "Maria", location: Location(latitude: 55.6761, longitude: 12.5683)))
  }

  let shape = GeoBox(bottomLeft: (55.6281, 12.0826), topRight: (55.6762, 12.5684))!
  let locations = realm.objects(PersonLocation.self).where { $0.location.geoWithin(shape) })
  ```
  A `filter` or `NSPredicate` can be used as well to perform a Geospatial query.
  ```swift
  let shape = GeoPolygon(outerRing: [(-2, -2), (-2, 2), (2, 2), (2, -2), (-2, -2)], holes: [[(0, 0), (1, 1), (-1, 1), (0, 0)]])!
  let locations = realm.objects(PersonLocation.self).filter("location IN %@", shape)

  let locations = realm.objects(PersonLocation.self).filter(NSPredicate(format: "location IN %@", shape))
  ```

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.2.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.2.0.

### Internal

* Migrated Release pipelines to Github Actions.

10.46.0 Release notes (2024-01-23)
=============================================================

### Enhancements

* Add a privacy manifest to both frameworks.
* Internal C++ symbols are no longer exported from Realm.framework when
  installing via CocoaPods, which reduces the size of the binary by ~5%,
  improves app startup time a little, and eliminates some warnings when linking
  the framework. This was already the case when using Carthage or a prebuilt
  framework ([PR #8464](https://github.com/realm/realm-swift/pull/8464)).
* The `baseURL` field of `AppConfiguration` can now be updated, rather than the
  value being persisted between runs of the application in the metadata
  storage. ([Core #7201](https://github.com/realm/realm-core/issues/7201))
* Allow in-memory synced Realms. This will allow setting an in-memory identifier on
  a flexible sync realm.

### Fixed

* `@Persisted`'s Encodable implementation did not allow the encoder to
  customize the encoding of values, which broke things like JSONEncoder's
  `dateEncodingStrategy` ([#8425](https://github.com/realm/realm-swift/issues/8425)).
* Fix running Package.swift on Linux to support tools like Dependabot which
  need to build the package description but not the package itself
  ([#8458](https://github.com/realm/realm-swift/issues/8458), since v10.40.1).

### Breaking Changes

* The `schemaVersion` field of `Realm.Configuration` must now always be zero
  for synchronized Realms. Schema versions are currently not applicable to
  synchronized Realms and the field was previously not read.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.2.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.2.0.

### Internal

* Upgraded realm-core from 13.25.1 to 13.26.0

10.45.3 Release notes (2024-01-08)
=============================================================

### Enhancements

* Update release packaging for Xcode 15.2. Prebuilt binaries for 14.1 and 15.0
  have now been dropped from the release package.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.2.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.2-15.2.0.

10.45.2 Release notes (2023-12-22)
=============================================================

### Enhancements

* Greatly improve the performance of creating objects with a very large number
  of pre-existing incoming links. This is primarily relevant to initial sync
  bootstrapping when linking objects happen to be synchronized before the
  target objects they link to ([Core #7217](https://github.com/realm/realm-core/issues/7217), since v10.0.0).

### Fixed

* Registering new notifications inside write transactions before actually
  making any changes is now actually allowed. This was supposed to be allowed
  in 10.39.1, but it did not actually work due to some redundant validation.
* `SyncSession.ProgressDirection` and `SyncSession.ProgressMode` were missing
  `Sendable` annotations ([PR #8435](https://github.com/realm/realm-swift/pull/8435)).
* `Realm.Error.subscriptionFailed` was reported with the incorrect error
  domain, making it impossible to catch (since v10.42.2, [PR #8435](https://github.com/realm/realm-swift/pull/8435)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.1.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.1.0.

### Internal

* Upgraded realm-core from 13.25.0 to 13.25.1

10.45.1 Release notes (2023-12-18)
=============================================================

### Fixed

* Exceptions thrown while applying the initial download for a sync subscription
  change terminated the program rather than being reported to the sync error
  handler ([Core #7196](https://github.com/realm/realm-core/issues/7196) and
  [Core #7197](https://github.com/realm/realm-core/pull/7197)).
* Calling `SyncSession.reconnect()` while a reconnect after a non-fatal error
  was pending would result in an assertion failure mentioning
  "!m_try_again_activation_timer" if another non-fatal error was received
  ([Core #6961](https://github.com/realm/realm-core/issues/6961)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.1.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.1.0.

### Internal

* Upgraded realm-core from 13.24.1 to 13.25.0

10.45.0 Release notes (2023-12-15)
=============================================================

### Enhancements

* Update release packaging for Xcode 15.1.
* Expose waiting for upload/download on SyncSession, which will suspend
  the current method (or call an asynchronous block) until an upload or download
  completes for a given sync session, e.g.,:
  ```swift
  try realm.write {
    realm.add(Person())
  }
  try await realm.syncSession?.wait(for: .upload)
  ```
  Note that this should not generally be used– sync is eventually consistent
  and should be used as such. However, there are special cases (notably in
  testing) where this may be used.
* Sync subscription change notifications are now cancelled if the sync session
  becomes inactive as is done for upload and download progress handlers. If a
  fatal sync error occurs it will be reported to the completion handler, and
  if the user is logged out an "operation cancelled" error will be reported.
  Non-fatal errors are unchanged (i.e. the sync client internally retries
  without reporting errors). Previously fatal errors would result in the
  completion handler never being called.
  ([Core #7073](https://github.com/realm/realm-core/pull/7073))
* Automatic client reset recovery now preserves the original division of
  changesets, rather than combining all unsynchronized changes into a single
  changeset. This will typically improve server-side performance when there are
  a large number of recovered changes ([Core #7161](https://github.com/realm/realm-core/pull/7161)).
* Automatic client reset recovery now does a better job of recovering changes
  when changesets were downloaded from the server after the unuploaded local
  changes were committed. If the local Realm happened to be fully up to date with
  the server prior to the client reset, automatic recovery should now always
  produce exactly the same state as if no client reset was involved
  ([Core #7161](https://github.com/realm/realm-core/pull/7161)).

### Fixed

* Flexible sync subscriptions would sometimes not be sent to the server if they
  were created while the client was downloading the bootstrap state for a
  previous subscription change and the bootstrap did not complete successfully.
  ([Core #7077](https://github.com/realm/realm-core/issues/7077), since v10.21.1)
* Flexible sync subscriptions would sometimes not be sent to the server if an
  UPLOAD message was sent immediately after the subscription was created.
  ([Core #7076](https://github.com/realm/realm-core/issues/7076), since v10.43.1)
* Creating or removing flexible sync subscriptions while a client reset with
  automatic recovery enabled was being processed in the background would
  occasionally crash with a `KeyNotFound` exception.
  ([Core #7090](https://github.com/realm/realm-core/issues/7090), since v10.28.2)
* Automatic client reset recovery would sometimes fail with the error "Invalid
  schema change (UPLOAD): cannot process AddColumn instruction for non-existent
  table" when recovering schema changes while made offline. This would only
  occur if the server is using the recently introduced option to allow breaking
  schema changes in developer mode. ([Core #7042](https://github.com/realm/realm-core/pull/7042)).
* `MutableSet<String>.formIntersection()` would sometimes cause a
  use-after-free if asked to intersect a set with itself (since v10.0.0).
* Errors encountered while reapplying local changes for client reset recovery
  on partition-based sync Realms would result in the client reset attempt not
  being recorded, possibly resulting in an endless loop of attempting and
  failing to automatically recover the client reset. Flexible sync and errors
  from the server after completing the local recovery were handled correctly
  ([Core #7149](https://github.com/realm/realm-core/pull/7149), since v10.0.0).
* During a client reset with recovery when recovering a move or set operation
  on a `List<Object>` or `List<AnyRealmValue>` that operated on indices that
  were not also added in the recovery, links to an object which had been
  deleted by another client while offline would be recreated by the recovering
  client, but the objects of these links would only have the primary key
  populated and all other fields would be default values. Now, instead of
  creating these zombie objects, the lists being recovered skip such deleted
  links. ([Core #7112](https://github.com/realm/realm-core/issues/7112),
  since client reset recovery was implemented in v10.25.0).
* During a client reset recovery a Set of links could be missing items, or an
  exception could be thrown that prevents recovery (e.g. "Requested index 1
  calling get() on set 'source.collection' when max is 0")
  ([Core #7112](https://github.com/realm/realm-core/issues/7112),
  since client reset recovery was implemented in v10.25.0).
* Calling `sort()` or `distinct()` on a `MutableSet<Object>` that had
  unresolved links in it (i.e. objects which had been deleted by a different
  sync client) would produce a Results with duplicate entries.
* Automatic client reset recovery would duplicate insertions in a list when
  recovering a write which made an unrecoverable change to a list (i.e.
  modifying or deleting a pre-existing entry), followed by a subscription
  change, followed by a write which added an entry to the list
  ([Core #7155](https://github.com/realm/realm-core/pull/7155), since the
  introduction of automatic client reset recovery for flexible sync).
* Fixed several causes of "decryption failed" exceptions that could happen when
  opening multiple encrypted Realm files in the same process while using Realms
  stored on an exFAT file system.
  ([Core #7156](https://github.com/realm/realm-core/issues/7156), since v1.0.0)
* Fixed deadlock which occurred when accessing the current user from the `App`
  from within a callback from the `User` listener
  ([Core #7183](https://github.com/realm/realm-core/issues/7183), since v10.42.0)
* Having a class name of length 57 would make client reset crash as a limit of
  56 was wrongly enforced (57 is the correct limit)
  ([Core #7176](https://github.com/realm/realm-core/issues/7176), since v10.0.0)
* Automatic client reset recovery on flexible sync Realms would apply recovered
  changes in multiple write transactions, releasing the write lock in between.
  This had several observable negative effects:
  - Other threads reading from the Realm while a client reset was in progress
    could observe invalid mid-reset state.
  - Other threads could potentially write in the middle of a client reset,
    resulting in history diverging from the server.
  - The change notifications produced by client resets were not minimal and
    would report that some things changed which actually didn't.
  - All pending subscriptions were marked as Superseded and then recreating,
    resulting in anything waiting for subscriptions to complete firing early.
  ([Core #7161](https://github.com/realm/realm-core/pull/7161), since v10.29.0).
* If the very first open of a flexible sync Realm triggered a client reset, the
  configuration had an initial subscriptions callback, both before and after
  reset callbacks, and the initial subscription callback began a read transaction
  without ending it (which is normally going to be the case), opening the frozen
  Realm for the after reset callback would trigger a BadVersion exception
  ([Core #7161](https://github.com/realm/realm-core/pull/7161), since v10.29.0).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.1.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.1.0.

### Internal

* Migrated our current CI Pipelines to Xcode Cloud.
* Upgraded realm-core from 13.23.1 to 13.24.1

10.44.0 Release notes (2023-10-29)
=============================================================

### Enhancements

* Expose `SyncSession.reconnect()`, which requests an immediate reconnection if
  the session is currently disconnected rather than waiting for the normal
  reconnect delay.
* Update release packaging for Xcode 15.1 beta. visionOS slices are now only
  included for 15.1 rather than splicing them into the non-beta 15.0 release.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.0.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.0.0.

10.43.1 Release notes (2023-10-13)
=============================================================

### Enhancements

* Empty commits no longer trigger an extra invocation of the sync progress
  handler reporting the exact same information as the previous invocation
  ([Core #7031](https://github.com/realm/realm-core/pull/7031)).

### Fixed

* Updating subscriptions did not trigger Realm autorefreshes, sometimes
  resulting in Realm.asyncRefresh() hanging until another write was performed by
  something else ([Core #7031](https://github.com/realm/realm-core/pull/7031)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.0.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.0.0.

### Internal

* Upgraded realm-core from 13.22.0 to 13.23.1

10.43.0 Release notes (2023-09-29)
=============================================================

### Enhancements

* Added `Results.subscribe` API for flexible sync.
  Now you can subscribe and unsubscribe to a flexible sync subscription through an object `Result`.
  ```swift
  // Named subscription query
  let results = try await realm.objects(Dog.self).where { $0.age > 18 }.subscribe(name: "adults")
  results.unsubscribe()

  // Unnamed subscription query
  let results = try await realm.objects(Dog.self).subscribe()
  results.unsubscribe()
  ````

  After committing the subscription to the realm's local subscription set, the method
  will wait for downloads according to the `WaitForSyncMode`.
  ```swift
  let results = try await realm.objects(Dog.self).where { $0.age > 1 }.subscribe(waitForSync: .always)
  ```
  Where `.always` will always download the latest data for the subscription, `.onCreation` will do
  it only the first time the subscription is created, and `.never` will never wait for the
  data to be downloaded.

  This API is currently in `Preview` and may be subject to changes in the future.
* Added a new API which allows to remove all the unnamed subscriptions from the subscription set.
  ```swift
  realm.subscriptions.removeAll(unnamedOnly: true)
  ```

### Fixed

* Build the prebuilt libraries with the classic linker to work around the new
  linker being broken on iOS <15. When using CocoaPods or SPM, you will need to
  manually add `-Wl,-ld_classic` to `OTHER_LDFLAGS` for your application until
  Apple fixes the bug.
* Remove the visionOS slice from the Carthage build as it makes Carthage reject
  the xcframework ([#8370](https://github.com/realm/realm-swift/issues/8370)).
* Permission errors when creating asymmetric objects were not handled
  correctly, leading to a crash ([Core #6978](https://github.com/realm/realm-core/issues/6978), since 10.35.0)

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.0.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.0.0.

### Internal

* Upgraded realm-core from 13.21.0 to 13.22.0

10.42.4 Release notes (2023-09-25)
=============================================================

### Enhancements

* Asymmetric objects are now allowed to link to non-embedded, non-asymmetric
  objects. ([Core #6981](https://github.com/realm/realm-core/pull/6981))

### Fixed

* The Swift package failed to link some required system libraries when building
  for Catalyst, potentially resulting in linker errors if the application did
  not pull them in (since v10.40.1)
* Logging into a single user using multiple auth providers created a separate
  SyncUser per auth provider. This mostly worked, but had some quirks:
  - Sync sessions would not necessarily be associated with the specific
    SyncUser used to create them. As a result, querying a user for its sessions
    could give incorrect results, and logging one user out could close the wrong
    sessions.
  - Removing one of the SyncUsers would delete all local Realm files for all
    SyncUsers for that user.
  - Deleting the server-side user via one of the SyncUsers left the other
    SyncUsers in an invalid state.
  - A SyncUser which was originally created via anonymous login and then linked
    to an identity would still be treated as an anonymous users and removed
    entirely on logout.
    ([Core #6837](https://github.com/realm/realm-core/pull/6837), since v10.0.0)
* Reading existing logged-in users on app startup from the sync metadata Realm
  performed three no-op writes per user on the metadata Realm
  ([Core #6837](https://github.com/realm/realm-core/pull/6837), since v10.0.0).
* If a user was logged out while an access token refresh was in progress, the
  refresh completing would mark the user as logged in again and the user would
  be in an inconsistent state ([Core #6837](https://github.com/realm/realm-core/pull/6837), since v10.0.0).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.0.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.0.0.

### Internal

* Upgraded realm-core from 13.20.1 to 13.21.0
* The schema version of the metadata Realm used to cache logged in users has
  been bumped. Upgrading is handled automatically, but downgrading from this
  version to older versions will result in cached logins being discarded.

10.42.3 Release notes (2023-09-18)
=============================================================

### Enhancements

* Update packaging for the Xcode 15.0 release. Carthage release and obj-c
  binaries are now built with Xcode 15.

### Fixed

* The prebuilt Realm.xcframework for SPM was packaged incorrectly and did not
  work ([#8361](https://github.com/realm/realm-swift/issues/8361), since v10.42.1).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 15.0.0.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15.0.0.

10.42.2 Release notes (2023-09-13)
=============================================================

### Enhancements

* Add support for logging messages sent by the server.
  ([Core #6476](https://github.com/realm/realm-core/pull/6476))
* Unknown protocol errors received from the baas server will no longer cause
  the application to crash if a valid error action is also received. Unknown
  error actions will be treated as an ApplicationBug error action and will
  cause sync to fail with an error via the sync error handler.
  ([Core #6885](https://github.com/realm/realm-core/pull/6885))
* Some sync error messages now contain more information about what went wrong.

### Fixed

* The `MultipleSyncAgents` exception from opening a synchronized Realm in
  multiple processes at once no longer leaves the sync client in an invalid
  state. ([Core #6868](https://github.com/realm/realm-core/pull/6868), since v10.36.0)
* Testing the size of a collection of links against zero would sometimes fail
  (sometimes = "difficult to explain"). In particular:
  ([Core #6850](https://github.com/realm/realm-core/issues/6850), since v10.41.0)
* When async writes triggered a file compaction some internal state could be
  corrupted, leading to later crashes in the slab allocator. This typically
  resulted in the "ref + size <= next->first" assertion failure, but other
  failures were possible. Many issues reported; see [Core #6340](https://github.com/realm/realm-core/issues/6340).
  (since 10.35.0)
* `Realm.Configuration.maximumNumberOfActiveVersions` now handles intermediate
  versions which have been cleaned up correctly and checks the number of live
  versions rather than the number of versions between the oldest live version
  and current version (since 10.35.0).
* If the client disconnected between uploading a change to flexible sync
  subscriptions and receiving the new object data from the server resulting
  from that subscription change, the next connection to the server would
  sometimes result in a client reset
  ([Core #6966](https://github.com/realm/realm-core/issues/6966), since v10.21.1).

### Deprecations

* `RLMApp` has `localAppName` and `localAppVersion` fields which never ended up
  being used for anything and are now deprecated.
* `RLMSyncAuthError` has not been used since v10.0.0 and is now deprecated.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 7.

### Internal

* Upgraded realm-core from 13.17.1 to 13.20.1

10.42.1 Release notes (2023-08-28)
=============================================================

### Fixed

* The names of the prebuilt zips for SPM have changed to avoid having Carthage
  download them instead of the intended Carthage zip
  ([#8326](https://github.com/realm/realm-swift/issues/8326), since v10.42.0).
* The prebuild Realm.xcframework for SwiftPM now has all platforms other than
  visionOS built with Xcode 14 to comply with app store rules
  ([#8339](https://github.com/realm/realm-swift/issues/8339), since 10.42.0).
* Fix visionOS compilation with Xcode beta 7.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 7.

10.42.0 Release notes (2023-07-30)
=============================================================

### Enhancements

* Add support for building for visionOS and add Xcode 15 binaries to the
  release package. visionOS currently requires installing Realm via either
  Swift Package Manager or by using a XCFramework as CocoaPods and Carthage do
  not yet support it.
* Zips compatible with SPM's `.binaryTarget()` are now published as part of the
  releases on Github.
* Prebuilt XCFrameworks are now built with LTO enabled. This has insignificant
  performance benefits, but cuts the size of the library by ~15%.

### Fixed

* Fix nested properties observation on a `Projections` not notifying when there is a property change.
  ([#8276](https://github.com/realm/realm-swift/issues/8276), since v10.34.0).
* Fix undefined symbol error for `UIKit` when linking Realm to a framework using SPM.
  ([#8308](https://github.com/realm/realm-swift/issues/8308), since v10.41.0)
* If the app crashed at exactly the wrong time while opening a freshly
  compacted Realm the file could be left in an invalid state
  ([Core #6807](https://github.com/realm/realm-core/pull/6807), since v10.33.0).
* Sync progress for DOWNLOAD messages was sometimes stored incorrectly,
  resulting in an extra round trip to the server.
  ([Core #6827](https://github.com/realm/realm-core/issues/6827), since v10.31.0)

### Breaking Changes

* Legacy non-xcframework Carthage installations are no longer supported. Please
  ensure you are using `--use-xcframeworks` if installing via Carthage.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 5.

### Internal

* Upgraded realm-core from 13.17.0 to 13.17.1
* Release packages were being uploaded to several static.realm.io URLs which
  are no longer linked to anywhere. These are no longer being updated, and
  release packages are now only being uploaded to Github.

10.41.1 Release notes (2023-07-17)
=============================================================

### Enhancements

* Filesystem errors now include more information in the error message.
* Sync connection and session reconnect timing/backoff logic has been reworked
  and unified into a single implementation. Previously some categories of errors
  would cause an hour-long wait before attempting to reconnect, while others
  would use an exponential backoff strategy. All errors now result in the sync
  client waiting for 1 second before retrying, doubling the wait after each
  subsequent failure up to a maximum of five minutes. If the cause of the error
  changes, the backoff will be reset. If the sync client voluntarily disconnects,
  no backoff will be used. ([Core #6526]((https://github.com/realm/realm-core/pull/6526)))

### Fixed

* Removed warnings for deprecated APIs internal use.
  ([#8251](https://github.com/realm/realm-swift/issues/8251), since v10.39.0)
* Fix an error during async open and client reset if properties have been added
  to the schema. This fix also applies to partition-based to flexible sync
  migration if async open is used. ([Core #6707](https://github.com/realm/realm-core/issues/6707), since v10.28.2)

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 4.

### Internal

* Upgraded realm-core from 13.15.1 to 13.17.0
* The location where prebuilt core binaries are published has changed slightly.
  If you are using `REALM_BASE_URL` to mirror the binaries, you may need to
  adjust your mirroring logic.

10.41.0 Release notes (2023-06-26)
=============================================================

### Enhancements

* Add support for multiplexing sync connections. When enabled (the default), a single
  connection is used per sync user rather than one per synchronized Realm. This
  reduces resource consumption when multiple Realms are opened and will
  typically improve performance ([PR #8282](https://github.com/realm/realm-swift/pull/8282)).
* Sync timeout options can now be set on `RLMAppConfiguration` along with the
  other app-wide configuration settings ([PR #8282](https://github.com/realm/realm-swift/pull/8282)).

### Fixed

* Import as `RLMRealm_Private.h` as a module would cause issues when using Realm as a subdependency.
  ([#8164](https://github.com/realm/realm-swift/issues/8164), since 10.37.0)
* Disable setting a custom logger by default on the sync client when the sync manager is created.
  This was overriding the default logger set using `RLMLogger.defaultLogger`. (since v10.39.0).

### Breaking Changes

* The `RLMSyncTimeouts.appConfiguration` property has been removed. This was an
  unimplemented read-only property which did not make any sense on the
  containing type ([PR #8282](https://github.com/realm/realm-swift/pull/8282)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 2.

### Internal

* Upgraded realm-core from 13.15.0 to 13.15.1

10.40.2 Release notes (2023-06-09)
=============================================================

### Enhancements

* `Actor.preconditionIsolated()` is now used for runtime actor checking when
  available (i.e. building with Xcode 15 and running on iOS 17) rather than the
  less reliable workaround.

### Fixed

* If downloading the fresh Realm file failed during a client reset on a
  flexible sync Realm, the sync client would crash the next time the Realm was
  opened. ([Core #6494](https://github.com/realm/realm-core/issues/6494), since v10.28.2)
* If the order of properties in the local class definitions did not match the
  order in the server-side schema, the before-reset Realm argument passed to a
  client reset handler would have an invalid schema and likely crash if any
  data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 1.

### Internal

* Upgraded realm-core from 13.13.0 to 13.15.0.
* The prebuilt library used for CocoaPods installations is now built with Xcode
  14. This should not have any observable effects other than the download being
  much smaller due to no longer including bitcode.

10.40.1 Release notes (2023-06-06)
=============================================================

### Enhancements

* Fix compilation with Xcode 15. Note that iOS 12 is the minimum supported
  deployment target when using Xcode 15.
* Switch to building the Carthage release with Xcode 14.3.1.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-15 beta 1.

### Internal

* Overhauled SDK metrics collection to better drive future development efforts.

10.40.0 Release notes (2023-05-26)
=============================================================

Drop support for Xcode 13 and add Xcode 14.3.1. Xcode 14.1 is now the minimum
supported version.

### Enhancements

* Adjust the error message for private `Object` subclasses and subclasses
  nested inside other types to explain how to make them work rather than state
  that it's impossible. ([#5662](https://github.com/realm/realm-cocoa/issues/5662)).
* Improve performance of SectionedResults. With a single section it is now ~10%
  faster, and the runtime of sectioning no longer scales significantly with
  section count, giving >100% speedups when there are large numbers of sections
  ([Core #6606](https://github.com/realm/realm-core/pull/6606)).
* Very slightly improve performance of runtime thread checking on the main
  thread. ([Core #6606](https://github.com/realm/realm-core/pull/6606))

### Fixed

* Allow support for implicit boolean queries on Swift's Type Safe Queries API
  ([#8212](https://github.com/realm/realm-swift/issues/8212)).
* Fixed a fatal error (reported to the sync error handler) during client reset
  or automatic partition-based to flexible sync migration if the reset has been
  triggered during an async open and the schema being applied has added new
  classes. Due to this bug automatic flexibly sync migration has been disabled
  for older releases and this is now the minimum version required.
  ([#6601](https://github.com/realm/realm-core/issues/6601), since automatic
  client resets were introduced in v10.25.0)
* Dictionaries sometimes failed to map unresolved links to nil. If the target
  of a link in a dictionary was deleted by another sync client, reading that
  field from the dictionary would sometimes give an invalid object rather than
  nil. In addition, queries on dictionaries would sometimes have incorrect
  results. ([Core #6644](https://github.com/realm/realm-core/pull/6644), since v10.8.0)
* Older versions of Realm would sometimes fail to properly mark objects as
  being the target of an incoming link from another object. When this happened,
  deleting the target object would hit an assertion failure due to the
  inconsistent state. We now reconstruct a valid state rather than crashing.
  ([Core #6585](https://github.com/realm/realm-core/issues/6585), since v5.0.0)
* Fix several UBSan failures which did not appear to result in functional bugs
  ([Core #6649](https://github.com/realm/realm-core/pull/6649)).
* Using both synchronous and asynchronous transactions on the same thread or
  scheduler could hit the assertion failure "!realm.is_in_transaction()" if one
  of the callbacks for an asynchronous transaction happened to be scheduled
  during a synchronous transaction
  ([Core #6659](https://github.com/realm/realm-core/issues/6659), since v10.26.0)
* The stored deployment location for Apps was not being updated correctly after
  receiving a redirect response from the server, resulting in every connection
  attempting to connect to the old URL and getting redirected rather than only
  the first connection after the deployment location changed.
  ([Core #6630](https://github.com/realm/realm-core/issues/6630), since v10.38.2)

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 14.1-14.3.1.

### Internal

* Upgraded realm-core from 13.10.1 to 13.13.0.

10.39.1 Release notes (2023-05-05)
=============================================================

### Enhancements

* New notifiers can now be registered in write transactions until changes have
  actually been made in the write transaction. This makes it so that new
  notifications can be registered inside change notifications triggered by
  beginning a write transaction (unless a previous callback performed writes).
  ([#4818](https://github.com/realm/realm-swift/issues/4818)).
* Reduce the memory footprint of an automatic (discard or recover) client reset
  when there are large incoming changes from the server.
  ([Core #6567](https://github.com/realm/realm-core/issues/6567)).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

### Internal

* Upgraded realm-core from 13.10.0 to 13.10.1.

10.39.0 Release notes (2023-05-03)
=============================================================

### Enhancements

* Add support for actor-isolated Realms, opened with `try await Realm(actor: actor)`.

  Rather than being confined to the current thread or a dispatch queue,
  actor-isolated Realms are isolated to an actor. This means that they can be
  used from any thread as long as it's within a function isolated to that
  actor, and they remain valid over suspension points where a task may hop
  between threads. Actor-isolated Realms can be used with either global or
  local actors:

  ```swift
  @MainActor function mainThreadFunction() async throws {
      // These are identical: the async init continues to produce a
      // MainActor-confined Realm if no actor is supplied
      let realm1 = try await Realm()
      let realm2 = try await Realm(MainActor.shared)
  }

  // A simple example of a custom global actor
  @globalActor actor BackgroundActor: GlobalActor {
      static var shared = BackgroundActor()
  }

  @BackgroundActor backgroundThreadFunction() async throws {
      // Explicitly specifying the actor is required for everything but MainActor
      let realm = try await Realm(actor: BackgroundActor.shared)
      try await realm.write {
          _ = realm.create(MyObject.self)
      }
      // Thread-confined Realms would sometimes throw an exception here, as we
      // may end up on a different thread after an `await`
      print("\(realm.objects(MyObject.self).count)")
  }

  actor MyActor {
      // An implicitly-unwrapped optional is used here to let us pass `self` to
      // `Realm(actor:)` within `init`
      var realm: Realm!
      init() async throws {
          realm = try await Realm(actor: self)
      }

      var count: Int {
          realm.objects(MyObject.self).count
      }

      func create() async throws {
          try await realm.asyncWrite {
              realm.create(MyObject.self)
          }
      }
  }

  // This function isn't isolated to the actor, so each operation has to be async
  func createObjects() async throws {
      let actor = try await MyActor()
      for _ in 0..<5 {
        await actor.create()
      }
      print("\(await actor.count)")
  }

  // In an isolated function, an actor-isolated Realm can be used synchronously
  func createObjects(in actor: isolated MyActor) async throws {
      await actor.realm.write {
          actor.realm.create(MyObject.self)
      }
      print("\(actor.realm.objects(MyObject.self).count)")
  }
  ```

  Actor-isolated Realms come with a more convenient syntax for asynchronous
  writes. `try await realm.write { ... }` will suspend the current task,
  acquire the write lock without blocking the current thread, and then invoke
  the block. The actual data is then written to disk on a background thread,
  and the task is resumed once that completes. As this does not block the
  calling thread while waiting to write and does not perform i/o on the calling
  thread, this will often be safe to use from `@MainActor` functions without
  blocking the UI. Sufficiently large writes may still benefit from being done
  on a background thread.

  Asynchronous writes are only supported for actor-isolated Realms or in
  `@MainActor` functions.

  Actor-isolated Realms require Swift 5.8 (Xcode 14.3). Enabling both strict
  concurrency checking (`SWIFT_STRICT_CONCURRENCY=complete` in Xcode) and
  runtime actor data race detection (`OTHER_SWIFT_FLAGS=-Xfrontend
  -enable-actor-data-race-checks`) is strongly recommended when using
  actor-isolated Realms.
* Add support for automatic partition-based to flexible sync migration.
  Connecting to a server-side app configured to use flexible sync with a
  client-side partition-based sync configuration is now supported, and will
  automatically create the appropriate flexible sync subscriptions to subscribe
  to the requested partition. This allows changing the configuration on the
  server from partition-based to flexible without breaking existing clients.
  ([Core #6554](https://github.com/realm/realm-core/issues/6554))
* Now you can use an array `[["_id": 1], ["breed": 0]]` as sorting option for a
  MongoCollection. This new API fixes the issue where the resulting documents
  when using more than one sort parameter were not consistent between calls.
  ([#7188](https://github.com/realm/realm-swift/issues/7188), since v10.0.0).
* Add support for adding a user created default logger, which allows implementing your own logging logic
  and the log threshold level.
  You can define your own logger creating an instance of `Logger` and define the log function which will be
  invoked whenever there is a log message.

  ```swift
  let logger = Logger(level: .all) { level, message in
     print("Realm Log - \(level): \(message)")
  }
  ```

  Set this custom logger as Realm default logger using `Logger.shared`.
   ```swift
  Logger.shared = logger
   ```
* It is now possible to change the default log threshold level at any point of the application's lifetime.
  ```swift
  Logger.shared.logLevel = .debug
  ```
  This will override the log level set anytime before by a user created logger.
* We have set `.info` as the default log threshold level for Realm. You will now see some
  log message in your console. To disable use `Logger.shared.level = .off`.

### Fixed

* Several schema initialization functions had incorrect `@MainActor`
  annotations, resulting in runtime warnings if the first time a Realm was
  opened was on a background thread
  ([#8222](https://github.com/realm/realm-swift/issues/8222), since v10.34.0).

### Deprecations

* `App.SyncManager.logLevel` and `App.SyncManager.logFunction` are deprecated in favour of
  setting a default logger.

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

### Internal

* Upgraded realm-core from v13.9.4 to v13.10.0.

10.38.3 Release notes (2023-04-28)
=============================================================

### Enhancements

* Improve performance of cancelling a write transactions after making changes.
  If no KVO observers are used this is now constant time rather than taking
  time proportional to the number of changes to be rolled back. Cancelling a
  write transaction with KVO observers is 10-20% faster. ([Core PR #6513](https://github.com/realm/realm-core/pull/6513)).

### Fixed

* Performing a large number of queries without ever performing a write resulted
  in steadily increasing memory usage, some of which was never fully freed due
  to an unbounded cache ([#7978](https://github.com/realm/realm-swift/issues/7978), since v10.27.0).

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

### Internal

* Upgraded realm-core from 13.9.3 to 13.9.4

10.38.2 Release notes (2023-04-25)
=============================================================

### Enhancements

* Improve performance of equality queries on a non-indexed AnyRealmValue
  property by about 30%. ([Core #6506](https://github.com/realm/realm-core/issues/6506))

### Fixed

* SSL handshake errors were treated as fatal errors rather than errors which
  should be retried. ([Core #6434](https://github.com/realm/realm-core/issues/6434), since v10.35.0)

### Compatibility

* Realm Studio: 14.0.1 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

### Internal

* Upgraded realm-core from 13.9.0 to 13.9.3.

10.38.1 Release notes (2023-04-25)
=============================================================

### Fixed

* The error handler set on EventsConfiguration was not actually used (since v10.26.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

10.38.0 Release notes (2023-03-31)
=============================================================

Switch to building the Carthage release with Xcode 14.3.

### Enhancements

* Add Xcode 14.3 binaries to the release package. Note that CocoaPods 1.12.0
  does not support Xcode 14.3.
* Add support for sharing encrypted Realms between multiple processes.
  ([Core #1845](https://github.com/realm/realm-core/issues/1845))

### Fixed

* Fix a memory leak reported by Instruments on `URL.path` in
  `Realm.Configuration.fileURL` when using a string partition key in Partition
  Based Sync ([#8195](https://github.com/realm/realm-swift/pull/8195)), since v10.0.0).
* Fix a data race in version management. If one thread committed a write
  transaction which increased the number of live versions above the previous
  highest seen during the current session at the same time as another thread
  began a read, the reading thread could read from a no-longer-valid memory
  mapping. This could potentially result in strange crashes when opening,
  refreshing, freezing or thawing a Realm
  ([Core #6411](https://github.com/realm/realm-core/pull/6411), since v10.35.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.3.
* CocoaPods: 1.10 or later.
* Xcode: 13.4-14.3.

### Internal

* Upgraded realm-core from 13.8.0 to 13.9.0.

10.37.2 Release notes (2023-03-29)
=============================================================

### Fixed

* Copying a `RLMRealmConfiguration` failed to copy several fields. This
  resulted in migrations being passed the incorrect object type in Swift when
  using the default configuration (since v10.34.0) or async open (since
  v10.37.0). This also broke using the Events API in those two scenarios (since
  v10.26.0 for default configuration and v10.37.0 for async open). ([#8190](https://github.com/realm/realm-swift/issues/8190))

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

10.37.1 Release notes (2023-03-27)
=============================================================

### Enhancements

* Performance improvement for the following queries ([Core #6376](https://github.com/realm/realm-core/issues/6376)):
    * Significant (~75%) improvement when counting (`Results.count`) the number
      of exact matches (with no other query conditions) on a
      string/int/UUID/ObjectID property that has an index. This improvement
      will be especially noticiable if there are a large number of results
      returned (duplicate values).
    * Significant (~99%) improvement when querying for an exact match on a Date
      property that has an index.
    * Significant (~99%) improvement when querying for a case insensitive match
      on an AnyRealmValue property that has an index.
    * Moderate (~25%) improvement when querying for an exact match on a Bool
      property that has an index.
    * Small (~5%) improvement when querying for a case insensitive match on an
      AnyRealmValue property that does not have an index.

### Fixed

* Add missing `@Sendable` annotations to several sync and app services related
  callbacks ([PR #8169](https://github.com/realm/realm-swift/pull/8169), since v10.34.0).
* Fix some bugs in handling task cancellation for async Realm init. Some very
  specific timing windows could cause crashes, and the download would not be
  cancelled if the Realm was already open ([PR #8178](https://github.com/realm/realm-swift/pull/8178), since v10.37.0).
* Fix a crash when querying an AnyRealmValue property with a string operator
  (contains/like/beginswith/endswith) or with case insensitivity.
  ([Core #6376](https://github.com/realm/realm-core/issues/6376), since v10.8.0)
* Querying for case-sensitive equality of a string on an indexed AnyRealmValue
  property was returning case insensitive matches. For example querying for
  `myIndexedAny == "Foo"` would incorrectly match on values of "foo" or "FOO" etc.
  ([Core #6376](https://github.com/realm/realm-core/issues/6376), since v10.8.0)
* Adding an index to an AnyRealmValue property when objects of that type
  already existed would crash with an assertion.
  ([Core #6376](https://github.com/realm/realm-core/issues/6376), since v10.8.0).
* Fix a bug that may have resulted in arrays being in different orders on
  different devices. Some cases of “Invalid prior_size” may be fixed too.
  ([Core #6191](https://github.com/realm/realm-core/issues/6191), since v10.25.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

### Internal

* Upgraded realm-core from 13.6.0 to 13.8.0

10.37.0 Release notes (2023-03-09)
=============================================================

### Enhancements

* `MongoCollection.watch().subscribe(on:)` now supports any swift Scheduler
  rather than only dispatch queues ([PR #8131](https://github.com/realm/realm-swift/pull/8130)).
* Add an async sequence wrapper for `MongoCollection.watch()`, allowing you to
  do `for try await change in collection.changeEvents { ... }`
  ([PR #8131](https://github.com/realm/realm-swift/pull/8130)).
* The internals of error handling and reporting have been significantly
  reworked. The visible effects of this are that some errors which previously
  had unhelpful error messages now include more detail about what went wrong,
  and App errors now expose a much more complete set of error codes
  ([PR #8002](https://github.com/realm/realm-swift/pull/8002)).
* Expose compensating write error information. When the server rejects a
  modification made by the client (such as if the user does not have the
  required permissions), a `SyncError` is delivered to the sync error handler
  with the code `.writeRejected` and a non-nil `compensatingWriteInfo` field
  which contains information about what was rejected and why. This information
  is intended primarily for debugging and logging purposes and may not have a
  stable format. ([PR #8002](https://github.com/realm/realm-swift/pull/8002))
* Async `Realm.init()` now handles Task cancellation and will cancel the async
  open if the Task is cancelled ([PR #8148](https://github.com/realm/realm-swift/pull/8148)).
* Cancelling async opens now has more consistent behavior. The previously
  intended and documented behavior was that cancelling an async open would
  result in the callback associated with the specific task that was cancelled
  never being called, and all other pending callbacks would be invoked with an
  ECANCELED error. This never actually worked correctly, and the callback which
  was not supposed to be invoked at all sometimes would be. We now
  unconditionally invoke all of the exactly once, passing ECANCELED to all of
  them ([PR #8148](https://github.com/realm/realm-swift/pull/8148)).

### Fixed

* `UserPublisher` incorrectly bounced all notifications to the main thread instead
  of setting up the Combine publisher to correctly receive on the main thread.
  ([#8132](https://github.com/realm/realm-swift/issues/8132), since 10.21.0)
* Fix warnings when building with Xcode 14.3 beta 2.
* Errors in async open resulting from invalid queries in `initialSubscriptions`
  would result in the callback being invoked with both a non-nil Realm and a
  non-nil Error even though the Realm was in an invalid state. Now only the
  error is passed to the callback ([PR #8148](https://github.com/realm/realm-swift/pull/8148), since v10.28.0).
* Converting a local realm to a synced realm would crash if an embedded object
  was null ([Core #6294](https://github.com/realm/realm-core/issues/6294), since v10.22.0).
* Subqueries on indexed properties performed extremely poorly. ([Core #6327](https://github.com/realm/realm-core/issues/6327), since v5.0.0)
* Fix a crash when a SSL read successfully read a non-zero number of bytes and
  also reported an error. ([Core #5435](https://github.com/realm/realm-core/issues/5435), since 10.0.0)
* The sync client could get stuck in an infinite loop if the server sent an
  invalid changeset which caused a transform error. This now results in a
  client reset instead. ([Core #6051](https://github.com/realm/realm-core/issues/6051), since v10.0.0)
* Strings in queries which contained any characters which required multiple
  bytes when encoded as utf-8 were incorrectly encoded as binary data when
  serializing the query to send it to the server for a flexible sync
  subscription, resulting the server rejecting the query
  ([Core #6350](https://github.com/realm/realm-core/issues/6350), since 10.22.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

### Internal

* Upgraded realm-core from 13.4.1 to 13.6.0

10.36.0 Release notes (2023-02-15)
=============================================================

### Enhancements

* Add support for multiple overlapping or nested event scopes.
  `Events.beginScope()` now returns a `Scope` object which is used to commit or
  cancel that scope, and if more than one scope is active at a time events are
  reported to all active scopes.

### Fixed

* Fix moving `List` items to a higher index in SwiftUI results in wrong destination index
  ([#7956](https://github.com/realm/realm-swift/issues/7956), since v10.6.0).
* Using the `searchable` view modifier with `@ObservedResults` in iOS 16 would
  cause the collection observation subscription to cancel.
  ([#8096](https://github.com/realm/realm-swift/issues/8096), since 10.21.0)
* Client reset with recovery would sometimes crash if the recovery resurrected
  a dangling link ([Core #6292](https://github.com/realm/realm-core/issues/6292), since v10.32.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

### Internal

* Upgraded realm-core from 13.4.0 to 13.4.1

10.35.1 Release notes (2023-02-10)
=============================================================

### Fixed

* Client reset with recovery would crash if a client reset occurred the very
  first time the Realm was opened with async open. The client reset callbacks
  are now not called if the Realm had never been opened before
  ([PR #8125](https://github.com/realm/realm-swift/pull/8125), since 10.32.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

10.35.0 Release notes (2023-02-07)
=============================================================

This version bumps the Realm file format version to 23. Realm files written by
this version cannot be read by older versions of Realm.

### Enhancements

* The Realm file is now automatically shrunk if the file size is larger than
  needed to store all of the data. ([Core PR #5755](https://github.com/realm/realm-core/pull/5755))
* Pinning old versions (either with frozen Realms or with Realms on background
  threads that simply don't get refreshed) now only prevents overwriting the
  data needed by that version, rather than the data needed by that version and
  all later versions. In addition, frozen Realms no longer pin the transaction
  logs used to drive change notifications. This mostly eliminates the file size
  growth caused by pinning versions. ([Core PR #5440](https://github.com/realm/realm-core/pull/5440))
* Rework how Dictionaries/Maps are stored in the Realm file. The new design uses
  less space and is typically significantly faster. This changes the iteration
  order of Maps, so any code relying on that may be broken. We continue
  to make no guarantees about iteration order on Maps ([Core #5764](https://github.com/realm/realm-core/issues/5764)).
* Improve performance of freezing Realms ([Core PR #6211](https://github.com/realm/realm-core/pull/6211)).

### Fixed

* Fix a crash when using client reset with recovery and flexible sync with a
  single subscription ([Core #6070](https://github.com/realm/realm-core/issues/6070), since v10.28.2)
* Encrypted Realm files could not be opened on devices with a larger page size
  than the one which originally wrote the file.
  ([#8030](https://github.com/realm/realm-swift/issues/8030), since v10.32.1)
* Creating multiple flexible sync subscriptions at once could hit an assertion
  failure if the server reported an error for any of them other than the last
  one ([Core #6038](https://github.com/realm/realm-core/issues/6038), since v10.21.1).
* `Set<AnyRealmValue>` and `List<AnyRealmValue>` considered a string and binary
  data containing that string encoded as UTF-8 to be equivalent. This could
  result in a List entry not changing type on assignment and for the client be
  inconsistent with the server if a string and some binary data with equivalent
  content was inserted from Atlas.
  ([Core #4860](https://github.com/realm/realm-core/issues/4860) and
  [Core #6201](https://github.com/realm/realm-core/issues/6201), since v10.8.0)
* Querying for NaN on Decimal128 properties did not match any objects
  ([Core #6182](https://github.com/realm/realm-core/issues/6182), since v10.8.0).
* When client reset with recovery is used and the recovery did not need to
  make any changes to the local Realm, the sync client could incorrectly think
  the recovery failed and report the error "A fatal error occured during client
  reset: 'A previous 'Recovery' mode reset from <timestamp> did not succeed,
  giving up on 'Recovery' mode to prevent a cycle'".
  ([Core #6195](https://github.com/realm/realm-core/issues/6195), since v10.32.0)
* Fix a crash when using client reset with recovery and flexible sync with a
  single subscription ([Core #6070](https://github.com/realm/realm-core/issues/6070), since v10.28.2)
* Writing to newly in-view objects while a flexible sync bootstrap was in
  progress would not synchronize those changes to the server
  ([Core #5804](https://github.com/realm/realm-core/issues/5804), since v10.21.1).
* If a client reset with recovery or discard local was interrupted while the
  "fresh" realm was being downloaded, the sync client could crash with a
  MultpleSyncAgents exception ([Core #6217](https://github.com/realm/realm-core/issues/6217), since v10.25.0).
* Sharing Realm files between a Catalyst app and Realm Studio did not properly
  synchronize access to the Realm file ([Core #6258](https://github.com/realm/realm-core/pull/6258), since v10.0.0).

### Compatibility

* Realm Studio: 13.0.2 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

### Internal

* Upgraded realm-core from 12.13.0 to 13.4.0

10.34.1 Release notes (2023-01-20)
=============================================================

### Fixed

* Add some missing `@preconcurrency` annotations which lead to build failures
  with Xcode 14.0 when importing via SPM or CocoaPods
  ([#8104](https://github.com/realm/realm-swift/issues/8104), since v10.34.0).

### Compatibility

* Realm Studio: 11.0.0 - 12.0.0.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

10.34.0 Release notes (2023-01-13)
=============================================================

Swift 5.5 is no longer supported. Swift 5.6 (Xcode 13.3) is now the minimum
supported version.

The prebuilt binary for Carthage is now build with Xcode 14.2.

### Enhancements

* Improve performance of creating Projection objects and of change
  notifications on projections ([PR #8050](https://github.com/realm/realm-swift/pull/8050)).
* Allow initialising any sync configuration with `cancelAsyncOpenOnNonFatalErrors`.
* Improve performance of Combine value publishers which do not use the
  object/collection changesets a little.
* All public types have been audited for sendability and are now marked as
  Sendable when applicable. A few types which were incidentally not thread-safe
  but make sense to use from multiple threads are now thread-safe.
* Add support for building Realm with strict concurrency checking enabled.

### Fixed

* Fix bad memory access exception that can occur when watching change streams.
  [PR #8039](https://github.com/realm/realm-swift/pull/8039).
* Object change notifications on projections only included the first projected
  property for each source property ([PR #8050](https://github.com/realm/realm-swift/pull/8050), since v10.21.0).
* `@AutoOpen` failed to open flexible sync Realms while offline
  ([#7986](https://github.com/realm/realm-swift/issues/7986), since v10.27.0).
* Fix "Publishing changes from within view updates is not allowed" warnings
  when using `@ObservedResults` or `@ObservedSectionedResults`
  ([#7908](https://github.com/realm/realm-swift/issues/7908)).
* Fix "Publishing changes from within view updates is not allowed" warnings
  when using `@AutoOpen` or `@AsyncOpen`.
  ([#7908](https://github.com/realm/realm-swift/issues/7908)).
* Defer `Realm.asyncOpen` execution on `@AsyncOpen` and `@AutoOpen` property
  wrappers until all the environment values are set. This will guarantee the
  configuration and partition value are set set before opening the realm.
  ([#7931](https://github.com/realm/realm-swift/issues/7931), since v10.12.0).
* `@ObservedResults.remove()` could delete the wrong object if a write on a
  background thread which changed the index of the object being removed
  occurred at a very specific time (since v10.6.0).

### Compatibility

* Realm Studio: 11.0.0 - 12.0.0. 13.0.0 is currently incompatible.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.2.
* CocoaPods: 1.10 or later.
* Xcode: 13.3-14.2.

10.33.0 Release notes (2022-12-01)
=============================================================

### Enhancements

* Flexible sync subscription state will change to
  `SyncSubscriptionState.pending` (`RLMSyncSubscriptionStatePending`) while
  waiting for the server to have sent all pending history after a bootstrap and
  before marking a subscription as Complete.
  ([#5795](https://github.com/realm/realm-core/pull/5795))
* Add custom column names API, which allows to set a different column name in the realm
  from the one used in your object declaration.
  ```swift
  class Person: Object {
      @Persisted var firstName: String
      @Persisted var birthDate: Date
      @Persisted var age: Int

      override class public func propertiesMapping() -> [String: String] {
          ["firstName": "first_name",
           "birthDate": "birth_date"]
      }
  }
  ```
  This is very helpful in cases where you want to name a property differently
  from your `Device Sync` JSON schema.
  This API is only available for old and modern object declaration syntax on the
  `RealmSwift` SDK.
* Flexible sync bootstraps now apply 1MB of changesets per write transaction
  rather than applying all of them in a single write transaction.
  ([Core PR #5999](https://github.com/realm/realm-core/pull/5999)).

### Fixed

* Fix a race condition which could result in "operation cancelled" errors being
  delivered to async open callbacks rather than the actual sync error which
  caused things to fail ([Core PR #5968](https://github.com/realm/realm-core/pull/5968), since the introduction of async open).
* Fix database corruption issues which could happen if an application was
  terminated at a certain point in the process of comitting a write
  transaciton. ([Core PR #5993](https://github.com/realm/realm-core/pull/5993), since v10.21.1)
* `@AsyncOpen` and `@AutoOpen` would begin and then cancel a second async open
  operation ([PR #8038](https://github.com/realm/realm-swift/pull/8038), since v10.12.0).
* Changing the search text when using the searchable SwiftUI extension would
  trigger multiple updates on the View for each change
  ([PR #8038](https://github.com/realm/realm-swift/pull/8038), since v10.19.0).
* Changing the filter or search properties of an `@ObservedResults` or
  `@ObservedSectionedResults` would trigger up to three updates on the View
  ([PR #8038](https://github.com/realm/realm-swift/pull/8038), since v10.6.0).
* Fetching a user's profile while the user logs out would result in an
  assertion failure. ([Core PR #6017](https://github.com/realm/realm-core/issues/5571), since v10.8.0)

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

### Internal

* Upgraded realm-core from 12.11.0 to 12.13.0

10.32.3 Release notes (2022-11-10)
=============================================================

### Fixed

* Fix name lookup errors when importing Realm Swift built in library evolution
  mode (([#8014](https://github.com/realm/realm-swift/issues/8014)).
* The prebuilt watchOS library in the objective-c release package was missing
  an arm64 slice. The Swift release package was uneffected
  ([PR #8016](https://github.com/realm/realm-swift/pull/8016)).
* Fix issue where `RLMUserAPIKey.key`/`UserAPIKey.key` incorrectly returned the name of the API
  key instead of the key itself. ([#8021](https://github.com/realm/realm-swift/issues/8021), since v10.0.0)

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

10.32.2 Release notes (2022-11-01)
=============================================================

Switch to building the Carthage release with Xcode 14.1.

### Fixed

* Fix linker errors when building a release build with Xcode 14.1 when
 installing via SPM ([#7995](https://github.com/realm/realm-swift/issues/7995)).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

10.32.1 Release notes (2022-10-25)
=============================================================

### Enhancements

* Improve performance of client reset with automatic recovery and converting
  top-level tables into embedded tables ([Core #5897](https://github.com/realm/realm-core/pull/5897)).
* `Realm.Error` is now a typealias for `RLMError` rather than a
  manually-defined version of what the automatic bridging produces. This should
  have no effect on existing working code, but the manual definition was
  missing a few things supplied by the automatic bridging.
* Some sync errors sent by the server include a link to the server-side logs
  associated with that error. This link is now exposed in the `serverLogURL`
  property on `SyncError` (or `RLMServerLogURLKey` userInfo field when using NSError).

### Fixed

* Many sync and app errors were reported using undocumented internal error
  codes and/or domains and could not be progammatically handled. Some notable
  things which now have public error codes instead of unstable internal ones:
  - `Realm.Error.subscriptionFailed`: The server rejected a flexible sync subscription.
  - `AppError.invalidPassword`: A login attempt failed due to a bad password.
  - `AppError.accountNameInUse`: A registration attempt failed due to the account name being in use.
  - `AppError.httpRequestFailed`: A HTTP request to Atlas App Services
    completed with an error HTTP code. The failing code is available in the
    `httpStatusCode` property.
  - Many other less common error codes have been added to `AppError`.
  - All sync errors other than `SyncError.clientResetError` reported incorrect
    error codes.
  (since v10.0.0).
* `UserAPIKey.objectId` was incorrectly bridged to Swift as `RLMObjectId` to
  `ObjectId`. This may produce warnings about an unneccesary cast if you were
  previously casting it to the correct type (since v10.0.0).
* Fixed an assertion failure when observing change notifications on a sectioned
  result, if the first modification was to a linked property that did not cause
  the state of the sections to change.
  ([Core #5912](https://github.com/realm/realm-core/issues/5912),
  since the introduction of sectioned results in v10.29.0)
* Fix a use-after-free if the last external reference to an encrypted
  synchronized Realm was closed between when a client reset error was received
  and when the download of the new Realm began.
  ([Core #5949](https://github.com/realm/realm-core/pull/5949), since 10.28.4).
* Fix an assertion failure during client reset with recovery when recovering
  a list operation on an embedded object that has a link column in the path
  prefix to the list from the top level object.
  ([Core #5957](https://github.com/realm/realm-core/issues/5957),
  since introduction of automatic recovery in v10.32.0).
* Creating a write transaction which is rejected by the server due to it
  exceeding the maximum transaction size now results in a client reset error
  instead of synchronization breaking and becoming stuck forever
  ([Core #5209](https://github.com/realm/realm-core/issues/5209), since v10).
* Opening an unencrypted file with an encryption key would sometimes report a
  misleading error message that indicated that the problem was something other
  than a decryption failure ([Core #5915](https://github.com/realm/realm-core/pull/5915), since 0.89.0).
* Fix a rare deadlock which could occur when closing a synchronized Realm
  immediately after committing a write transaction when the sync worker thread
  has also just finished processing a changeset from the server
  ([Core #5948](https://github.com/realm/realm-core/pull/5948)).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.0.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

### Internal

* Upgraded realm-core from 12.9.0 to 12.11.0.

10.32.0 Release notes (2022-10-10)
=============================================================

### Enhancements

* Add `.recoverUnsyncedChanges` (`RLMClientResetModeRecoverUnsyncedChanges`) and
`.recoverOrDiscardUnsyncedChanges` (`RLMClientResetModeRecoverOrDiscardUnsyncedChanges`) behaviors to `ClientResetMode` (`RLMClientResetMode`).
  - The newly added recover modes function by downloading a realm which reflects the latest
    state of the server after a client reset. A recovery process is run locally in an
    attempt to integrate the server state with any local changes from before the
    client reset occurred.
    The changes are integrated with the following rules:
    1. Objects created locally that were not synced before client reset, will be integrated.
    2. If an object has been deleted on the server, but was modified on the client, the delete takes precedence and the update is discarded.
    3. If an object was deleted on the client, but not the server, then the client delete instruction is applied.
    4. In the case of conflicting updates to the same field, the client update is applied.
  - The client reset process will fallback to `ClientResetMode.discardUnsyncedChanges` if the recovery process fails in `.recoverOrDiscardUnsyncedChanges`.
  - The client reset process will fallback to `ClientResetMode.manual` if the recovery process fails in `.recoverUnsyncedChanges`.
  - The two new swift recovery modes support client reset callbacks: `.recoverUnsyncedChanges(beforeReset: ((Realm) -> Void)? = nil, afterReset: ((Realm, Realm) -> Void)? = nil)`.
  - The two new Obj-C recovery modes support client reset callbacks in `notifyBeforeReset`
    and `notifyAfterReset`for both `[RLMUser configurationWithPartitionValue]` and `[RLMUser flexibleSyncConfigurationWithClientResetMode]`
    For more detail on client reset callbacks, see `ClientResetMode`, `RLMClientResetBeforeBlock`,
    `RLMClientResetAfterBlock`, and the 10.25.0 changelog entry.
* Add two new additional interfaces to define a manual client reset handler:
  - Add a manual callback handler to `ClientResetMode.manual` -> `ClientResetMode.manual(ErrorReportingBlock? = nil)`.
  - Add the `RLMSyncConfiguration.manualClientResetHandler` property (type `RLMSyncErrorReportingBlock`).
  - These error reporting blocks are invoked in the event of a `RLMSyncErrorClientResetError`.
  - See `ErrorReportingBlock` (`RLMSyncErrorReportingBlock`), and `ClientResetInfo` for more detail.
  - Previously, manual client resets were handled only through the `SyncManager.ErrorHandler`. You have the
    option, but not the requirement, to define manual reset handler in these interfaces.
    Otherwise, the `SyncManager.ErrorHandler` is still invoked during the manual client reset process.
  - These new interfaces are only invoked during a `RLMSyncErrorClientResetError`. All other sync errors
    are still handled in the `SyncManager.ErrorHandler`.
  - See 'Breaking Changes' for information how these interfaces interact with an already existing
    `SyncManager.ErrorHandler`.

### Breaking Changes

* The default `clientResetMode` (`RLMClientResetMode`) is switched from `.manual` (`RLMClientResetModeManual`)
  to `.recoverUnsyncedChanges` (`RLMClientResetModeRecoverUnsyncedChanges`).
  - If you are currently using `.manual` and continue to do so, the only change
    you must explicitly make is designating manual mode in
    your `Realm.Configuration.SyncConfiguration`s, since they will now default to `.recoverUnsyncedChanges`.
  - You may choose to define your manual client reset handler in the newly
    introduced `manual(ErrorReportingBlock? = nil)`
    or `RLMSyncConfiguration.manualClientResetHandler`, but this is not required.
    The `SyncManager.errorHandler` will still be invoked during a client reset if
    no callback is passed into these new interfaces.

### Deprecations

* `ClientResetMode.discardLocal` is deprecated in favor of `ClientResetMode.discardUnsyncedChanges`.
  The reasoning is that the name better reflects the effect of this reset mode. There is no actual
  difference in behavior.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.0.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

10.31.0 Release notes (2022-10-05)
=============================================================

The prebuilt binary for Carthage is now build with Xcode 14.0.1.

### Enhancements

* Cut the runtime of aggregate operations on large dictionaries in half
  ([Core #5864](https://github.com/realm/realm-core/pull/5864)).
* Improve performance of aggregate operations on collections of objects by 2x
  to 10x ([Core #5864](https://github.com/realm/realm-core/pull/5864)).
  Greatly improve the performance of sorting or distincting a Dictionary's keys
  or values. The most expensive operation is now performed O(log N) rather than
  O(N log N) times, and large Dictionaries can see upwards of 99% reduction in
  time to sort. ([Core #5166](https://github.com/realm/realm-core/pulls/5166))
* Add support for changing the deployment location for Atlas Apps. Previously
  this was assumed to be immutable ([Core #5648](https://github.com/realm/realm-core/issues/5648)).
* The sync client will now yield the write lock to other threads which are
  waiting to perform a write transaction even if it still has remaining work to
  do, rather than always applying all changesets received from the server even
  when other threads are trying to write. ([Core #5844](https://github.com/realm/realm-core/pull/5844)).
* The sync client no longer writes an unused temporary copy of the changesets
  received from the server to the Realm file ([Core #5844](https://github.com/realm/realm-core/pull/5844)).

### Fixed

* Setting a `List` property with `Results` no longer throws an unrecognized
  selector exception (since 10.8.0-beta.2)
* `RLMProgressNotificationToken` and `ProgressNotificationToken` now hold a
  strong reference to the sync session, keeping it alive until the token is
  deallocated or invalidated, as the other notification tokens do.
  ([#7831](https://github.com/realm/realm-swift/issues/7831), since v2.3.0).
* Results permitted some nonsensical aggregate operations on column types which
  do not make sense to aggregate, giving garbage results rather than reporting
  an error ([Core #5876](https://github.com/realm/realm-core/pull/5876), since v5.0.0).
* Upserting a document in a Mongo collection would crash if the document's id
  type was anything other than ObjectId (since v10.0.0).
* Fix a use-after-free when a sync session is closed and the app is destroyed
  at the same time ([Core #5752](https://github.com/realm/realm-core/issues/5752),
  since v10.19.0).

### Deprecations

* `RLMUpdateResult.objectId` has been deprecated in favor of
  `RLMUpdateResult.documentId` to support reporting document ids which are not
  object ids.
### Breaking Changes
* Private API `_realmColumnNames` has been renamed to a new public API
  called `propertiesMapping()`. This change only affects the Swift API
  and doesn't have any effects in the obj-c API.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 14.0.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14.1.

### Internal

* Upgraded realm-core from 12.7.0 to 12.9.0

10.30.0 Release notes (2022-09-20)
=============================================================

### Fixed

* Incoming links from `RealmAny` properties were not handled correctly when
  migrating an object type from top-level to embedded. `RealmAny` properties
  currently cannot link to embedded objects.
  ([Core #5796](https://github.com/realm/realm-core/pull/5796), since 10.8.0).
* `Realm.refresh()` sometimes did not actually advance to the latest version.
  It attempted to be semi-non-blocking in a very confusing way which resulted
  in it sometimes advancing to a newer version that is not the latest version,
  and sometimes blocking until notifiers are ready so that it could advance to
  the latest version. This behavior was undocumented and didn't work correctly,
  so it now always blocks if needed to advance to the latest version.
  ([#7625](https://github.com/realm/realm-swift/issues/7625), since v0.98.0).
* Fix the most common cause of thread priority inversions when performing
  writes on the main thread. If beginning the write transaction has to wait for
  the background notification calculations to complete, that wait is now done
  in a QoS-aware way. ([#7902](https://github.com/realm/realm-swift/issues/7902))
* Subscribing to link properties in a flexible sync Realm did not work due to a
  mismatch between what the client sent and what the server needed.
  ([Core #5409](https://github.com/realm/realm-core/issues/5409))
* Attempting to use `AsymmetricObject` with partition-based sync now reports a
  sensible error much earlier in the process. Asymmetric sync requires using
  flexible sync. ([Core #5691](https://github.com/realm/realm-core/issues/5691), since 10.29.0).
* Case-insensitive but diacritic-sensitive queries would crash on 4-byte UTF-8
  characters ([Core #5825](https://github.com/realm/realm-core/issues/5825), since v2.2.0)
* Accented characters are now handled by case-insensitive but
  diacritic-sensitive queries. ([Core #5825](https://github.com/realm/realm-core/issues/5825), since v2.2.0)

### Breaking Changes

* `-[RLMASLoginDelegate authenticationDidCompleteWithError:]` has been renamed
  to `-[RLMASLoginDelegate authenticationDidFailWithError:]` to comply with new
  app store requirements. This only effects the obj-c API.
  ([#7945](https://github.com/realm/realm-swift/issues/7945))

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1 - 14.

### Internal

* Upgraded realm-core from 12.6.0 to 12.7.0

10.29.0 Release notes (2022-09-09)
=============================================================

### Enhancements

* Add support for asymmetric sync. When a class inherits from
  `AsymmetricObject`, objects created are synced unidirectionally to the server
  and cannot be queried or read locally.

```swift
    class PersonObject: AsymmetricObject {
       @Persisted(primaryKey: true) var _id: ObjectId
       @Persisted var name: String
       @Persisted var age: Int
    }

    try realm.write {
       // This will create the object on the server but not locally.
       realm.create(PersonObject.self, value: ["_id": ObjectId.generate(),
                                               "name": "Dylan",
                                               "age": 20])
    }
```
* Add ability to section a collection which conforms to `RealmCollection`, `RLMCollection`.
  Collections can be sectioned by a unique key retrieved from a keyPath or a callback and will return an instance of `SectionedResults`/`RLMSectionedResults`.
  Each section in the collection will be an instance of `ResultsSection`/`RLMSection` which gives access to the elements corresponding to the section key.
  `SectionedResults`/`RLMSectionedResults` and `ResultsSection`/`RLMSection` have the ability to be observed.
  ```swift
  class DemoObject: Object {
      @Persisted var title: String
      @Persisted var date: Date
      var firstLetter: String {
          return title.first.map(String.init(_:)) ?? ""
      }
  }
  var sectionedResults: SectionedResults<String, DemoObject>
  // ...
  sectionedResults = realm.objects(DemoObject.self)
      .sectioned(by: \.firstLetter, ascending: true)
  ```
* Add `@ObservedSectionedResults` for SwiftUI support. This property wrapper type retrieves sectioned results
  from a Realm using a keyPath or callback to determine the section key.
  ```swift
  struct DemoView: View {
      @ObservedSectionedResults(DemoObject.self,
                                sectionKeyPath: \.firstLetter) var demoObjects

      var body: some View {
          VStack {
              List {
                  ForEach(demoObjects) { section in
                      Section(header: Text(section.key)) {
                          ForEach(section) { object in
                              MyRowView(object: object)
                          }
                      }
                  }
              }
          }
      }
  }
  ```
* Add automatic handing for changing top-level objects to embedded objects in
  migrations. Any objects of the now-embedded type which have zero incoming
  links are deleted, and objects with multiple incoming links are duplicated.
  This happens after the migration callback function completes, so there is no
  functional change if you already have migration logic which correctly handles
  this. ([Core #5737](https://github.com/realm/realm-core/pull/5737)).
* Improve performance when a new Realm file connects to the server for the
  first time, especially when significant amounts of data has been written
  while offline. ([Core #5772](https://github.com/realm/realm-core/pull/5772))
* Shift more of the work done on the sync worker thread out of the write
  transaction used to apply server changes, reducing how long it blocks other
  threads from writing. ([Core #5772](https://github.com/realm/realm-core/pull/5772))
* Improve the performance of the sync changeset parser, which speeds up
  applying changesets from the server. ([Core #5772](https://github.com/realm/realm-core/pull/5772))

### Fixed

* Fix all of the UBSan failures hit by our tests. It is unclear if any of these
  manifested as visible bugs. ([Core #5665](https://github.com/realm/realm-core/pull/5665))
* Upload completion callbacks were sometimes called before the final step of
  interally marking the upload as complete, which could result in calling
  `Realm.writeCopy()` from the completion callback failing due to there being
  unuploaded changes. ([Core #4865](https://github.com/realm/realm-core/issues/4865)).
* Writing to a Realm stored on an exFAT drive threw the exception "fcntl() with
  F_BARRIERFSYNC failed: Inappropriate ioctl for device" when a write
  transaction needed to expand the file.
  ([Core #5789](https://github.com/realm/realm-core/issues/5789), since 10.27.0)
* Syncing a Decimal128 with big significand could result in a crash.
  ([Core #5728](https://github.com/realm/realm-core/issues/5728))

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 RC.

### Internal

* Upgraded realm-core from 12.5.1 to 12.6.0

10.28.7 Release notes (2022-09-02)
=============================================================

### Enhancements

* Add prebuilt binaries for Xcode 14 to the release package.

### Fixed

* Fix archiving watchOS release builds with Xcode 14.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 6.

10.28.6 Release notes (2022-08-19)
=============================================================

### Fixed

* Fixed an issue where having realm-swift as SPM sub-target dependency leads to
  missing symbols error during iOS archiving ([Core #7645](https://github.com/realm/realm-core/pull/7645)).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 5.

### Internal

* Upgraded realm-core from 12.5.0 to 12.5.1

10.28.5 Release notes (2022-08-09)
=============================================================

### Enhancements

* Improve performance of accessing `SubscriptionSet` properties when no writes
  have been made to the Realm since the last access.

### Fixed

* A use-after-free could occur if a Realm with audit events enabled was
  destroyed while processing an upload completion for the events Realm on a
  different thread. ([Core PR #5714](https://github.com/realm/realm-core/pull/5714))
* Opening a read-only synchronized Realm for the first time via asyncOpen did
  not set the schema version, which could lead to `m_schema_version !=
  ObjectStore::NotVersioned` assertion failures later on.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 4.

### Internal

* Upgraded realm-core from 12.4.0 to 12.5.0

10.28.4 Release notes (2022-08-03)
=============================================================

### Enhancements

* Add support for building arm64 watchOS when installing Realm via CocoaPods.
* Reduce the amount of virtual address space used
  ([Core #5645](https://github.com/realm/realm-core/pull/5645)).

### Fixed

* Fix some warnings when building with Xcode 14
  ([Core #5577](https://github.com/realm/realm-core/pull/5577)).
* Fix compilation failures on watchOS platforms which do not support thread-local storage.
  ([#7694](https://github.com/realm/realm-swift/issues/7694), [#7695](https://github.com/realm/realm-swift/issues/7695) since v10.21.1)
* Fix a data race when committing a transaction while multiple threads are
  waiting to begin write transactions. This appears to not have caused any
  functional problems.
* Fix a data race when writing audit events which could occur if the sync
  client thread was busy with other work when the event Realm was opened.
* Fix some cases of running out of virtual address space (seen/reported as mmap
  failures) ([Core #5645](https://github.com/realm/realm-core/pull/5645)).
* Audit event scopes containing only write events and no read events would
  occasionally throw a `BadVersion` exception when a write transaction was
  committed (since v10.26.0).
* The client reset callbacks for the DiscardLocal mode would be passed invalid
  Realm instances if the callback was invoked at a point where the Realm was
  not otherwise open. ([Core #5654](https://github.com/realm/realm-core/pull/5654), since the introduction of DiscardLocal reset mode in v10.25.0)

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 4.

### Internal

* Upgraded realm-core from 12.3.0 to 12.4.0.

10.28.3 Release notes (2022-07-27)
=============================================================

### Enhancements

* Greatly improve the performance of obtaining cached Realm instances in Swift
  when using a sync configuration.

### Fixed

* Add missing `initialSubscription` and `rerunOnOpen` to copyWithZone method on
  `RLMRealmConfiguration`. This resulted in incorrect values when using
  `RLMRealmConfiguration.defaultConfiguration`.
* The sync error handler did not hold a strong reference to the sync session
  while dispatching the error from the worker thread to the main thread,
  resulting in the session passed to the error handler being invalid if there
  were no other remaining strong references elsewhere.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 3.

10.28.2 Release notes (2022-06-30)
=============================================================

### Fixed

* Using `seedFilePath` threw an exception if the Realm file being opened
  already existed ([#7840](https://github.com/realm/realm-swift/issues/7840),
  since v10.26.0).
* The `intialSubscriptions` callback was invoked every time a Realm was opened
  regardless of the value of `rerunOnOpen` and if the Realm was already open on
  another thread (since v10.28.0).
* Allow using `RLMSupport.Swift` from RealmSwift's Cocoapods
  ([#6886](https://github.com/realm/realm-swift/pull/6886)).
* Fix a UBSan failure when mapping encrypted pages. Fixing this did not change
  the resulting assembly, so there were probably no functional problems
  resulting from this (since v5.0.0).
* Improved performance of sync clients during integration of changesets with
  many small strings (totalling > 1024 bytes per changeset) on iOS 14, and
  devices which have restrictive or fragmented memory.
  ([Core #5614](https://github.com/realm/realm-core/issues/5614))
* Fix a data race when opening a flexible sync Realm (since v10.28.0).
* Add a missing backlink removal when assigning null or a non-link value to an
  `AnyRealmValue` property which previously linked to an object.
  This could have resulted in "key not found" exceptions or assertion failures
  such as `mixed.hpp:165: [realm-core-12.1.0] Assertion failed: m_type` when
  removing the destination link object.
  ([Core #5574](https://github.com/realm/realm-core/pull/5573), since the introduction of AnyRealmValue in v10.8.0)

### Compatibility

* Realm Studio: 12.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 2.

### Internal

* Upgraded realm-core from 12.1.0 to 12.3.0.

10.28.1 Release notes (2022-06-10)
=============================================================

### Enhancements

* Add support for Xcode 14. When building with Xcode 14, the minimum deployment
  target is now iOS 11.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.1.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-14 beta 1.

10.28.0 Release notes (2022-06-03)
=============================================================

### Enhancements

* Replace mentions of 'MongoDB Realm' with 'Atlas App Services' in the documentation and update appropriate links to documentation.
* Allow adding a subscription querying for all documents of a type in swift for flexible sync.
```
   try await subscriptions.update {
      subscriptions.append(QuerySubscription<SwiftPerson>(name: "all_people"))
   }
```
* Add Combine API support for flexible sync beta.
* Add an `initialSubscriptions` parameter when retrieving the flexible sync configuration from a user,
  which allows to specify a subscription update block, to bootstrap a set of flexible sync subscriptions
  when the Realm is first opened.
  There is an additional optional parameter flag `rerunOnOpen`, which allows to run this initial
  subscriptions on every app startup.

```swift
    let config = user.flexibleSyncConfiguration(initialSubscriptions: { subs in
        subs.append(QuerySubscription<SwiftPerson>(name: "people_10") {
            $0.age > 10
        })
    }, rerunOnOpen: true)
    let realm = try Realm(configuration: config)
```
* The sync client error handler will report an error, with detailed info about which object caused it, when writing an object to a flexible sync Realm outside of any query subscription. ([#5528](https://github.com/realm/realm-core/pull/5528))
* Adding an object to a flexible sync Realm for a type that is not within a query subscription will now throw an exception. ([#5488](https://github.com/realm/realm-core/pull/5488)).

### Fixed

* Flexible Sync query subscriptions will correctly complete when data is synced to the local Realm. ([#5553](https://github.com/realm/realm-core/pull/5553), since v12.0.0)

### Breaking Changes

* Rename `SyncSubscriptionSet.write` to `SyncSubscriptionSet.update` to avoid confusion with `Realm.write`.
* Rename `SyncSubscription.update` to `SyncSubscription.updateQuery` to avoid confusion with `SyncSubscriptionSet.update`.
* Rename `RLMSyncSubscriptionSet.write` to `RLMSyncSubscriptionSet.update` to align it with swift API.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-13.4.

### Internal

* Upgraded realm-core from 12.0.0 to 12.1.0.

10.27.0 Release notes (2022-05-26)
=============================================================

### Enhancements

* `@AsyncOpen`/`@AutoOpen` property wrappers can be used with flexible sync.

### Fixed

* When installing via SPM, debug builds could potentially hit an assertion
  failure during flexible sync bootstrapping. ([Core #5527](https://github.com/realm/realm-core/pull/5527))
* Flexible sync now only applies bootstrap data if the entire bootstrap is
  received. Previously orphaned objects could result from the read snapshot on
  the server changing. ([Core #5331](https://github.com/realm/realm-core/pull/5331))
* Partially fix a performance regression in write performance introduced in
  v10.21.1. v10.21.1 fixed a case where a kernel panic or device's battery
  dying at the wrong point in a write transaction could potentially result in a
  corrected Realm file, but at the cost of a severe performance hit. This
  version adjusts how file synchronization is done to provide the same safety
  at a much smaller performance hit. ([#7740](https://github.com/realm/realm-swift/issues/7740)).

### Compatibility

* Realm Studio: 11.0.0 or later (but see note below).
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-13.4.

### Internal

* Upgraded realm-core from 11.17.0 to 12.0.0.
* Bump the version number for the lockfile used for interprocess
  synchronization. This has no effect on persistent data, but means that
  versions of Realm which use pre-12.0.0 realm-core cannot open Realm files at
  the same time as they are opened by this version. Notably this includes Realm
  Studio, and v11.1.2 (the latest at the time of this release) cannot open
  Realm files which are simultaneously open in the simulator.

10.26.0 Release notes (2022-05-19)
=============================================================

Xcode 13.1 is now the minimum supported version of Xcode, as Apple no longer
allows submitting to the app store with Xcode 12.

### Enhancements

* Add Xcode 13.4 binaries to the release package.
* Add Swift API for asynchronous transactions
```swift
    try? realm.writeAsync {
        realm.create(SwiftStringObject.self, value: ["string"])
    } onComplete: { error in
        // optional handling on write complete
    }

    try? realm.beginAsyncWrite {
        realm.create(SwiftStringObject.self, value: ["string"])
        realm.commitAsyncWrite()
    }

    let asyncTransactionId = try? realm.beginAsyncWrite {
        // ...
    }
    try! realm.cancelAsyncWrite(asyncTransactionId)
```
* Add Obj-C API for asynchronous transactions
```
   [realm asyncTransactionWithBlock:^{
        [StringObject createInRealm:realm withValue:@[@"string"]];
    } onComplete:^(NSError *error) {
        // optional handling
    }];

    [realm beginAsyncWriteTransaction:^{
        [StringObject createInRealm:realm withValue:@[@"string"]];
        [realm commitAsyncWriteTransaction];
    }];

    RLMAsyncTransactionId asyncTransactionId = [realm beginAsyncWriteTransaction:^{
        // ...
    }];
    [realm cancelAsyncTransaction:asyncTransactionId];
```
* Improve performance of opening a Realm with `objectClasses`/`objectTypes` set
  in the configuration.
* Implement the Realm event recording API for reporting reads and writes on a
  Realm file to Atlas.

### Fixed

* Lower minimum OS version for `async` login and FunctionCallables to match the
  rest of the `async` functions. ([#7791]https://github.com/realm/realm-swift/issues/7791)
* Consuming a RealmSwift XCFramework with library evolution enabled would give the error
  `'Failed to build module 'RealmSwift'; this SDK is not supported by the compiler'`
  when the XCFramework was built with an older XCode version and is
  then consumed with a later version. ([#7313](https://github.com/realm/realm-swift/issues/7313), since v3.18.0)
* A data race would occur when opening a synchronized Realm with the client
  reset mode set to `discardLocal` on one thread at the same time as a client
  reset was being processed on another thread. This probably did not cause any
  functional problems in practice and the broken timing window was very tight (since 10.25.0).
* If an async open of a Realm triggered a client reset, the callbacks for
  `discardLocal` could theoretically fail to be called due to a race condition.
  The timing for this was probably not possible to hit in practice (since 10.25.0).
* Calling `[RLMRealm freeze]`/`Realm.freeze` on a Realm which had been created from `writeCopy`
  would not produce a frozen Realm. ([#7697](https://github.com/realm/realm-swift/issues/7697), since v5.0.0)
* Using the dynamic subscript API on unmanaged objects before first opening a
  Realm or if `objectTypes` was set when opening a Realm would throw an
  exception ([#7786](https://github.com/realm/realm-swift/issues/7786)).
* The sync client may have sent a corrupted upload cursor leading to a fatal
  error from the server due to an uninitialized variable.
  ([#5460](https://github.com/realm/realm-core/pull/5460), since v10.25.1)
* Flexible sync would not correctly resume syncing if a bootstrap was interrupted
  ([#5466](https://github.com/realm/realm-core/pull/5466), since v10.21.1).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.4.
* CocoaPods: 1.10 or later.
* Xcode: 13.1-13.4.

### Internal

* Upgraded realm-core from v11.15.0 to v11.17.0

10.25.2 Release notes (2022-04-27)
=============================================================

### Enhancements

* Replace Xcode 13.3 binaries with 13.3.1 binaries.

### Fixed

* `List<AnyRealmValue>` would contain an invalidated object instead of null when
  the object linked to was deleted by a difference sync client
  ([Core #5215](https://github.com/realm/realm-core/pull/5215), since v10.8.0).
* Adding an object to a Set, deleting the parent object of the Set, and then
  deleting the object which was added to the Set would crash
  ([Core #5387](https://github.com/realm/realm-core/issues/5387), since v10.8.0).
* Synchronized Realm files which were first created using v10.0.0-beta.3 would
  be redownloaded instead of using the existing file, possibly resulting in the
  loss of any unsynchronized data in those files (since v10.20.0).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.3.1.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3.1.

### Internal

* Upgraded realm-core from v11.14.0 to v11.15.0

10.25.1 Release notes (2022-04-11)
=============================================================

### Fixed

* Fixed various memory corruption bugs when encryption is used caused by not
  locking a mutex when needed.
  ([#7640](https://github.com/realm/realm-swift/issues/7640), [#7659](https://github.com/realm/realm-swift/issues/7659), since v10.21.1)
* Changeset upload batching did not calculate the accumulated size correctly,
  resulting in “error reading body failed to read: read limited at 16777217
  bytes” errors from the server when writing large amounts of data
  ([Core #5373](https://github.com/realm/realm-core/pull/5373), since 10.25.0).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.3.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3.

### Internal

* Upgraded realm-core from v11.13.0 to v11.14.0.

10.25.0 Release notes (2022-03-29)
=============================================================

Synchronized Realm files written by this version cannot be opened by older
versions of Realm. Existing files will be automatically upgraded when opened.

Non-synchronized Realm files remain backwards-compatible.

### Enhancements

* Add ability to use Swift Query syntax in `@ObservedResults`, which allows you
  to filter results using the `where` parameter.
* Add ability to use `MutableSet` with `StateRealmObject` in SwiftUI.
* Async/Await extensions are now compatible with iOS 13 and above when building
  with Xcode 13.3.
* Sync changesets waiting to be uploaded to the server are now compressed,
  reducing the disk space needed when large write transactions are performed
  while offline or limited in bandwidth.([Core #5260](https://github.com/realm/realm-core/pull/5260)).
* Added new `SyncConfiguration.clientResetMode` and `RLMSyncConfiguration.clientResetMode` properties.
  - The values of these properties will dictate client behavior in the event of a [client reset](https://docs.mongodb.com/realm/sync/error-handling/client-resets/).
  - See below for information on `ClientResetMode` values.
  - `clientResetMode` defaults to `.manual` if not set otherwise.
* Added new `ClientResetMode` and `RLMClientResetMode` enums.
  - These enums represent possible client reset behavior for `SyncConfiguration.clientResetMode` and `RLMSyncConfiguration.clientResetMode`, respectively.
  - `.manual` and `RLMClientResetModeManual`
    - The local copy of the Realm is copied into a recovery
      directory for safekeeping, and then deleted from the original location. The next time
      the Realm for that partition value is opened, the Realm will automatically be re-downloaded from
      MongoDB Realm, and can be used as normal.
    - Data written to the Realm after the local copy of the Realm diverged from the backup
      remote copy will be present in the local recovery copy of the Realm file. The
      re-downloaded Realm will initially contain only the data present at the time the Realm
      was backed up on the server.
    -  `rlmSync_clientResetBackedUpRealmPath` and `SyncError.clientResetInfo()` are used for accessing the recovery directory.
  - `.discardLocal` and `RLMClientResetDiscardLocal`
    - All unsynchronized local changes are automatically discarded and the local state is
      automatically reverted to the most recent state from the server. Unsynchronized changes
      can then be recovered in a post-client-reset callback block (See changelog below for more details).
    - If RLMClientResetModeDiscardLocal is enabled but the client reset operation is unable to complete
      then the client reset process reverts to manual mode.
    - The realm's underlying object accessors remain bound so the UI may be updated in a non-disruptive way.
* Added support for client reset notification blocks for `.discardLocal` and `RLMClientResetDiscardLocal`
  - **RealmSwift implementation**: `discardLocal(((Realm) -> Void)? = nil, ((Realm, Realm) -> Void)? = nil)`
    - RealmSwift client reset blocks are set when initializing the user configuration
    ```swift
    var configuration = user.configuration(partitionValue: "myPartition", clientResetMode: .discardLocal(beforeClientResetBlock, afterClientResetBlock))
    ```
    - The before client reset block -- `((Realm) -> Void)? = nil` -- is executed prior to a client reset. Possible usage includes:
    ```swift
    let beforeClientResetBlock: (Realm) -> Void = { beforeRealm in
      var recoveryConfig = Realm.Configuration()
        recoveryConfig.fileURL = myRecoveryPath
        do {
          beforeRealm.writeCopy(configuration: recoveryConfig)
            /* The copied realm could be used later for recovery, debugging, reporting, etc. */
        } catch {
            /* handle error */
        }
    }
    ```
    - The after client reset block -- `((Realm, Realm) -> Void)? = nil)` -- is executed after a client reset. Possible usage includes:
    ```Swift
    let afterClientResetBlock: (Realm, Realm) -> Void = { before, after in
    /* This block could be used to add custom recovery logic, back-up a realm file, send reporting, etc. */
    for object in before.objects(myClass.self) {
        let res = after.objects(myClass.self)
        if (res.filter("primaryKey == %@", object.primaryKey).first != nil) {
             /* ...custom recovery logic... */
        } else {
             /* ...custom recovery logic... */
        }
    }
    ```
  - **Realm Obj-c implementation**: Both before and after client reset callbacks exist as properties on `RLMSyncConfiguration` and are set at initialization.
    ```objective-c
      RLMRealmConfiguration *config = [user configurationWithPartitionValue:partitionValue
                                                            clientResetMode:RLMClientResetModeDiscardLocal
                                                          notifyBeforeReset:beforeBlock
                                                           notifyAfterReset:afterBlock];
    ```
    where `beforeBlock` is of type `RLMClientResetBeforeBlock`. And `afterBlock` is of type `RLMClientResetAfterBlock`.

### Breaking Changes

* Xcode 13.2 is no longer supported when building with Async/Await functions. Use
  Xcode 13.3 to build with Async/Await functionality.

### Fixed

* Adding a Realm Object to a `ObservedResults` or a collections using
  `StateRealmObject` that is managed by the same Realm would throw if the
  Object was frozen and not thawed before hand.
* Setting a Realm Configuration for @ObservedResults using it's initializer
  would be overrode by the Realm Configuration stored in
  `.environment(\.realmConfiguration, ...)` if they did not match
  ([Cocoa #7463](https://github.com/realm/realm-swift/issues/7463), since v10.6.0).
* Fix searchable component filter overriding the initial filter on `@ObservedResults`, (since v10.23.0).
* Comparing `Results`, `LinkingObjects` or `AnyRealmCollection` when using Realm via XCFramework
  would result in compile time errors ([Cocoa #7615](https://github.com/realm/realm-swift/issues/7615), since v10.21.0)
* Opening an encrypted Realm while the keychain is locked on macOS would crash
  ([#7438](https://github.com/realm/realm-swift/issues/7438)).
* Updating subscriptions while refreshing the access token would crash
  ([Core #5343](https://github.com/realm/realm-core/issues/5343), since v10.22.0)
* Fix several race conditions in `SyncSession` related to setting
  `customRequestHeaders` while using the `SyncSession` on a different thread.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.3.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3.

### Internal

* Upgraded realm-core from v11.12.0 to v11.13.0

10.24.2 Release notes (2022-03-18)
=============================================================

### Fixed

* Application would sometimes crash with exceptions like 'KeyNotFound' or
  assertion "has_refs()". Other issues indicating file corruption may also be
  fixed by this. The one mentioned here is the one that lead to solving the
  problem.
  ([Core #5283](https://github.com/realm/realm-core/issues/5283), since v5.0.0)

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.3.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3.

### Internal

* Upgraded realm-core from 11.11.0 to 11.12.0

10.24.1 Release notes (2022-03-14)
=============================================================

Switch to building the Carthage binary with Xcode 13.3. This release contains
no functional changes from 10.24.0.

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.3.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3.

10.24.0 Release notes (2022-03-05)
=============================================================

### Enhancements

* Add ability to use Swift Query syntax in `@ObservedResults`, which allows you
  to filter results using the `where` parameter.

### Fixed

* If a list of objects contains links to objects not included in the
  synchronized partition, collection change notifications for that list could
  be incorrect ([Core #5164](https://github.com/realm/realm-core/issues/5164), since v10.0.0).
* Adding a new flexible sync subscription could crash with
  "Assertion failed: !m_unbind_message_sent" in very specific timing scenarios
  ([Core #5149](https://github.com/realm/realm-core/pull/5149), since v10.22.0).
* Converting floats/doubles into Decimal128 would yield imprecise results
  ([Core #5184](https://github.com/realm/realm-core/pull/5184), since v10.0.0)
* Using accented characters in class and field names in a synchronized Realm
  could result in sync errors ([Core #5196](https://github.com/realm/realm-core/pull/5196), since v10.0.0).
* Calling `Realm.invalidate()` from inside a Realm change notification could
  result in the write transaction which produced the notification not being
  persisted to disk (since v10.22.0).
* When a client reset error which results in the current Realm file being
  backed up and then deleted, deletion errors were ignored as long as the copy
  succeeded. When this happens the deletion of the old file is now scheduled
  for the next launch of the app. ([Core #5180](https://github.com/realm/realm-core/issues/5180), since v2.0.0)
* Fix an error when compiling a watchOS Simulator target not supporting
  Thread-local storage ([#7623](https://github.com/realm/realm-swift/issues/7623), since v10.21.0).
* Add a validation check to report a sensible error if a Realm configuration
  indicates that an in-memory Realm should be encrypted. ([Core #5195](https://github.com/realm/realm-core/issues/5195))
* The Swift package set the linker flags on the wrong target, resulting in
  linker errors when SPM decides to build the core library as a dynamic library
  ([#7266](https://github.com/realm/realm-swift/issues/7266)).
* The download-core task failed if run in an environment without TMPDIR set
  ([#7688](https://github.com/realm/realm-swift/issues/7688), since v10.23.0).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.2.1.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3 beta 3.

### Internal

* Upgraded realm-core from 11.9.0 to 11.11.0

10.23.0 Release notes (2022-02-28)
=============================================================

### Enhancements

* Add `Realm.writeCopy(configuration:)`/`[RLMRealm writeCopyForConfiguration:]` which gives the
  following functionality:
    - Export a local non-sync Realm to be used with MongoDB Realm Sync
      when the configuration is derived from a sync `RLMUser`/`User`.
    - Write a copy of a local Realm to a destination specified in the configuration.
    - Write a copy of a synced Realm in use with user A, and open it with user B.
    - Note that migrations may be required when using a local realm configuration to open a realm file that
      was copied from a synchronized realm.

  An exception will be thrown if a Realm exists at the destination.
* Add a `seedFilePath` option to `RLMRealmConfiguration` and `Configuration`. If this
  option is set then instead of creating an empty Realm, the realm at the `seedFilePath` will
  be copied to the `fileURL` of the new Realm. If a Realm file already exists at the
  desitnation path, the seed file will not be copied and the already existing Realm
  will be opened instead. Note that to use this parameter with a synced Realm configuration
  the seed Realm must be appropriately copied to a destination with
  `Realm.writeCopy(configuration:)`/`[RLMRealm writeCopyForConfiguration:]` first.
* Add ability to permanently delete a User from a MongoDB Realm app. This can
  be invoked with `User.delete()`/`[RLMUser deleteWithCompletion:]`.
* Add `NSCopying` conformance to `RLMDecimal128` and `RLMObjectId`.
* Add Xcode 13.3 binaries to the release package (and remove 13.0).

### Fixed

* Add support of arm64 in Carthage build ([#7154](https://github.com/realm/realm-cocoa/issues/7154)
* Adding missing support for `IN` queries to primitives types on Type Safe Queries.
  ```swift
  let persons = realm.objects(Person.self).where {
    let acceptableNames = ["Tom", "James", "Tyler"]
    $0.name.in([acceptableNames])
  }
  ```
  ([Cocoa #7633](https://github.com/realm/realm-swift/issues/7633), since v10.19.0)
* Work around a compiler crash when building with Swift 5.6 / Xcode 13.3.
  CustomPersistable's PersistedType must now always be a built-in type rather
  than possibly another CustomPersistable type as Swift 5.6 has removed support
  for infinitely-recursive associated types ([#7654](https://github.com/realm/realm-swift/issues/7654)).
* Fix redundant call to filter on `@ObservedResults` from `searchable`
  component (since v10.19.0).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.2.1.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.3 beta 3.

10.22.0 Release notes (2022-01-25)
=============================================================

### Enhancements

* Add beta support for flexible sync. See the [backend](https://docs.mongodb.com/realm/sync/data-access-patterns/flexible-sync/) and [SDK](https://docs.mongodb.com/realm/sdk/swift/examples/flexible-sync/) documentation for more information. Please report any issues with the beta through Github.

### Fixed

* UserIdentity metadata table grows indefinitely. ([#5152](https://github.com/realm/realm-core/issues/5152), since v10.20.0)
* We now report a useful error message when opening a sync Realm in non-sync mode or vice-versa.([#5161](https://github.com/realm/realm-core/pull/5161), since v5.0.0).

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.2.1.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.2.1.

### Internal

* Upgraded realm-core from 11.8.0 to 11.9.0

10.21.1 Release notes (2022-01-12)
=============================================================

### Fixed

* The sync client will now drain the receive queue when a send fails with
  ECONNRESET, ensuring that any error message from the server gets received and
  processed. ([#5078](https://github.com/realm/realm-core/pull/5078))
* Schema validation was missing for embedded objects in sets, resulting in an
  unhelpful error being thrown if a Realm object subclass contained one (since v10.0.0).
* Opening a Realm with a schema that has an orphaned embedded object type
  performed an extra empty write transaction (since v10.0.0).
* Freezing a Realm with a schema that has orphaned embedded object types threw
  a "Wrong transactional state" exception (since v10.19.0).
* `@sum` and `@avg` queries on Dictionaries of floats or doubles used too much
  precision for intermediates, resulting in incorrect rounding (since v10.5.0).
* Change the exception message for calling refresh on an immutable Realm from
  "Continuous transaction through DB object without history information." to
  "Can't refresh a read-only Realm."
  ([#5061](https://github.com/realm/realm-core/issues/5061), since v10.8.0).
* Queries of the form "link.collection.@sum = 0" where `link` is null matched
  when `collection` was a List or Set, but not a Dictionary
  ([#5080](https://github.com/realm/realm-core/pull/5080), since v10.8.0).
* Types which require custom obj-c bridging (such as `PersistableEnum` or
  `CustomPersistable`) would crash with exceptions mentioning `__SwiftValue` in
  a variety of places on iOS versions older than iOS 14
  ([#7604](https://github.com/realm/realm-swift/issues/7604), since v10.21.0)

### Compatibility

* Realm Studio: 11.0.0 or later.
* APIs are backwards compatible with all previous releases in the 10.x.y series.
* Carthage release for Swift is built with Xcode 13.2.1.
* CocoaPods: 1.10 or later.
* Xcode: 12.4-13.2.1.

### Internal

* Upgraded realm-core from 11.6.1 to 11.8.0.

10.21.0 Release notes (2022-01-10)
=============================================================

### Enhancements

* Add `metadata` property to `RLMUserProfile`/`UserProfile`.
* Add class `Projection` to allow creation of light weight view models out of Realm Objects.
```swift
public class Person: Object {
    @Persisted var firstName = ""
    @Persisted var lastName = ""
    @Persisted var address: Address? = nil
    @Persisted var friends = List<Person>()
}

public class Address: EmbeddedObject {
    @Persisted var city: String = ""
    @Persisted var country = ""
}

class PersonProjection: Projection<Person> {
    // `Person.firstName` will have same name and type
    @Projected(\Person.firstName) var firstName
    // There will be the only String for `city` of the original object `Address`
    @Projected(\Person.address.city) var homeCity
    // List<Person> will be mapped to list of firstNames
    @Projected(\Person.friends.projectTo.firstName) var firstFriendsName: ProjectedCollection<String>
}

// `people` will contain projections for every `Person` object in the `realm`
let people: Results<PersonProjection> = realm.objects(PersonProjection.self)
```
* Greatly improve performance of reading AnyRealmValue and enum types from
  Realm collections.
* Allow using Swift enums which conform to `PersistableEnum` as the value type
  for all Realm co
Download .txt
gitextract_n99e6kjn/

├── .dir-locals.el
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yml
│   │   ├── config.yml
│   │   └── feature.yml
│   └── workflows/
│       ├── build-binaries.yml
│       ├── build-pr.yml
│       ├── check-changelog.yml
│       ├── master-push.yml
│       └── publish-release.yml
├── .gitignore
├── .ruby-version
├── .swiftlint.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Configuration/
│   ├── Base.xcconfig
│   ├── Debug.xcconfig
│   ├── Realm/
│   │   ├── PrivateSymbols.txt
│   │   ├── Realm.xcconfig
│   │   └── Tests.xcconfig
│   ├── RealmSwift/
│   │   ├── RealmSwift.xcconfig
│   │   └── Tests.xcconfig
│   ├── Release.xcconfig
│   ├── Static.xcconfig
│   ├── SwiftUITestHost.xcconfig
│   ├── SwiftUITests.xcconfig
│   ├── TestBase.xcconfig
│   └── TestHost.xcconfig
├── Gemfile
├── LICENSE
├── Package.swift
├── README.md
├── Realm/
│   ├── PrivacyInfo.xcprivacy
│   ├── RLMAccessor.h
│   ├── RLMAccessor.hpp
│   ├── RLMAccessor.mm
│   ├── RLMArray.h
│   ├── RLMArray.mm
│   ├── RLMArray_Private.h
│   ├── RLMArray_Private.hpp
│   ├── RLMAsyncTask.h
│   ├── RLMAsyncTask.mm
│   ├── RLMAsyncTask_Private.h
│   ├── RLMClassInfo.hpp
│   ├── RLMClassInfo.mm
│   ├── RLMCollection.h
│   ├── RLMCollection.mm
│   ├── RLMCollection_Private.h
│   ├── RLMCollection_Private.hpp
│   ├── RLMConstants.h
│   ├── RLMConstants.m
│   ├── RLMDecimal128.h
│   ├── RLMDecimal128.mm
│   ├── RLMDecimal128_Private.hpp
│   ├── RLMDictionary.h
│   ├── RLMDictionary.mm
│   ├── RLMDictionary_Private.h
│   ├── RLMDictionary_Private.hpp
│   ├── RLMEmbeddedObject.h
│   ├── RLMEmbeddedObject.mm
│   ├── RLMError.h
│   ├── RLMError.mm
│   ├── RLMError_Private.hpp
│   ├── RLMGeospatial.h
│   ├── RLMGeospatial.mm
│   ├── RLMGeospatial_Private.hpp
│   ├── RLMLogger.h
│   ├── RLMLogger.mm
│   ├── RLMLogger_Private.h
│   ├── RLMManagedArray.mm
│   ├── RLMManagedDictionary.mm
│   ├── RLMManagedSet.mm
│   ├── RLMMigration.h
│   ├── RLMMigration.mm
│   ├── RLMMigration_Private.h
│   ├── RLMObject.h
│   ├── RLMObject.mm
│   ├── RLMObjectBase.h
│   ├── RLMObjectBase.mm
│   ├── RLMObjectBase_Dynamic.h
│   ├── RLMObjectBase_Private.h
│   ├── RLMObjectId.h
│   ├── RLMObjectId.mm
│   ├── RLMObjectId_Private.hpp
│   ├── RLMObjectSchema.h
│   ├── RLMObjectSchema.mm
│   ├── RLMObjectSchema_Private.h
│   ├── RLMObjectSchema_Private.hpp
│   ├── RLMObjectStore.h
│   ├── RLMObjectStore.mm
│   ├── RLMObject_Private.h
│   ├── RLMObject_Private.hpp
│   ├── RLMObservation.hpp
│   ├── RLMObservation.mm
│   ├── RLMPredicateUtil.hpp
│   ├── RLMPredicateUtil.mm
│   ├── RLMPrefix.h
│   ├── RLMProperty.h
│   ├── RLMProperty.mm
│   ├── RLMProperty_Private.h
│   ├── RLMProperty_Private.hpp
│   ├── RLMQueryUtil.hpp
│   ├── RLMQueryUtil.mm
│   ├── RLMRealm.h
│   ├── RLMRealm.mm
│   ├── RLMRealmConfiguration.h
│   ├── RLMRealmConfiguration.mm
│   ├── RLMRealmConfiguration_Private.h
│   ├── RLMRealmConfiguration_Private.hpp
│   ├── RLMRealmUtil.hpp
│   ├── RLMRealmUtil.mm
│   ├── RLMRealm_Dynamic.h
│   ├── RLMRealm_Private.h
│   ├── RLMRealm_Private.hpp
│   ├── RLMResults.h
│   ├── RLMResults.mm
│   ├── RLMResults_Private.h
│   ├── RLMResults_Private.hpp
│   ├── RLMScheduler.h
│   ├── RLMScheduler.mm
│   ├── RLMSchema.h
│   ├── RLMSchema.mm
│   ├── RLMSchema_Private.h
│   ├── RLMSchema_Private.hpp
│   ├── RLMSectionedResults.h
│   ├── RLMSectionedResults.mm
│   ├── RLMSectionedResults_Private.hpp
│   ├── RLMSet.h
│   ├── RLMSet.mm
│   ├── RLMSet_Private.h
│   ├── RLMSet_Private.hpp
│   ├── RLMSwiftBridgingHeader.h
│   ├── RLMSwiftCollectionBase.h
│   ├── RLMSwiftCollectionBase.mm
│   ├── RLMSwiftObject.h
│   ├── RLMSwiftProperty.h
│   ├── RLMSwiftSupport.h
│   ├── RLMSwiftSupport.m
│   ├── RLMSwiftValueStorage.h
│   ├── RLMSwiftValueStorage.mm
│   ├── RLMThreadSafeReference.h
│   ├── RLMThreadSafeReference.mm
│   ├── RLMThreadSafeReference_Private.hpp
│   ├── RLMUUID.mm
│   ├── RLMUUID_Private.hpp
│   ├── RLMUtil.hpp
│   ├── RLMUtil.mm
│   ├── RLMValue.h
│   ├── RLMValue.mm
│   ├── Realm-Info.plist
│   ├── Realm.h
│   ├── Realm.modulemap
│   ├── Swift/
│   │   └── RLMSupport.swift
│   ├── TestUtils/
│   │   ├── RLMChildProcessEnvironment.m
│   │   ├── RLMMultiProcessTestCase.m
│   │   ├── RLMTestCase.m
│   │   ├── RLMTestObjects.m
│   │   ├── RealmTestSupport.h
│   │   ├── TestUtils.mm
│   │   └── include/
│   │       ├── RLMAssertions.h
│   │       ├── RLMChildProcessEnvironment.h
│   │       ├── RLMMultiProcessTestCase.h
│   │       ├── RLMTestCase.h
│   │       ├── RLMTestObjects.h
│   │       └── TestUtils.h
│   └── Tests/
│       ├── ArrayPropertyTests.m
│       ├── AsyncTests.mm
│       ├── CompactionTests.m
│       ├── Decimal128Tests.m
│       ├── DictionaryPropertyTests.m
│       ├── DynamicTests.m
│       ├── EncryptionTests.mm
│       ├── EnumeratorTests.m
│       ├── InterprocessTests.m
│       ├── KVOTests.mm
│       ├── LinkTests.m
│       ├── LinkingObjectsTests.mm
│       ├── MigrationTests.mm
│       ├── NotificationTests.m
│       ├── ObjectCreationTests.mm
│       ├── ObjectIdTests.m
│       ├── ObjectInterfaceTests.m
│       ├── ObjectSchemaTests.m
│       ├── ObjectTests.m
│       ├── PerformanceTests.m
│       ├── PredicateUtilTests.mm
│       ├── PrimitiveArrayPropertyTests.m
│       ├── PrimitiveArrayPropertyTests.tpl.m
│       ├── PrimitiveDictionaryPropertyTests.m
│       ├── PrimitiveDictionaryPropertyTests.tpl.m
│       ├── PrimitiveRLMValuePropertyTests.m
│       ├── PrimitiveRLMValuePropertyTests.tpl.m
│       ├── PrimitiveSetPropertyTests.m
│       ├── PrimitiveSetPropertyTests.tpl.m
│       ├── PropertyTests.m
│       ├── QueryTests.m
│       ├── RLMValueTests.m
│       ├── RealmConfigurationTests.mm
│       ├── RealmTests-Info.plist
│       ├── RealmTests.mm
│       ├── ResultsTests.m
│       ├── SchemaTests.mm
│       ├── SectionedResultsTests.m
│       ├── SetPropertyTests.m
│       ├── Swift/
│       │   ├── RLMTestCaseUtils.swift
│       │   ├── RealmObjcSwiftTests-Info.plist
│       │   ├── Swift-Tests-Bridging-Header.h
│       │   ├── SwiftArrayPropertyTests.swift
│       │   ├── SwiftArrayTests.swift
│       │   ├── SwiftDynamicTests.swift
│       │   ├── SwiftLinkTests.swift
│       │   ├── SwiftObjectInterfaceTests.swift
│       │   ├── SwiftPropertyTypeTest.swift
│       │   ├── SwiftRLMDictionaryTests.swift
│       │   ├── SwiftRealmTests.swift
│       │   ├── SwiftSchemaTests.swift
│       │   ├── SwiftSetPropertyTests.swift
│       │   ├── SwiftSetTests.swift
│       │   ├── SwiftTestObjects.swift
│       │   └── SwiftUnicodeTests.swift
│       ├── SwiftUITestHost/
│       │   ├── Info.plist
│       │   ├── LaunchScreen.storyboard
│       │   ├── Objects.swift
│       │   └── SwiftUITestHostApp.swift
│       ├── SwiftUITestHostUITests/
│       │   ├── Info.plist
│       │   └── SwiftUITestHostUITests.swift
│       ├── TestHost/
│       │   ├── Info.plist
│       │   └── main.m
│       ├── ThreadSafeReferenceTests.m
│       ├── TransactionTests.m
│       ├── UnicodeTests.m
│       ├── UtilTests.mm
│       ├── array_tests.py
│       ├── dictionary_tests.py
│       ├── mixed_tests.py
│       └── set_tests.py
├── Realm.podspec
├── Realm.xcodeproj/
│   ├── Realm.xcworkspace/
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   ├── project.pbxproj
│   └── xcshareddata/
│       ├── xcbaselines/
│       │   ├── 5D660FD71BE98C7C0021E04F.xcbaseline/
│       │   │   ├── 6890B8D9-CE81-403E-8EF6-B95A367D65B5.plist
│       │   │   ├── B87A7896-8B70-4814-B20D-7CD723D62868.plist
│       │   │   └── Info.plist
│       │   └── E856D1DE195614A400FB2FCF.xcbaseline/
│       │       ├── 2EB6396F-9FD1-4243-AA83-2D9F9D4DD919.plist
│       │       ├── 3AE81604-3FF9-49E2-A414-9B18BEEAE28F.plist
│       │       ├── AAC6BA1A-785D-4850-B3EC-68BC9F1D3EEF.plist
│       │       └── Info.plist
│       └── xcschemes/
│           ├── CI.xcscheme
│           ├── Realm.xcscheme
│           ├── RealmSwift.xcscheme
│           ├── SwiftLint.xcscheme
│           ├── SwiftUITestHost.xcscheme
│           ├── SwiftUITests.xcscheme
│           └── TestHost.xcscheme
├── RealmSwift/
│   ├── Aliases.swift
│   ├── AnyRealmValue.swift
│   ├── Combine.swift
│   ├── CustomPersistable.swift
│   ├── Decimal128.swift
│   ├── EmbeddedObject.swift
│   ├── Error.swift
│   ├── Geospatial.swift
│   ├── Impl/
│   │   ├── BasicTypes.swift
│   │   ├── CollectionAccess.swift
│   │   ├── ComplexTypes.swift
│   │   ├── KeyPathStrings.swift
│   │   ├── ObjcBridgeable.swift
│   │   ├── Persistable.swift
│   │   ├── PropertyAccessors.swift
│   │   ├── RealmCollectionImpl.swift
│   │   └── SchemaDiscovery.swift
│   ├── LinkingObjects.swift
│   ├── List.swift
│   ├── Map.swift
│   ├── Migration.swift
│   ├── MutableSet.swift
│   ├── Object.swift
│   ├── ObjectId.swift
│   ├── ObjectSchema.swift
│   ├── ObjectiveCSupport+AnyRealmValue.swift
│   ├── ObjectiveCSupport.swift
│   ├── Optional.swift
│   ├── PersistedProperty.swift
│   ├── PrivacyInfo.xcprivacy
│   ├── Projection.swift
│   ├── Property.swift
│   ├── Query.swift
│   ├── Realm.swift
│   ├── RealmCollection.swift
│   ├── RealmConfiguration.swift
│   ├── RealmKeyedCollection.swift
│   ├── RealmProperty.swift
│   ├── Results.swift
│   ├── Schema.swift
│   ├── SectionedResults.swift
│   ├── SortDescriptor.swift
│   ├── SwiftUI.swift
│   ├── Tests/
│   │   ├── AnyRealmValueTests.swift
│   │   ├── CodableTests.swift
│   │   ├── CombineTests.swift
│   │   ├── CompactionTests.swift
│   │   ├── CustomColumnNameTests.swift
│   │   ├── CustomObjectCreationTests.swift
│   │   ├── CustomPersistableTestObjects.swift
│   │   ├── Decimal128Tests.swift
│   │   ├── GeospatialTests.swift
│   │   ├── KVOTests.swift
│   │   ├── KeyPathTests.swift
│   │   ├── ListTests.swift
│   │   ├── MapTests.swift
│   │   ├── MigrationTests.swift
│   │   ├── MixedCollectionTest.swift
│   │   ├── ModernKVOTests.swift
│   │   ├── ModernObjectAccessorTests.swift
│   │   ├── ModernObjectCreationTests.swift
│   │   ├── ModernObjectTests.swift
│   │   ├── ModernTestObjects.swift
│   │   ├── MutableSetTests.swift
│   │   ├── ObjectAccessorTests.swift
│   │   ├── ObjectCreationTests.swift
│   │   ├── ObjectCustomPropertiesTests.swift
│   │   ├── ObjectIdTests.swift
│   │   ├── ObjectSchemaInitializationTests.swift
│   │   ├── ObjectSchemaTests.swift
│   │   ├── ObjectTests.swift
│   │   ├── ObjectiveCSupportTests.swift
│   │   ├── PerformanceTests.swift
│   │   ├── PrimitiveListTests.swift
│   │   ├── PrimitiveMapTests.swift
│   │   ├── PrimitiveMutableSetTests.swift
│   │   ├── ProjectedCollectTests.swift
│   │   ├── ProjectionTests.swift
│   │   ├── PropertyTests.swift
│   │   ├── QueryTests.swift
│   │   ├── QueryTests.swift.gyb
│   │   ├── RealmCollectionTypeTests.swift
│   │   ├── RealmConfigurationTests.swift
│   │   ├── RealmPropertyTests.swift
│   │   ├── RealmSwiftTests-BridgingHeader.h
│   │   ├── RealmTests.swift
│   │   ├── SchemaTests.swift
│   │   ├── SectionedResultsTests.swift
│   │   ├── SortDescriptorTests.swift
│   │   ├── SwiftLinkTests.swift
│   │   ├── SwiftTestObjects.swift
│   │   ├── SwiftUITests.swift
│   │   ├── SwiftUnicodeTests.swift
│   │   ├── TestCase.swift
│   │   ├── TestUtils.swift
│   │   ├── TestValueFactory.swift
│   │   └── ThreadSafeReferenceTests.swift
│   ├── ThreadSafeReference.swift
│   └── Util.swift
├── RealmSwift.podspec
├── SUPPORT.md
├── build.sh
├── contrib/
│   ├── Development.md
│   ├── ReleaseProcess.md
│   ├── SignXCFramework.md
│   └── UpgradingXcode.md
├── dependencies.list
├── docs/
│   ├── README.md
│   ├── custom_head.html
│   ├── example-projects.md
│   ├── guides/
│   │   ├── crud/
│   │   │   ├── create.md
│   │   │   ├── crud.md
│   │   │   ├── delete.md
│   │   │   ├── filter-data.md
│   │   │   ├── react-to-changes.md
│   │   │   ├── read.md
│   │   │   ├── threading.md
│   │   │   └── update.md
│   │   ├── logging.md
│   │   ├── model-data/
│   │   │   ├── change-an-object-model.md
│   │   │   ├── model-data.md
│   │   │   ├── object-models.md
│   │   │   ├── relationships.md
│   │   │   └── supported-types.md
│   │   ├── quick-start.md
│   │   ├── realm-files/
│   │   │   ├── bundle-a-realm.md
│   │   │   ├── compacting.md
│   │   │   ├── configure-and-open-a-realm.md
│   │   │   ├── delete-a-realm.md
│   │   │   ├── encrypt-a-realm.md
│   │   │   ├── realm-files.md
│   │   │   └── tvos.md
│   │   ├── swift-concurrency.md
│   │   ├── swiftui/
│   │   │   ├── configure-and-open-realm.md
│   │   │   ├── filter-data.md
│   │   │   ├── model-data/
│   │   │   │   ├── change-an-object-model.md
│   │   │   │   └── define-a-realm-object-model.md
│   │   │   ├── pass-realm-data-between-views.md
│   │   │   ├── react-to-changes.md
│   │   │   ├── swiftui-previews.md
│   │   │   ├── swiftui-tutorial.md
│   │   │   └── write.md
│   │   ├── swiftui.md
│   │   ├── test-and-debug.md
│   │   ├── use-realm-with-actors.md
│   │   └── xcode-playgrounds.md
│   └── install.md
├── examples/
│   ├── README.md
│   ├── installation/
│   │   ├── .gitignore
│   │   ├── Carthage.xcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── CocoaPods.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── App.xcscheme
│   │   ├── CocoaPods.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   ├── Podfile
│   │   ├── Source/
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AccentColor.colorset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── ObjCImport.m
│   │   │   ├── Preview Content/
│   │   │   │   └── Preview Assets.xcassets/
│   │   │   │       └── Contents.json
│   │   │   ├── SwiftExample.entitlements
│   │   │   └── SwiftExampleApp.swift
│   │   ├── Static/
│   │   │   ├── StaticExample/
│   │   │   │   ├── Base.lproj/
│   │   │   │   │   ├── LaunchScreen.xib
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   └── AppIcon.appiconset/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   └── main.m
│   │   │   └── StaticExample.xcodeproj/
│   │   │       ├── project.pbxproj
│   │   │       └── xcshareddata/
│   │   │           └── xcschemes/
│   │   │               └── StaticExample.xcscheme
│   │   ├── SubRealm/
│   │   │   ├── SubRealm.podspec
│   │   │   └── SubRealm.swift
│   │   ├── SwiftPackageManager.notxcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── SwiftPackageManagerDynamic.notxcodeproj/
│   │   │   └── project.pbxproj
│   │   ├── XCFramework.xcodeproj/
│   │   │   └── project.pbxproj
│   │   └── build.rb
│   ├── ios/
│   │   ├── objc/
│   │   │   ├── .gitignore
│   │   │   ├── Backlink/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Backlink-Info.plist
│   │   │   │   └── main.m
│   │   │   ├── Common/
│   │   │   │   └── LaunchScreen.xib
│   │   │   ├── Encryption/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Encryption-Info.plist
│   │   │   │   ├── LabelViewController.h
│   │   │   │   ├── LabelViewController.m
│   │   │   │   └── main.m
│   │   │   ├── Extension/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Extension.entitlements
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Tick.h
│   │   │   │   ├── Tick.m
│   │   │   │   └── main.m
│   │   │   ├── GroupedTableView/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── LaunchImage.launchimage/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── Info.plist
│   │   │   │   ├── TableViewController.h
│   │   │   │   ├── TableViewController.m
│   │   │   │   └── main.m
│   │   │   ├── Migration/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Examples/
│   │   │   │   │   ├── Example_v0.h
│   │   │   │   │   ├── Example_v1.h
│   │   │   │   │   ├── Example_v2.h
│   │   │   │   │   ├── Example_v3.h
│   │   │   │   │   ├── Example_v4.h
│   │   │   │   │   └── Example_v5.h
│   │   │   │   ├── Migration-Info.plist
│   │   │   │   ├── RealmTemplates/
│   │   │   │   │   ├── default-v0.realm
│   │   │   │   │   ├── default-v1.realm
│   │   │   │   │   ├── default-v2.realm
│   │   │   │   │   ├── default-v3.realm
│   │   │   │   │   ├── default-v4.realm
│   │   │   │   │   └── default-v5.realm
│   │   │   │   └── main.m
│   │   │   ├── REST/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── REST-Info.plist
│   │   │   │   ├── Venue.h
│   │   │   │   ├── Venue.m
│   │   │   │   └── main.m
│   │   │   ├── RealmExamples.xcodeproj/
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── xcshareddata/
│   │   │   │       └── xcschemes/
│   │   │   │           ├── Backlink.xcscheme
│   │   │   │           ├── Encryption.xcscheme
│   │   │   │           ├── Extension.xcscheme
│   │   │   │           ├── GroupedTableView.xcscheme
│   │   │   │           ├── Migration.xcscheme
│   │   │   │           ├── REST.xcscheme
│   │   │   │           ├── Simple.xcscheme
│   │   │   │           ├── TableView.xcscheme
│   │   │   │           └── TodayExtension.xcscheme
│   │   │   ├── RealmExamples.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       ├── RealmExamples.xcscmblueprint
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   ├── Simple/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Simple-Info.plist
│   │   │   │   └── main.m
│   │   │   ├── TableView/
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Images.xcassets/
│   │   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── LaunchImage.launchimage/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── TableView-Info.plist
│   │   │   │   ├── TableViewController.h
│   │   │   │   ├── TableViewController.m
│   │   │   │   └── main.m
│   │   │   └── TodayExtension/
│   │   │       ├── Info.plist
│   │   │       ├── MainInterface.storyboard
│   │   │       ├── TodayExtension.entitlements
│   │   │       ├── TodayViewController.h
│   │   │       └── TodayViewController.m
│   │   └── swift/
│   │       ├── .gitignore
│   │       ├── AppClip/
│   │       │   ├── AppClip.entitlements
│   │       │   ├── AppClipApp.swift
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Info.plist
│   │       │   └── Preview Content/
│   │       │       └── Preview Assets.xcassets/
│   │       │           └── Contents.json
│   │       ├── AppClipParent/
│   │       │   ├── AppClipParent.entitlements
│   │       │   ├── AppClipParentApp.swift
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Constants.swift
│   │       │   ├── ContentView.swift
│   │       │   ├── DemoObject.swift
│   │       │   ├── Info.plist
│   │       │   └── Preview Content/
│   │       │       └── Preview Assets.xcassets/
│   │       │           └── Contents.json
│   │       ├── Backlink/
│   │       │   ├── AppDelegate.swift
│   │       │   └── Info.plist
│   │       ├── Common/
│   │       │   └── LaunchScreen.xib
│   │       ├── Encryption/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Info.plist
│   │       │   └── ViewController.swift
│   │       ├── GettingStarted.playground/
│   │       │   ├── Contents.swift
│   │       │   └── contents.xcplayground
│   │       ├── GroupedTableView/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Images.xcassets/
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── LaunchImage.launchimage/
│   │       │   │       └── Contents.json
│   │       │   ├── Info.plist
│   │       │   └── TableViewController.swift
│   │       ├── ListSwiftUI/
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── Info.plist
│   │       │   ├── Preview Content/
│   │       │   │   └── Preview Assets.xcassets/
│   │       │   │       └── Contents.json
│   │       │   └── Views/
│   │       │       ├── App.swift
│   │       │       └── ContentView.swift
│   │       ├── Migration/
│   │       │   ├── AppDelegate.swift
│   │       │   ├── Examples/
│   │       │   │   ├── Example_v0.swift
│   │       │   │   ├── Example_v1.swift
│   │       │   │   ├── Example_v2.swift
│   │       │   │   ├── Example_v3.swift
│   │       │   │   ├── Example_v4.swift
│   │       │   │   └── Example_v5.swift
│   │       │   ├── Info.plist
│   │       │   ├── Migration.xcconfig
│   │       │   ├── README.md
│   │       │   └── RealmTemplates/
│   │       │       ├── default-v0.realm
│   │       │       ├── default-v1.realm
│   │       │       ├── default-v2.realm
│   │       │       ├── default-v3.realm
│   │       │       ├── default-v4.realm
│   │       │       └── default-v5.realm
│   │       ├── PlaygroundFrameworkWrapper/
│   │       │   ├── Info.plist
│   │       │   └── PlaygroundFrameworkWrapper.swift
│   │       ├── Projections/
│   │       │   ├── Assets.xcassets/
│   │       │   │   ├── AccentColor.colorset/
│   │       │   │   │   └── Contents.json
│   │       │   │   ├── AppIcon.appiconset/
│   │       │   │   │   └── Contents.json
│   │       │   │   └── Contents.json
│   │       │   ├── ContentView.swift
│   │       │   ├── Info.plist
│   │       │   ├── Preview Content/
│   │       │   │   └── Preview Assets.xcassets/
│   │       │   │       └── Contents.json
│   │       │   └── ProjectionsApp.swift
│   │       ├── RealmExamples.xcodeproj/
│   │       │   ├── project.pbxproj
│   │       │   └── xcshareddata/
│   │       │       └── xcschemes/
│   │       │           ├── AppClip.xcscheme
│   │       │           ├── Backlink.xcscheme
│   │       │           ├── Encryption.xcscheme
│   │       │           ├── GroupedTableView.xcscheme
│   │       │           ├── Migration.xcscheme
│   │       │           ├── Simple.xcscheme
│   │       │           └── TableView.xcscheme
│   │       ├── RealmExamples.xcworkspace/
│   │       │   ├── contents.xcworkspacedata
│   │       │   └── xcshareddata/
│   │       │       ├── IDEWorkspaceChecks.plist
│   │       │       ├── RealmExamples.xcscmblueprint
│   │       │       └── WorkspaceSettings.xcsettings
│   │       ├── Simple/
│   │       │   ├── AppDelegate.swift
│   │       │   └── Info.plist
│   │       └── TableView/
│   │           ├── AppDelegate.swift
│   │           ├── Images.xcassets/
│   │           │   ├── AppIcon.appiconset/
│   │           │   │   └── Contents.json
│   │           │   └── LaunchImage.launchimage/
│   │           │       └── Contents.json
│   │           ├── Info.plist
│   │           └── TableViewController.swift
│   ├── osx/
│   │   └── objc/
│   │       ├── JSONImport/
│   │       │   ├── Person.h
│   │       │   ├── Person.m
│   │       │   ├── main.m
│   │       │   └── persons.json
│   │       ├── RealmExamples.xcodeproj/
│   │       │   ├── project.pbxproj
│   │       │   └── xcshareddata/
│   │       │       └── xcschemes/
│   │       │           └── JSONImport.xcscheme
│   │       └── RealmExamples.xcworkspace/
│   │           ├── contents.xcworkspacedata
│   │           └── xcshareddata/
│   │               └── WorkspaceSettings.xcsettings
│   └── tvos/
│       ├── objc/
│       │   ├── DownloadCache/
│       │   │   ├── AppDelegate.h
│       │   │   ├── AppDelegate.m
│       │   │   ├── Assets.xcassets/
│       │   │   │   ├── App Icon & Top Shelf Image.brandassets/
│       │   │   │   │   ├── App Icon - Large.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── App Icon - Small.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── Contents.json
│       │   │   │   │   └── Top Shelf Image.imageset/
│       │   │   │   │       └── Contents.json
│       │   │   │   ├── Contents.json
│       │   │   │   └── LaunchImage.launchimage/
│       │   │   │       └── Contents.json
│       │   │   ├── Base.lproj/
│       │   │   │   └── Main.storyboard
│       │   │   ├── Info.plist
│       │   │   ├── RepositoriesViewController.h
│       │   │   ├── RepositoriesViewController.m
│       │   │   ├── Repository.h
│       │   │   ├── Repository.m
│       │   │   ├── RepositoryCell.h
│       │   │   ├── RepositoryCell.m
│       │   │   └── main.m
│       │   ├── PreloadedData/
│       │   │   ├── AppDelegate.h
│       │   │   ├── AppDelegate.m
│       │   │   ├── Assets.xcassets/
│       │   │   │   ├── App Icon & Top Shelf Image.brandassets/
│       │   │   │   │   ├── App Icon - Large.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── App Icon - Small.imagestack/
│       │   │   │   │   │   ├── Back.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   ├── Contents.json
│       │   │   │   │   │   ├── Front.imagestacklayer/
│       │   │   │   │   │   │   ├── Content.imageset/
│       │   │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   │   └── Contents.json
│       │   │   │   │   │   └── Middle.imagestacklayer/
│       │   │   │   │   │       ├── Content.imageset/
│       │   │   │   │   │       │   └── Contents.json
│       │   │   │   │   │       └── Contents.json
│       │   │   │   │   ├── Contents.json
│       │   │   │   │   └── Top Shelf Image.imageset/
│       │   │   │   │       └── Contents.json
│       │   │   │   ├── Contents.json
│       │   │   │   └── LaunchImage.launchimage/
│       │   │   │       └── Contents.json
│       │   │   ├── Base.lproj/
│       │   │   │   └── Main.storyboard
│       │   │   ├── Info.plist
│       │   │   ├── Place.h
│       │   │   ├── Place.m
│       │   │   ├── PlacesViewController.h
│       │   │   ├── PlacesViewController.m
│       │   │   └── main.m
│       │   ├── RealmExamples.xcodeproj/
│       │   │   ├── project.pbxproj
│       │   │   └── xcshareddata/
│       │   │       └── xcschemes/
│       │   │           ├── DownloadCache.xcscheme
│       │   │           └── PreloadedData.xcscheme
│       │   └── RealmExamples.xcworkspace/
│       │       ├── contents.xcworkspacedata
│       │       └── xcshareddata/
│       │           └── WorkspaceSettings.xcsettings
│       └── swift/
│           ├── DownloadCache/
│           │   ├── AppDelegate.swift
│           │   ├── Assets.xcassets/
│           │   │   ├── App Icon & Top Shelf Image.brandassets/
│           │   │   │   ├── App Icon - Large.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── App Icon - Small.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── Contents.json
│           │   │   │   └── Top Shelf Image.imageset/
│           │   │   │       └── Contents.json
│           │   │   ├── Contents.json
│           │   │   └── LaunchImage.launchimage/
│           │   │       └── Contents.json
│           │   ├── Base.lproj/
│           │   │   └── Main.storyboard
│           │   ├── Info.plist
│           │   ├── RepositoriesViewController.swift
│           │   ├── Repository.swift
│           │   └── RepositoryCell.swift
│           ├── PreloadedData/
│           │   ├── AppDelegate.swift
│           │   ├── Assets.xcassets/
│           │   │   ├── App Icon & Top Shelf Image.brandassets/
│           │   │   │   ├── App Icon - Large.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── App Icon - Small.imagestack/
│           │   │   │   │   ├── Back.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   ├── Contents.json
│           │   │   │   │   ├── Front.imagestacklayer/
│           │   │   │   │   │   ├── Content.imageset/
│           │   │   │   │   │   │   └── Contents.json
│           │   │   │   │   │   └── Contents.json
│           │   │   │   │   └── Middle.imagestacklayer/
│           │   │   │   │       ├── Content.imageset/
│           │   │   │   │       │   └── Contents.json
│           │   │   │   │       └── Contents.json
│           │   │   │   ├── Contents.json
│           │   │   │   └── Top Shelf Image.imageset/
│           │   │   │       └── Contents.json
│           │   │   ├── Contents.json
│           │   │   └── LaunchImage.launchimage/
│           │   │       └── Contents.json
│           │   ├── Base.lproj/
│           │   │   └── Main.storyboard
│           │   ├── Info.plist
│           │   ├── Place.swift
│           │   └── PlacesViewController.swift
│           ├── RealmExamples.xcodeproj/
│           │   ├── project.pbxproj
│           │   └── xcshareddata/
│           │       └── xcschemes/
│           │           ├── DownloadCache.xcscheme
│           │           └── PreloadedData.xcscheme
│           └── RealmExamples.xcworkspace/
│               ├── contents.xcworkspacedata
│               └── xcshareddata/
│                   ├── RealmExamples.xcscmblueprint
│                   └── WorkspaceSettings.xcsettings
├── plugin/
│   ├── README.md
│   ├── RealmPlugin/
│   │   ├── RLMPRealmPlugin.h
│   │   ├── RLMPRealmPlugin.m
│   │   ├── RLMPSimulatorManager.h
│   │   ├── RLMPSimulatorManager.m
│   │   ├── RealmPlugin-Info.plist
│   │   ├── RealmPlugin-Prefix.pch
│   │   └── en.lproj/
│   │       └── InfoPlist.strings
│   ├── RealmPlugin.xcodeproj/
│   │   └── project.pbxproj
│   ├── Templates/
│   │   ├── file_templates/
│   │   │   └── Realm Model Object.xctemplate/
│   │   │       ├── Objective-C/
│   │   │       │   ├── ___FILEBASENAME___.h
│   │   │       │   └── ___FILEBASENAME___.m
│   │   │       ├── Swift/
│   │   │       │   └── ___FILEBASENAME___.swift
│   │   │       ├── TemplateIcon.icns
│   │   │       └── TemplateInfo.plist
│   │   └── install_templates.sh
│   └── rlm_lldb.py
└── scripts/
    ├── create-release-package.rb
    ├── download-core.sh
    ├── generate-rlmversion.sh
    ├── github_release.rb
    ├── package_examples.rb
    ├── pr-ci-matrix.rb
    ├── release-matrix.rb
    ├── setup-cocoapods.sh
    └── swift-version.sh
Download .txt
SYMBOL INDEX (254 symbols across 43 files)

FILE: Realm/RLMAccessor.hpp
  class RLMRealm (line 29) | class RLMRealm
  class RLMClassInfo (line 30) | class RLMClassInfo
  class RLMObservationTracker (line 31) | class RLMObservationTracker
  function RLM_HIDDEN_BEGIN (line 34) | RLM_HIDDEN_BEGIN
  type RLMStatelessAccessorContext (line 49) | struct RLMStatelessAccessorContext {
    method id (line 50) | static id box(bool v) { return @(v); }
    method id (line 51) | static id box(double v) { return @(v); }
    method id (line 52) | static id box(float v) { return @(v); }
    method id (line 53) | static id box(long long v) { return @(v); }
    method id (line 54) | static id box(realm::StringData v) { return RLMStringDataToNSString(v)...
    method id (line 55) | static id box(realm::BinaryData v) { return RLMBinaryDataToNSData(v) ?...
    method id (line 56) | static id box(realm::Timestamp v) { return RLMTimestampToNSDate(v) ?: ...
    method id (line 57) | static id box(realm::Decimal128 v) { return v.is_null() ? NSNull.null ...
    method id (line 59) | static id box(realm::UUID v) { return [[NSUUID alloc] initWithRealmUUI...
    method id (line 61) | static id box(std::optional<bool> v) { return v ? @(*v) : NSNull.null; }
    method id (line 62) | static id box(std::optional<double> v) { return v ? @(*v) : NSNull.nul...
    method id (line 63) | static id box(std::optional<float> v) { return v ? @(*v) : NSNull.null; }
    method id (line 64) | static id box(std::optional<int64_t> v) { return v ? @(*v) : NSNull.nu...
    method id (line 65) | static id box(std::optional<realm::ObjectId> v) { return v ? box(*v) :...
    method id (line 66) | static id box(std::optional<realm::UUID> v) { return v ? box(*v) : NSN...
    method enumerate_collection (line 72) | static void enumerate_collection(__unsafe_unretained const id v, Func&...
    method id (line 88) | static id null_value() noexcept { return NSNull.null; }
    method id (line 89) | static id no_value() noexcept { return nil; }
    method allow_missing (line 90) | static bool allow_missing(id v) noexcept { return [v isKindOfClass:[NS...
    method print (line 96) | static std::string print(id obj) { return [obj description].UTF8String; }
  class RLMAccessorContext (line 99) | class RLMAccessorContext : public RLMStatelessAccessorContext {
    method will_change (line 116) | void will_change(realm::Object& obj, realm::Property const& prop) { wi...
    method T (line 124) | T unbox(__unsafe_unretained id const v, realm::CreatePolicy = realm::C...

FILE: Realm/RLMArray_Private.hpp
  type realm (line 27) | namespace realm {
    class Results (line 28) | class Results
  class RLMObjectBase (line 31) | class RLMObjectBase
  class RLMClassInfo (line 32) | class RLMClassInfo
  class RLMObservationInfo (line 33) | class RLMObservationInfo
  function interface (line 35) | interface RLMArray () {

FILE: Realm/RLMClassInfo.hpp
  type realm (line 27) | namespace realm {
    class ObjectSchema (line 28) | class ObjectSchema
    class Schema (line 29) | class Schema
    type Property (line 30) | struct Property
    type ColKey (line 31) | struct ColKey
    type TableKey (line 32) | struct TableKey
  class RLMObservationInfo (line 35) | class RLMObservationInfo
  class RLMRealm (line 36) | class RLMRealm
  type std (line 40) | namespace std {
    type hash<NSString *> (line 42) | struct hash<NSString *> {
    type equal_to<NSString *> (line 47) | struct equal_to<NSString *> {
  class RLMClassInfo (line 56) | class RLMClassInfo {
  class RLMSchemaInfo (line 123) | class RLMSchemaInfo {
    method RLMSchemaInfo (line 127) | RLMSchemaInfo() = default;

FILE: Realm/RLMCollection.h
  type id (line 28) | typedef id<RLMValue> _Nullable(^RLMSectionedResultsKeyBlock)(id);

FILE: Realm/RLMCollection_Private.hpp
  type realm (line 29) | namespace realm {
    class CollectionChangeCallback (line 30) | class CollectionChangeCallback
    class List (line 31) | class List
    class Obj (line 32) | class Obj
    class Results (line 33) | class Results
    class TableView (line 34) | class TableView
    type CollectionChangeSet (line 35) | struct CollectionChangeSet
    type ColKey (line 36) | struct ColKey
    type object_store (line 37) | namespace object_store {
      class Collection (line 38) | class Collection
      class Dictionary (line 39) | class Dictionary
      class Set (line 40) | class Set
  class RLMClassInfo (line 43) | class RLMClassInfo
  class RLMFastEnumerator (line 44) | class RLMFastEnumerator
  function canAggregate (line 112) | static inline bool canAggregate(RLMPropertyType type, bool allowDate) {

FILE: Realm/RLMConstants.h
  type NSString (line 136) | typedef NSString * RLMNotification

FILE: Realm/RLMDecimal128_Private.hpp
  type realm (line 21) | namespace realm {
    class Decimal128 (line 22) | class Decimal128

FILE: Realm/RLMDictionary_Private.hpp
  type realm (line 27) | namespace realm {
    class Results (line 28) | class Results
  class RLMObjectBase (line 31) | class RLMObjectBase
  class RLMClassInfo (line 32) | class RLMClassInfo
  class RLMObservationInfo (line 33) | class RLMObservationInfo
  function interface (line 35) | interface RLMDictionary () {

FILE: Realm/RLMError_Private.hpp
  function NSError (line 29) | NSError *makeError(realm::StatusWith<T> const& statusWith) {

FILE: Realm/RLMGeospatial_Private.hpp
  type realm (line 21) | namespace realm {
    class Geospatial (line 22) | class Geospatial

FILE: Realm/RLMMigration_Private.h
  function namespace (line 23) | namespace realm {

FILE: Realm/RLMObjectId_Private.hpp
  type realm (line 21) | namespace realm {
    class ObjectId (line 22) | class ObjectId

FILE: Realm/RLMObjectSchema_Private.h
  function RLMObjectSchema (line 23) | RLM_HEADER_AUDIT_BEGIN(nullability)

FILE: Realm/RLMObjectSchema_Private.hpp
  type realm (line 23) | namespace realm {
    class ObjectSchema (line 24) | class ObjectSchema
  class RLMSchema (line 26) | class RLMSchema

FILE: Realm/RLMObjectStore.h
  function namespace (line 80) | namespace realm {

FILE: Realm/RLMObject_Private.h
  function interface (line 37) | interface RLMObjectBase () {

FILE: Realm/RLMObject_Private.hpp
  class RLMObservationInfo (line 27) | class RLMObservationInfo
  function interface (line 30) | interface RLMObjectBase () {
  function RLMVerifyAttached (line 41) | static inline void RLMVerifyAttached(__unsafe_unretained RLMObjectBase *...
  function RLMVerifyInWriteTransaction (line 49) | static inline void RLMVerifyInWriteTransaction(__unsafe_unretained RLMOb...

FILE: Realm/RLMObservation.hpp
  class RLMObjectBase (line 26) | class RLMObjectBase
  class RLMClassInfo (line 27) | class RLMClassInfo
  class RLMSchemaInfo (line 28) | class RLMSchemaInfo
  type realm (line 30) | namespace realm {
    class History (line 31) | class History
    class SharedGroup (line 32) | class SharedGroup
    type TableKey (line 33) | struct TableKey
    type ColKey (line 34) | struct ColKey
  class RLMObservationInfo (line 50) | class RLMObservationInfo {
    method isForRow (line 67) | bool isForRow(realm::ObjKey key) const {
    method hasObservers (line 73) | bool hasObservers() const { return observerCount > 0; }
    method forEach (line 116) | void forEach(F&& f) const {
    method RLMObservationInfo (line 134) | RLMObservationInfo(RLMObservationInfo const&) = delete;
    method RLMObservationInfo (line 135) | RLMObservationInfo(RLMObservationInfo&&) = delete;
    method RLMObservationInfo (line 136) | RLMObservationInfo& operator=(RLMObservationInfo const&) = delete;
    method RLMObservationInfo (line 137) | RLMObservationInfo& operator=(RLMObservationInfo&&) = delete;
  class RLMObservationTracker (line 148) | class RLMObservationTracker {
    type Change (line 170) | struct Change {

FILE: Realm/RLMProperty_Private.h
  function NSString (line 31) | static inline NSString *RLMTypeToString(RLMPropertyType type) {
  function interface (line 64) | interface RLMProperty () {

FILE: Realm/RLMProperty_Private.hpp
  class RLMSchema (line 23) | class RLMSchema
  function end (line 29) | end

FILE: Realm/RLMQueryUtil.hpp
  type realm (line 23) | namespace realm {
    class Group (line 24) | class Group
    class Query (line 25) | class Query
    class SortDescriptor (line 26) | class SortDescriptor
  class RLMObjectSchema (line 29) | class RLMObjectSchema
  class RLMClassInfo (line 30) | class RLMClassInfo

FILE: Realm/RLMRealm.h
  type RLMAsyncTransactionId (line 31) | typedef unsigned RLMAsyncTransactionId;

FILE: Realm/RLMRealmUtil.hpp
  class RLMRealm (line 24) | class RLMRealm
  type realm (line 26) | namespace realm {
    class BindingContext (line 27) | class BindingContext

FILE: Realm/RLMRealm_Private.hpp
  type realm (line 27) | namespace realm {
    class Group (line 28) | class Group
    class Realm (line 29) | class Realm
  function interface (line 32) | interface RLMRealm () {

FILE: Realm/RLMResults_Private.hpp
  class RLMClassInfo (line 25) | class RLMClassInfo
  function translateCollectionError (line 58) | static auto translateCollectionError(Function&& f, NSString *collectionN...

FILE: Realm/RLMScheduler.h
  function namespace (line 23) | namespace realm::util {

FILE: Realm/RLMSchema_Private.hpp
  type realm (line 23) | namespace realm {
    class Schema (line 24) | class Schema
    class ObjectSchema (line 25) | class ObjectSchema

FILE: Realm/RLMSet_Private.hpp
  type realm (line 25) | namespace realm {
    class SetBase (line 26) | class SetBase
    class CollectionBase (line 27) | class CollectionBase
    type object_store (line 28) | namespace object_store {
      class Set (line 29) | class Set
  class RLMObjectBase (line 33) | class RLMObjectBase
  class RLMClassInfo (line 34) | class RLMClassInfo
  class RLMObservationInfo (line 35) | class RLMObservationInfo
  function interface (line 37) | interface RLMSet () {

FILE: Realm/RLMUUID_Private.hpp
  type realm (line 21) | namespace realm {
    class UUID (line 22) | class UUID

FILE: Realm/RLMUtil.hpp
  type realm (line 33) | namespace realm {
    class Decimal128 (line 34) | class Decimal128
    class Exception (line 35) | class Exception
    class Mixed (line 36) | class Mixed
  class RLMClassInfo (line 39) | class RLMClassInfo
  class RLMObjectSchema (line 41) | class RLMObjectSchema
  class RLMProperty (line 42) | class RLMProperty
  function BOOL (line 71) | static inline BOOL RLMIsKindOfClass(Class class1, Class class2) {
  function T (line 80) | static inline T *RLMDynamicCast(__unsafe_unretained id obj) {
  function id (line 87) | static inline id RLMCoerceToNil(__unsafe_unretained id obj) {
  function T (line 98) | static inline T RLMCoerceToNil(__unsafe_unretained T obj) {
  function NSString (line 108) | static inline NSString *RLMStringDataToNSString(realm::StringData string...
  function NSString (line 121) | static inline NSString *RLMStringViewToNSString(std::string_view stringV...
  function RLMStringDataWithNSString (line 130) | static inline realm::StringData RLMStringDataWithNSString(__unsafe_unret...
  function NSData (line 138) | static inline NSData *RLMBinaryDataToNSData(realm::BinaryData binaryData) {
  function RLMBinaryDataForNSData (line 142) | static inline realm::BinaryData RLMBinaryDataForNSData(__unsafe_unretain...
  function NSDate (line 153) | static inline NSDate *RLMTimestampToNSDate(realm::Timestamp ts) NS_RETUR...
  function RLMTimestampForNSDate (line 160) | static inline realm::Timestamp RLMTimestampForNSDate(__unsafe_unretained...
  function NSUInteger (line 185) | static inline NSUInteger RLMConvertNotFound(size_t index) {
  function RLMNSStringToStdString (line 189) | static inline void RLMNSStringToStdString(std::string &out, NSString *in) {
  function RLMTranslateError (line 230) | static auto RLMTranslateError(Fn&& fn) {
  function numberIsInteger (line 239) | static inline bool numberIsInteger(__unsafe_unretained NSNumber *const o...
  function numberIsBool (line 253) | static inline bool numberIsBool(__unsafe_unretained NSNumber *const obj) {
  function numberIsFloat (line 268) | static inline bool numberIsFloat(__unsafe_unretained NSNumber *const obj) {
  function numberIsDouble (line 283) | static inline bool numberIsDouble(__unsafe_unretained NSNumber *const ob...
  class RLMUnfairMutex (line 297) | class RLMUnfairMutex {
    method RLMUnfairMutex (line 299) | RLMUnfairMutex() = default;
    method lock (line 301) | void lock() noexcept {
    method try_lock (line 305) | bool try_lock() noexcept {
    method unlock (line 309) | void unlock() noexcept {
    method RLMUnfairMutex (line 315) | RLMUnfairMutex(RLMUnfairMutex const&) = delete;
    method RLMUnfairMutex (line 316) | RLMUnfairMutex& operator=(RLMUnfairMutex const&) = delete;

FILE: Realm/Tests/array_tests.py
  function type_name (line 78) | def type_name(propertyName, optional):

FILE: Realm/Tests/dictionary_tests.py
  function type_name (line 87) | def type_name(propertyName, optional):

FILE: Realm/Tests/set_tests.py
  function type_name (line 84) | def type_name(propertyName, optional):

FILE: examples/installation/build.rb
  function usage (line 5) | def usage()
  function read_setting (line 36) | def read_setting(name)
  function replace_in_file (line 54) | def replace_in_file(filepath, *args)
  function sh (line 64) | def sh(*args)
  function copy_xcframework (line 71) | def copy_xcframework(path, framework, dir = '')
  function download_release (line 84) | def download_release(version)
  function download_realm (line 105) | def download_realm(platform, method, static)
  function build_app (line 177) | def build_app(platform, method, static)
  function validate_build (line 215) | def validate_build(static)
  function test (line 224) | def test(platform, method, linkage = 'dynamic')

FILE: examples/ios/objc/Migration/Examples/Example_v3.h
  function interface (line 43) | interface Pet : RLMObject
  type Kind (line 64) | enum Kind
  function kind (line 67) | enum Kind)kind {

FILE: examples/ios/objc/Migration/Examples/Example_v4.h
  function interface (line 35) | interface Pet : RLMObject
  type Kind (line 56) | enum Kind
  function kind (line 59) | enum Kind)kind {

FILE: examples/ios/objc/Migration/Examples/Example_v5.h
  function interface (line 38) | interface Pet : RLMObject
  type Kind (line 59) | enum Kind
  function kind (line 62) | enum Kind)kind {

FILE: plugin/rlm_lldb.py
  function cache_lookup (line 74) | def cache_lookup(cache, key, generator):
  function get_ivar_info (line 82) | def get_ivar_info(obj, ivar):
  function get_ivar (line 91) | def get_ivar(obj, addr, ivar):
  function is_object_deleted (line 98) | def is_object_deleted(obj):
  class SyntheticChildrenProvider (line 111) | class SyntheticChildrenProvider(object):
    method __init__ (line 112) | def __init__(self, class_name):
    method _eval (line 115) | def _eval(self, expr):
    method _get_ivar (line 119) | def _get_ivar(self, addr, ivar):
    method _to_str (line 122) | def _to_str(self, val):
    method _value_from_ivar (line 125) | def _value_from_ivar(self, ivar):
  function RLMObject_SummaryProvider (line 129) | def RLMObject_SummaryProvider(obj, _):
  class RLMObject_SyntheticChildrenProvider (line 135) | class RLMObject_SyntheticChildrenProvider(SyntheticChildrenProvider):
    method __init__ (line 136) | def __init__(self, obj, _):
    method num_children (line 156) | def num_children(self):
    method has_children (line 159) | def has_children(self):
    method get_child_index (line 162) | def get_child_index(self, name):
    method get_child_at_index (line 169) | def get_child_at_index(self, index):
    method update (line 179) | def update(self):
    method _get_prop (line 182) | def _get_prop(self, props, i):
  function get_object_class_name (line 190) | def get_object_class_name(frame, obj, addr, ivar):
  function RLMArray_SummaryProvider (line 198) | def RLMArray_SummaryProvider(obj, _):
  function is_results_evaluated (line 207) | def is_results_evaluated(obj):
  function results_object_class_name (line 219) | def results_object_class_name(obj):
  function RLMResults_SummaryProvider (line 224) | def RLMResults_SummaryProvider(obj, _):
  class RLMCollection_SyntheticChildrenProvider (line 234) | class RLMCollection_SyntheticChildrenProvider(SyntheticChildrenProvider):
    method __init__ (line 235) | def __init__(self, valobj, _):
    method num_children (line 241) | def num_children(self):
    method has_children (line 246) | def has_children(self):
    method get_child_index (line 249) | def get_child_index(self, name):
    method get_child_at_index (line 256) | def get_child_at_index(self, index):
    method update (line 262) | def update(self):
  function __lldb_init_module (line 265) | def __lldb_init_module(debugger, _):

FILE: scripts/create-release-package.rb
  function sh (line 17) | def sh(*args)
  function platforms (line 22) | def platforms(xcode_version)
  function create_xcframework (line 30) | def create_xcframework(root, xcode_version, configuration, name)
  function zip (line 39) | def zip(name, *files)

FILE: scripts/github_release.rb
  function sh (line 11) | def sh(*args)
  function release_notes (line 16) | def release_notes(version)
  function create_release (line 31) | def create_release(version)
  function package_release_notes (line 51) | def package_release_notes(version)
  function download_artifacts (line 58) | def download_artifacts(key, sha)
  function download (line 74) | def download(name, url)

FILE: scripts/package_examples.rb
  function remove_reference_to_realm_xcode_project (line 9) | def remove_reference_to_realm_xcode_project(workspace_path)
  function replace_in_file (line 19) | def replace_in_file(filepath, pattern, replacement)
  function replace_framework (line 26) | def replace_framework(example, framework, path)

FILE: scripts/pr-ci-matrix.rb
  function minimum_version (line 9) | def minimum_version(major)

FILE: scripts/release-matrix.rb
  function macOS (line 5) | def cls.macOS
  function catalyst (line 9) | def cls.catalyst
  function iOS (line 13) | def cls.iOS
  function iOSSimulator (line 17) | def cls.iOSSimulator
  function tvOS (line 21) | def cls.tvOS
  function tvOSSimulator (line 25) | def cls.tvOSSimulator
  function watchOS (line 29) | def cls.watchOS
  function watchOSSimulator (line 33) | def cls.watchOSSimulator
  function visionOS (line 37) | def cls.visionOS
  function visionOSSimulator (line 41) | def cls.visionOSSimulator
  function generic (line 45) | def cls.generic
  function action (line 63) | def action
Copy disabled (too large) Download .json
Condensed preview — 736 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,230K chars).
[
  {
    "path": ".dir-locals.el",
    "chars": 227,
    "preview": ";; Project specific Emacs settings\n((nil . ((c-basic-offset . 4)\n         (indent-tabs-mode . nil)\n         (c-file-styl"
  },
  {
    "path": ".gitattributes",
    "chars": 60,
    "preview": "CHANGELOG.md merge=union\n*.mm linguist-language=Objective-C\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug.yml",
    "chars": 3313,
    "preview": "name: Bug Report\ndescription: Report a bug\nlabels: [T-Bug]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n     "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 414,
    "preview": "blank_issues_enabled: true\ncontact_links:\n  - name: General Questions and Inquiries\n    url: https://www.mongodb.com/com"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature.yml",
    "chars": 1617,
    "preview": "# NOTE: This is a common file that is overwritten by realm/ci-actions sync service\n# and should only be modified in that"
  },
  {
    "path": ".github/workflows/build-binaries.yml",
    "chars": 4609,
    "preview": "name: Build Core binaries\non:\n  workflow_dispatch:\n    inputs:\n      core-version:\n        type: string\n        required"
  },
  {
    "path": ".github/workflows/build-pr.yml",
    "chars": 13151,
    "preview": "\n# This is a generated file produced by scripts/pr-ci-matrix.rb.\nname: Pull request build and test\non:\n  pull_request:\n "
  },
  {
    "path": ".github/workflows/check-changelog.yml",
    "chars": 708,
    "preview": "# NOTE: This is a common file that is overwritten by realm/ci-actions sync service\n# and should only be modified in that"
  },
  {
    "path": ".github/workflows/master-push.yml",
    "chars": 8507,
    "preview": "name: Prepare Release\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - \"master\"\n      - \"release/**\"\nenv:\n  XCODE_"
  },
  {
    "path": ".github/workflows/publish-release.yml",
    "chars": 4482,
    "preview": "name: Publish release\non: workflow_dispatch\nenv:\n  XCODE_VERSION: \"['26.1', '26.2', '26.3']\"\n  TEST_XCODE_VERSION: '26.3"
  },
  {
    "path": ".gitignore",
    "chars": 1051,
    "preview": "*~\n.DS_Store\n\n# Merge files\n*.orig\n\n# Binaries\n*.dylib\n*.a\n*.o\n*.d\n*.libdeps\n*.zip\n*.realm\n!examples/ios/swift/Migration"
  },
  {
    "path": ".ruby-version",
    "chars": 6,
    "preview": "3.3.4\n"
  },
  {
    "path": ".swiftlint.yml",
    "chars": 1276,
    "preview": "included:\n  - Realm/ObjectServerTests\n  - RealmSwift\n  - Realm/Swift\n  - examples/installation/watchos/swift\n  - example"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 493025,
    "preview": "20.0.4 Release notes (2026-02-22)\n=============================================================\n\n* Update build scripts "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4478,
    "preview": "# Contributing\n\n## Filing Issues\n\nWhether you find a bug, typo or an API call that could be clarified, please [file an i"
  },
  {
    "path": "Configuration/Base.xcconfig",
    "chars": 3428,
    "preview": "ALWAYS_SEARCH_USER_PATHS = NO;\nCLANG_CXX_LANGUAGE_STANDARD = c++20;\nCLANG_CXX_LIBRARY = libc++;\nCLANG_ENABLE_MODULES = Y"
  },
  {
    "path": "Configuration/Debug.xcconfig",
    "chars": 313,
    "preview": "#include \"Base.xcconfig\"\n\nCOPY_PHASE_STRIP = NO;\nENABLE_TESTABILITY = YES;\nGCC_OPTIMIZATION_LEVEL = 0;\nONLY_ACTIVE_ARCH "
  },
  {
    "path": "Configuration/Realm/PrivateSymbols.txt",
    "chars": 86,
    "preview": "# Anything with a C++ mangled name\n__Z*\n# The Bid library used for decimal128\n___bid*\n"
  },
  {
    "path": "Configuration/Realm/Realm.xcconfig",
    "chars": 914,
    "preview": "APPLICATION_EXTENSION_API_ONLY = YES;\nDEFINES_MODULE = YES;\nDYLIB_COMPATIBILITY_VERSION = 1;\nDYLIB_CURRENT_VERSION = 1;\n"
  },
  {
    "path": "Configuration/Realm/Tests.xcconfig",
    "chars": 497,
    "preview": "#include \"../TestBase.xcconfig\"\n\nINFOPLIST_FILE = Realm/Tests/RealmTests-Info.plist;\nOTHER_CFLAGS = -fobjc-arc-exception"
  },
  {
    "path": "Configuration/RealmSwift/RealmSwift.xcconfig",
    "chars": 509,
    "preview": "SKIP_INSTALL = YES;\n\nDEFINES_MODULE = YES;\nDYLIB_COMPATIBILITY_VERSION = 1;\nDYLIB_CURRENT_VERSION = 1;\nDYLIB_INSTALL_NAM"
  },
  {
    "path": "Configuration/RealmSwift/Tests.xcconfig",
    "chars": 437,
    "preview": "#include \"../TestBase.xcconfig\"\n\nINFOPLIST_FILE = RealmSwift/Tests/RealmSwiftTests-Info.plist;\nOTHER_LDFLAGS = -ObjC;\nSW"
  },
  {
    "path": "Configuration/Release.xcconfig",
    "chars": 719,
    "preview": "#include \"Base.xcconfig\"\n\n// As of beta 1 dSYM generation fails with the unhelpful error \"warning: could\n// not find ref"
  },
  {
    "path": "Configuration/Static.xcconfig",
    "chars": 165,
    "preview": "#include \"Release.xcconfig\"\n\nREALM_MACH_O_TYPE = staticlib;\nLLVM_LTO = NO;\nGCC_PREPROCESSOR_DEFINITIONS = REALM_STATIC_F"
  },
  {
    "path": "Configuration/SwiftUITestHost.xcconfig",
    "chars": 224,
    "preview": "#include \"TestHost.xcconfig\"\n\nINFOPLIST_FILE = Realm/Tests/SwiftUITestHost/Info.plist;\nIPHONEOS_DEPLOYMENT_TARGET = 14.0"
  },
  {
    "path": "Configuration/SwiftUITests.xcconfig",
    "chars": 148,
    "preview": "#include \"SwiftUITestHost.xcconfig\"\n\nSDKROOT = iphoneos;\nTEST_TARGET_NAME = SwiftUITestHost;\nTEST_HOST[sdk=appletv*] = ;"
  },
  {
    "path": "Configuration/TestBase.xcconfig",
    "chars": 987,
    "preview": "SUPPORTED_PLATFORMS = macosx iphonesimulator iphoneos appletvos appletvsimulator xros xrsimulator;\nSKIP_INSTALL = YES;\nP"
  },
  {
    "path": "Configuration/TestHost.xcconfig",
    "chars": 913,
    "preview": "#include \"TestBase.xcconfig\"\n\nASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\nASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = Lau"
  },
  {
    "path": "Gemfile",
    "chars": 123,
    "preview": "source \"https://rubygems.org\"\n\ngem 'cocoapods'\ngem 'fileutils'\ngem 'jazzy'\ngem 'jwt'\ngem 'octokit'\ngem 'pathname', '0.3."
  },
  {
    "path": "LICENSE",
    "chars": 10174,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Package.swift",
    "chars": 7173,
    "preview": "// swift-tools-version:5.10\n\nimport PackageDescription\nimport Foundation\n\nlet coreVersion = Version(\"20.1.4\")\nlet cocoaV"
  },
  {
    "path": "README.md",
    "chars": 6621,
    "preview": "<picture>\n    <source srcset=\"./media/logo-dark.svg\" media=\"(prefers-color-scheme: dark)\" alt=\"realm\">\n    <img src=\"./m"
  },
  {
    "path": "Realm/PrivacyInfo.xcprivacy",
    "chars": 812,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Realm/RLMAccessor.h",
    "chars": 1926,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMAccessor.hpp",
    "chars": 6599,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMAccessor.mm",
    "chars": 47201,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMArray.h",
    "chars": 25605,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMArray.mm",
    "chars": 22551,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMArray_Private.h",
    "chars": 1752,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMArray_Private.hpp",
    "chars": 2127,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMAsyncTask.h",
    "chars": 1826,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMAsyncTask.mm",
    "chars": 8267,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMAsyncTask_Private.h",
    "chars": 2189,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMClassInfo.hpp",
    "chars": 5993,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMClassInfo.mm",
    "chars": 9181,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMCollection.h",
    "chars": 23684,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMCollection.mm",
    "chars": 18975,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMCollection_Private.h",
    "chars": 1792,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMCollection_Private.hpp",
    "chars": 4740,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMConstants.h",
    "chars": 7570,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMConstants.m",
    "chars": 1286,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDecimal128.h",
    "chars": 4353,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDecimal128.mm",
    "chars": 6886,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDecimal128_Private.hpp",
    "chars": 967,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDictionary.h",
    "chars": 23015,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDictionary.mm",
    "chars": 20405,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDictionary_Private.h",
    "chars": 2077,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMDictionary_Private.hpp",
    "chars": 2394,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMEmbeddedObject.h",
    "chars": 15553,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMEmbeddedObject.mm",
    "chars": 3248,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMError.h",
    "chars": 5542,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMError.mm",
    "chars": 5211,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMError_Private.hpp",
    "chars": 1278,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMGeospatial.h",
    "chars": 9555,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMGeospatial.mm",
    "chars": 6864,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMGeospatial_Private.hpp",
    "chars": 995,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMLogger.h",
    "chars": 3880,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMLogger.mm",
    "chars": 5165,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMLogger_Private.h",
    "chars": 1206,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMManagedArray.mm",
    "chars": 21250,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMManagedDictionary.mm",
    "chars": 20481,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMManagedSet.mm",
    "chars": 20037,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMMigration.h",
    "chars": 5334,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMMigration.mm",
    "chars": 5299,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMMigration_Private.h",
    "chars": 1189,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObject.h",
    "chars": 35808,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObject.mm",
    "chars": 7587,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectBase.h",
    "chars": 1320,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectBase.mm",
    "chars": 27425,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectBase_Dynamic.h",
    "chars": 3508,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectBase_Private.h",
    "chars": 1089,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectId.h",
    "chars": 3282,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectId.mm",
    "chars": 4286,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectId_Private.hpp",
    "chars": 971,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectSchema.h",
    "chars": 2407,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectSchema.mm",
    "chars": 16586,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectSchema_Private.h",
    "chars": 3039,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectSchema_Private.hpp",
    "chars": 1163,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectStore.h",
    "chars": 3205,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObjectStore.mm",
    "chars": 9512,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObject_Private.h",
    "chars": 4834,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObject_Private.hpp",
    "chars": 2158,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObservation.hpp",
    "chars": 7905,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMObservation.mm",
    "chars": 18537,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMPredicateUtil.hpp",
    "chars": 863,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMPredicateUtil.mm",
    "chars": 4969,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMPrefix.h",
    "chars": 1052,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMProperty.h",
    "chars": 3834,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMProperty.mm",
    "chars": 31732,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMProperty_Private.h",
    "chars": 5082,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMProperty_Private.hpp",
    "chars": 1159,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMQueryUtil.hpp",
    "chars": 1268,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMQueryUtil.mm",
    "chars": 89116,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealm.h",
    "chars": 41028,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealm.mm",
    "chars": 36944,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmConfiguration.h",
    "chars": 7774,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmConfiguration.mm",
    "chars": 9840,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmConfiguration_Private.h",
    "chars": 1902,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmConfiguration_Private.hpp",
    "chars": 1153,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmUtil.hpp",
    "chars": 1390,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealmUtil.mm",
    "chars": 10185,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealm_Dynamic.h",
    "chars": 4865,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealm_Private.h",
    "chars": 4201,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMRealm_Private.hpp",
    "chars": 1381,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMResults.h",
    "chars": 24044,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMResults.mm",
    "chars": 20004,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMResults_Private.h",
    "chars": 1062,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMResults_Private.hpp",
    "chars": 2135,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMScheduler.h",
    "chars": 2347,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMScheduler.mm",
    "chars": 6099,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSchema.h",
    "chars": 2448,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSchema.mm",
    "chars": 15668,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSchema_Private.h",
    "chars": 1765,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSchema_Private.hpp",
    "chars": 1279,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSectionedResults.h",
    "chars": 46859,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSectionedResults.mm",
    "chars": 22964,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSectionedResults_Private.hpp",
    "chars": 2424,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2022 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSet.h",
    "chars": 21314,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSet.mm",
    "chars": 19252,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSet_Private.h",
    "chars": 1681,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSet_Private.hpp",
    "chars": 2052,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftBridgingHeader.h",
    "chars": 1654,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftCollectionBase.h",
    "chars": 1714,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftCollectionBase.mm",
    "chars": 4927,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftObject.h",
    "chars": 5520,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2023 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftProperty.h",
    "chars": 2755,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftSupport.h",
    "chars": 1023,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftSupport.m",
    "chars": 1075,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftValueStorage.h",
    "chars": 2555,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMSwiftValueStorage.mm",
    "chars": 5493,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMThreadSafeReference.h",
    "chars": 4291,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMThreadSafeReference.mm",
    "chars": 2504,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMThreadSafeReference_Private.hpp",
    "chars": 1685,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMUUID.mm",
    "chars": 1069,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMUUID_Private.hpp",
    "chars": 1038,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMUtil.hpp",
    "chars": 11502,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMUtil.mm",
    "chars": 23836,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMValue.h",
    "chars": 2981,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/RLMValue.mm",
    "chars": 6049,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Realm-Info.plist",
    "chars": 947,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Realm/Realm.h",
    "chars": 1391,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Realm.modulemap",
    "chars": 1645,
    "preview": "framework module Realm {\n    export Foundation\n\n    umbrella header \"Realm.h\"\n\n    header \"RLMArray.h\"\n    header \"RLMDe"
  },
  {
    "path": "Realm/Swift/RLMSupport.swift",
    "chars": 6866,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/RLMChildProcessEnvironment.m",
    "chars": 2740,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/RLMMultiProcessTestCase.m",
    "chars": 7938,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/RLMTestCase.m",
    "chars": 7900,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/RLMTestObjects.m",
    "chars": 12142,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/RealmTestSupport.h",
    "chars": 120,
    "preview": "// A dummy module header to let us import RealmTestSupport in non-swiftpm builds\n#import \"RLMChildProcessEnvironment.h\"\n"
  },
  {
    "path": "Realm/TestUtils/TestUtils.mm",
    "chars": 8098,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/RLMAssertions.h",
    "chars": 10007,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/RLMChildProcessEnvironment.h",
    "chars": 1859,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/RLMMultiProcessTestCase.h",
    "chars": 1577,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/RLMTestCase.h",
    "chars": 1926,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/RLMTestObjects.h",
    "chars": 22130,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/TestUtils/include/TestUtils.h",
    "chars": 1672,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ArrayPropertyTests.m",
    "chars": 75297,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/AsyncTests.mm",
    "chars": 38667,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/CompactionTests.m",
    "chars": 13001,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/Decimal128Tests.m",
    "chars": 6701,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/DictionaryPropertyTests.m",
    "chars": 84595,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/DynamicTests.m",
    "chars": 19706,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/EncryptionTests.mm",
    "chars": 8359,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/EnumeratorTests.m",
    "chars": 3102,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/InterprocessTests.m",
    "chars": 14489,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/KVOTests.mm",
    "chars": 93117,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/LinkTests.m",
    "chars": 8829,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/LinkingObjectsTests.mm",
    "chars": 12363,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/MigrationTests.mm",
    "chars": 92148,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/NotificationTests.m",
    "chars": 80591,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ObjectCreationTests.mm",
    "chars": 88166,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ObjectIdTests.m",
    "chars": 4463,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ObjectInterfaceTests.m",
    "chars": 22164,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ObjectSchemaTests.m",
    "chars": 7465,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/ObjectTests.m",
    "chars": 67738,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PerformanceTests.m",
    "chars": 33143,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PredicateUtilTests.mm",
    "chars": 3167,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2016 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveArrayPropertyTests.m",
    "chars": 805425,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveArrayPropertyTests.tpl.m",
    "chars": 70631,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2017 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveDictionaryPropertyTests.m",
    "chars": 455169,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveDictionaryPropertyTests.tpl.m",
    "chars": 55319,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveRLMValuePropertyTests.m",
    "chars": 44478,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveRLMValuePropertyTests.tpl.m",
    "chars": 5795,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveSetPropertyTests.m",
    "chars": 641948,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PrimitiveSetPropertyTests.tpl.m",
    "chars": 65898,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2020 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/PropertyTests.m",
    "chars": 9705,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/QueryTests.m",
    "chars": 258378,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/RLMValueTests.m",
    "chars": 40102,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2021 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/RealmConfigurationTests.mm",
    "chars": 9224,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2015 Realm Inc.\n//\n// Licen"
  },
  {
    "path": "Realm/Tests/RealmTests-Info.plist",
    "chars": 674,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Realm/Tests/RealmTests.mm",
    "chars": 119075,
    "preview": "////////////////////////////////////////////////////////////////////////////\n//\n// Copyright 2014 Realm Inc.\n//\n// Licen"
  }
]

// ... and 536 more files (download for full content)

About this extraction

This page contains the full source code of the realm/realm-swift GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 736 files (10.3 MB), approximately 2.7M tokens, and a symbol index with 254 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!