diff --git a/Projects/App/Sources/Application/AppComponent+Songs.swift b/Projects/App/Sources/Application/AppComponent+Songs.swift
index 52e3acadc..795b82db8 100644
--- a/Projects/App/Sources/Application/AppComponent+Songs.swift
+++ b/Projects/App/Sources/Application/AppComponent+Songs.swift
@@ -11,6 +11,7 @@ import DataModule
import NetworkModule
import SearchFeature
import HomeFeature
+import CommonFeature
public extension AppComponent {
@@ -29,6 +30,14 @@ public extension AppComponent {
var homeComponent: HomeComponent {
HomeComponent(parent: self)
}
+
+ var newSongsComponent: NewSongsComponent {
+ NewSongsComponent(parent: self)
+ }
+
+ var newSongsContentComponent: NewSongsContentComponent {
+ NewSongsContentComponent(parent: self)
+ }
var remoteSongsDataSource: any RemoteSongsDataSource {
shared {
@@ -53,9 +62,9 @@ public extension AppComponent {
}
}
- var fetchNewSongUseCase: any FetchNewSongUseCase {
+ var fetchNewSongsUseCase: any FetchNewSongsUseCase {
shared {
- FetchNewSongUseCaseImpl(songsRepository: songsRepository)
+ FetchNewSongsUseCaseImpl(songsRepository: songsRepository)
}
}
}
diff --git a/Projects/App/Sources/Application/AppComponent.swift b/Projects/App/Sources/Application/AppComponent.swift
index 193ca8d73..de543e09f 100644
--- a/Projects/App/Sources/Application/AppComponent.swift
+++ b/Projects/App/Sources/Application/AppComponent.swift
@@ -12,22 +12,18 @@ public final class AppComponent: BootstrapComponent {
public func makeRootView() -> IntroViewController {
rootComponent.makeView()
}
+
public var keychain: any Keychain {
shared {
KeychainImpl()
}
}
+
var rootComponent: RootComponent {
shared {
RootComponent(parent: self)
}
}
-
- var permissionComponent: PermissionComponent {
- shared {
- PermissionComponent(parent: self)
- }
- }
}
// MARK: - Tabbar
@@ -61,7 +57,12 @@ public extension AppComponent {
var openSourceLicenseComponent: OpenSourceLicenseComponent {
OpenSourceLicenseComponent(parent: self)
}
+
var serviceInfoComponent: ServiceInfoComponent {
ServiceInfoComponent(parent: self)
}
+
+ var permissionComponent: PermissionComponent {
+ PermissionComponent(parent: self)
+ }
}
diff --git a/Projects/App/Sources/Application/NeedleGenerated.swift b/Projects/App/Sources/Application/NeedleGenerated.swift
index 1b9b7ff73..d3ebb2ff1 100644
--- a/Projects/App/Sources/Application/NeedleGenerated.swift
+++ b/Projects/App/Sources/Application/NeedleGenerated.swift
@@ -550,8 +550,8 @@ private class HomeDependency443c4e1871277bd8432aProvider: HomeDependency {
var fetchChartRankingUseCase: any FetchChartRankingUseCase {
return appComponent.fetchChartRankingUseCase
}
- var fetchNewSongUseCase: any FetchNewSongUseCase {
- return appComponent.fetchNewSongUseCase
+ var fetchNewSongsUseCase: any FetchNewSongsUseCase {
+ return appComponent.fetchNewSongsUseCase
}
var fetchRecommendPlayListUseCase: any FetchRecommendPlayListUseCase {
return appComponent.fetchRecommendPlayListUseCase
@@ -559,6 +559,9 @@ private class HomeDependency443c4e1871277bd8432aProvider: HomeDependency {
var playListDetailComponent: PlayListDetailComponent {
return appComponent.playListDetailComponent
}
+ var newSongsComponent: NewSongsComponent {
+ return appComponent.newSongsComponent
+ }
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
@@ -684,6 +687,19 @@ private class MultiPurposePopDependency30141c7a9a9e67e148afProvider: MultiPurpos
private func factory972fcba2860fcb8ad7b8f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return MultiPurposePopDependency30141c7a9a9e67e148afProvider(appComponent: parent1(component) as! AppComponent)
}
+private class NewSongsDependencyee634cc0cae21fc2a9e3Provider: NewSongsDependency {
+ var newSongsContentComponent: NewSongsContentComponent {
+ return appComponent.newSongsContentComponent
+ }
+ private let appComponent: AppComponent
+ init(appComponent: AppComponent) {
+ self.appComponent = appComponent
+ }
+}
+/// ^->AppComponent->NewSongsComponent
+private func factory379179b05dd24ff979edf47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
+ return NewSongsDependencyee634cc0cae21fc2a9e3Provider(appComponent: parent1(component) as! AppComponent)
+}
private class PlayListDetailDependencyb06fb5392859952b82a2Provider: PlayListDetailDependency {
var fetchPlayListDetailUseCase: any FetchPlayListDetailUseCase {
return appComponent.fetchPlayListDetailUseCase
@@ -747,6 +763,25 @@ private class ProfilePopDependency081172e20caa75abdb54Provider: ProfilePopDepend
private func factorybd14b11ccce6dac94a24f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return ProfilePopDependency081172e20caa75abdb54Provider(appComponent: parent1(component) as! AppComponent)
}
+private class NewSongsContentDependency93a05f20fa300c5bbec3Provider: NewSongsContentDependency {
+ var fetchNewSongsUseCase: any FetchNewSongsUseCase {
+ return appComponent.fetchNewSongsUseCase
+ }
+ var fetchChartUpdateTimeUseCase: any FetchChartUpdateTimeUseCase {
+ return appComponent.fetchChartUpdateTimeUseCase
+ }
+ var containSongsComponent: ContainSongsComponent {
+ return appComponent.containSongsComponent
+ }
+ private let appComponent: AppComponent
+ init(appComponent: AppComponent) {
+ self.appComponent = appComponent
+ }
+}
+/// ^->AppComponent->NewSongsContentComponent
+private func factorye130e1fbfcbc622a4c38f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
+ return NewSongsContentDependency93a05f20fa300c5bbec3Provider(appComponent: parent1(component) as! AppComponent)
+}
#else
extension AppComponent: Registration {
@@ -760,11 +795,13 @@ extension AppComponent: Registration {
localTable["afterSearchComponent-AfterSearchComponent"] = { self.afterSearchComponent as Any }
localTable["afterSearchContentComponent-AfterSearchContentComponent"] = { self.afterSearchContentComponent as Any }
localTable["homeComponent-HomeComponent"] = { self.homeComponent as Any }
+ localTable["newSongsComponent-NewSongsComponent"] = { self.newSongsComponent as Any }
+ localTable["newSongsContentComponent-NewSongsContentComponent"] = { self.newSongsContentComponent as Any }
localTable["remoteSongsDataSource-any RemoteSongsDataSource"] = { self.remoteSongsDataSource as Any }
localTable["songsRepository-any SongsRepository"] = { self.songsRepository as Any }
localTable["fetchSearchSongUseCase-any FetchSearchSongUseCase"] = { self.fetchSearchSongUseCase as Any }
localTable["fetchLyricsUseCase-any FetchLyricsUseCase"] = { self.fetchLyricsUseCase as Any }
- localTable["fetchNewSongUseCase-any FetchNewSongUseCase"] = { self.fetchNewSongUseCase as Any }
+ localTable["fetchNewSongsUseCase-any FetchNewSongsUseCase"] = { self.fetchNewSongsUseCase as Any }
localTable["signInComponent-SignInComponent"] = { self.signInComponent as Any }
localTable["storageComponent-StorageComponent"] = { self.storageComponent as Any }
localTable["afterLoginComponent-AfterLoginComponent"] = { self.afterLoginComponent as Any }
@@ -823,6 +860,7 @@ extension AppComponent: Registration {
localTable["playlistComponent-PlaylistComponent"] = { self.playlistComponent as Any }
localTable["openSourceLicenseComponent-OpenSourceLicenseComponent"] = { self.openSourceLicenseComponent as Any }
localTable["serviceInfoComponent-ServiceInfoComponent"] = { self.serviceInfoComponent as Any }
+ localTable["permissionComponent-PermissionComponent"] = { self.permissionComponent as Any }
localTable["noticePopupComponent-NoticePopupComponent"] = { self.noticePopupComponent as Any }
localTable["noticeComponent-NoticeComponent"] = { self.noticeComponent as Any }
localTable["noticeDetailComponent-NoticeDetailComponent"] = { self.noticeDetailComponent as Any }
@@ -1051,9 +1089,10 @@ extension SignInComponent: Registration {
extension HomeComponent: Registration {
public func registerItems() {
keyPathToName[\HomeDependency.fetchChartRankingUseCase] = "fetchChartRankingUseCase-any FetchChartRankingUseCase"
- keyPathToName[\HomeDependency.fetchNewSongUseCase] = "fetchNewSongUseCase-any FetchNewSongUseCase"
+ keyPathToName[\HomeDependency.fetchNewSongsUseCase] = "fetchNewSongsUseCase-any FetchNewSongsUseCase"
keyPathToName[\HomeDependency.fetchRecommendPlayListUseCase] = "fetchRecommendPlayListUseCase-any FetchRecommendPlayListUseCase"
keyPathToName[\HomeDependency.playListDetailComponent] = "playListDetailComponent-PlayListDetailComponent"
+ keyPathToName[\HomeDependency.newSongsComponent] = "newSongsComponent-NewSongsComponent"
}
}
extension AfterSearchComponent: Registration {
@@ -1100,6 +1139,11 @@ extension MultiPurposePopComponent: Registration {
keyPathToName[\MultiPurposePopDependency.editPlayListNameUseCase] = "editPlayListNameUseCase-any EditPlayListNameUseCase"
}
}
+extension NewSongsComponent: Registration {
+ public func registerItems() {
+ keyPathToName[\NewSongsDependency.newSongsContentComponent] = "newSongsContentComponent-NewSongsContentComponent"
+ }
+}
extension PlayListDetailComponent: Registration {
public func registerItems() {
keyPathToName[\PlayListDetailDependency.fetchPlayListDetailUseCase] = "fetchPlayListDetailUseCase-any FetchPlayListDetailUseCase"
@@ -1125,6 +1169,13 @@ extension ProfilePopComponent: Registration {
keyPathToName[\ProfilePopDependency.setProfileUseCase] = "setProfileUseCase-any SetProfileUseCase"
}
}
+extension NewSongsContentComponent: Registration {
+ public func registerItems() {
+ keyPathToName[\NewSongsContentDependency.fetchNewSongsUseCase] = "fetchNewSongsUseCase-any FetchNewSongsUseCase"
+ keyPathToName[\NewSongsContentDependency.fetchChartUpdateTimeUseCase] = "fetchChartUpdateTimeUseCase-any FetchChartUpdateTimeUseCase"
+ keyPathToName[\NewSongsContentDependency.containSongsComponent] = "containSongsComponent-ContainSongsComponent"
+ }
+}
#endif
@@ -1178,10 +1229,12 @@ private func registerProviderFactory(_ componentPath: String, _ factory: @escapi
registerProviderFactory("^->AppComponent->ContainSongsComponent", factory4d4f4455414271fee232f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->ServiceInfoComponent", factory3afd170b9974b0dbd863f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->MultiPurposePopComponent", factory972fcba2860fcb8ad7b8f47b58f8f304c97af4d5)
+ registerProviderFactory("^->AppComponent->NewSongsComponent", factory379179b05dd24ff979edf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->PlayListDetailComponent", factory9e077ee814ce180ea399f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->OpenSourceLicenseComponent", factoryd505894818021731340ae3b0c44298fc1c149afb)
registerProviderFactory("^->AppComponent->NoticePopupComponent", factorycd081aacb61d6a707ca7e3b0c44298fc1c149afb)
registerProviderFactory("^->AppComponent->ProfilePopComponent", factorybd14b11ccce6dac94a24f47b58f8f304c97af4d5)
+ registerProviderFactory("^->AppComponent->NewSongsContentComponent", factorye130e1fbfcbc622a4c38f47b58f8f304c97af4d5)
}
#endif
diff --git a/Projects/App/Support/Info.plist b/Projects/App/Support/Info.plist
index db8bcc7f9..15cc21b16 100644
--- a/Projects/App/Support/Info.plist
+++ b/Projects/App/Support/Info.plist
@@ -116,6 +116,8 @@
$(WMDOMAIN_QNA)
WMDOMAIN_SONGS
$(WMDOMAIN_SONGS)
+ WMDOMAIN_V2_SONGS
+ $(WMDOMAIN_V2_SONGS)
WMDOMAIN_SUGGEST
$(WMDOMAIN_SUGGEST)
WMDOMAIN_USER
diff --git a/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistViewController.swift b/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistViewController.swift
index bffd07136..e24c8629e 100644
--- a/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistViewController.swift
+++ b/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistViewController.swift
@@ -27,9 +27,14 @@ public final class ArtistViewController: BaseViewController, ViewControllerFromS
public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
+ navigationController?.interactivePopGestureRecognizer?.delegate = self
+ }
+
+ public override func viewDidDisappear(_ animated: Bool) {
+ super.viewDidDisappear(animated)
navigationController?.interactivePopGestureRecognizer?.delegate = nil
}
-
+
public static func viewController(
viewModel: ArtistViewModel,
artistDetailComponent: ArtistDetailComponent
@@ -131,3 +136,9 @@ extension ArtistViewController {
}
}
}
+
+extension ArtistViewController: UIGestureRecognizerDelegate {
+ public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
+ return false
+ }
+}
diff --git a/Projects/Features/ChartFeature/Sources/ViewContrillers/ChartContentViewController.swift b/Projects/Features/ChartFeature/Sources/ViewContrillers/ChartContentViewController.swift
index 3f3c53f76..65630be18 100644
--- a/Projects/Features/ChartFeature/Sources/ViewContrillers/ChartContentViewController.swift
+++ b/Projects/Features/ChartFeature/Sources/ViewContrillers/ChartContentViewController.swift
@@ -71,10 +71,15 @@ extension ChartContentViewController {
private func outputBind() {
output.dataSource
.skip(1)
- .do(onNext: { [weak self] _ in
+ .do(onNext: { [weak self] (model) in
guard let `self` = self else { return }
self.activityIncidator.stopAnimating()
self.refreshControl.endRefreshing()
+ let space: CGFloat = APP_HEIGHT() - 40 - 102 - 56 - 56 - STATUS_BAR_HEGHIT() - SAFEAREA_BOTTOM_HEIGHT()
+ let height: CGFloat = space / 3 * 2
+ let warningView: WarningView = WarningView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: height))
+ warningView.text = "차트 데이터가 없습니다."
+ self.tableView.tableFooterView = model.isEmpty ? warningView : UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: PLAYER_HEIGHT()))
})
.bind(to: tableView.rx.items) { [weak self] (tableView, index, model) -> UITableViewCell in
guard let self else { return UITableViewCell() }
@@ -126,8 +131,8 @@ extension ChartContentViewController {
self.activityIncidator.type = .circleStrokeSpin
self.activityIncidator.color = DesignSystemAsset.PrimaryColor.point.color
self.activityIncidator.startAnimating()
- self.tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: 56))
- self.tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 56, right: 0)
+ self.tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: PLAYER_HEIGHT()))
+ self.tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: PLAYER_HEIGHT(), right: 0)
self.tableView.refreshControl = refreshControl
}
}
@@ -136,6 +141,7 @@ extension ChartContentViewController: UITableViewDelegate {
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
+
public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 102
}
diff --git a/Projects/Features/CommonFeature/Resources/CommonUI.storyboard b/Projects/Features/CommonFeature/Resources/CommonUI.storyboard
index 233484ac7..ee4f46f94 100644
--- a/Projects/Features/CommonFeature/Resources/CommonUI.storyboard
+++ b/Projects/Features/CommonFeature/Resources/CommonUI.storyboard
@@ -1,9 +1,9 @@
-
+
-
+
@@ -166,7 +166,7 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
+
+
+
+
@@ -449,13 +429,11 @@
-
-
+
-
-
-
+
+
diff --git a/Projects/Features/HomeFeature/Sources/Components/HomeComponent.swift b/Projects/Features/HomeFeature/Sources/Components/HomeComponent.swift
index 67396cc33..ef61395cd 100644
--- a/Projects/Features/HomeFeature/Sources/Components/HomeComponent.swift
+++ b/Projects/Features/HomeFeature/Sources/Components/HomeComponent.swift
@@ -14,9 +14,10 @@ import CommonFeature
public protocol HomeDependency: Dependency {
var fetchChartRankingUseCase: any FetchChartRankingUseCase { get }
- var fetchNewSongUseCase: any FetchNewSongUseCase { get }
+ var fetchNewSongsUseCase: any FetchNewSongsUseCase { get }
var fetchRecommendPlayListUseCase: any FetchRecommendPlayListUseCase { get }
- var playListDetailComponent : PlayListDetailComponent {get}
+ var playListDetailComponent : PlayListDetailComponent { get }
+ var newSongsComponent: NewSongsComponent { get }
}
public final class HomeComponent: Component {
@@ -24,10 +25,11 @@ public final class HomeComponent: Component {
return HomeViewController.viewController(
viewModel: .init(
fetchChartRankingUseCase: dependency.fetchChartRankingUseCase,
- fetchNewSongUseCase: dependency.fetchNewSongUseCase,
+ fetchNewSongsUseCase: dependency.fetchNewSongsUseCase,
fetchRecommendPlayListUseCase: dependency.fetchRecommendPlayListUseCase
),
- playListDetailComponent: dependency.playListDetailComponent
+ playListDetailComponent: dependency.playListDetailComponent,
+ newSongsComponent: dependency.newSongsComponent
)
}
}
diff --git a/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift b/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift
index 01d457529..1d7ba3e53 100644
--- a/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift
+++ b/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift
@@ -30,14 +30,12 @@ public final class HomeViewController: BaseViewController, ViewControllerFromSto
//최신음악
@IBOutlet weak var latestSongLabel: UILabel!
- @IBOutlet weak var latestSongAllButton: UIButton!
- @IBOutlet weak var latestSongWwgButton: UIButton!
- @IBOutlet weak var latestSongIseButton: UIButton!
- @IBOutlet weak var latestSongGomButton: UIButton!
- @IBOutlet weak var latestSongAcademyButton: UIButton!
+ @IBOutlet weak var latestArrowImageView: UIImageView!
+ @IBOutlet weak var latestSongsMoveButton: UIButton!
+ @IBOutlet weak var latestSongsPlayButton: UIButton!
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var latestSongEmptyLabel: UILabel!
-
+
private let blurImageView = UIImageView().then {
$0.layer.cornerRadius = 12
$0.clipsToBounds = true
@@ -53,6 +51,7 @@ public final class HomeViewController: BaseViewController, ViewControllerFromSto
}
private var refreshControl = UIRefreshControl()
var playListDetailComponent: PlayListDetailComponent!
+ var newSongsComponent: NewSongsComponent!
var recommendViewHeightConstraint: NSLayoutConstraint?
var viewModel: HomeViewModel!
@@ -68,10 +67,25 @@ public final class HomeViewController: BaseViewController, ViewControllerFromSto
outputBind()
}
- public static func viewController(viewModel: HomeViewModel, playListDetailComponent :PlayListDetailComponent) -> HomeViewController {
+ public override func viewDidAppear(_ animated: Bool) {
+ super.viewDidAppear(animated)
+ navigationController?.interactivePopGestureRecognizer?.delegate = self
+ }
+
+ public override func viewDidDisappear(_ animated: Bool) {
+ super.viewDidDisappear(animated)
+ navigationController?.interactivePopGestureRecognizer?.delegate = nil
+ }
+
+ public static func viewController(
+ viewModel: HomeViewModel,
+ playListDetailComponent: PlayListDetailComponent,
+ newSongsComponent: NewSongsComponent
+ ) -> HomeViewController {
let viewController = HomeViewController.viewController(storyBoardName: "Home", bundle: Bundle.module)
viewController.viewModel = viewModel
viewController.playListDetailComponent = playListDetailComponent
+ viewController.newSongsComponent = newSongsComponent
return viewController
}
}
@@ -83,77 +97,20 @@ extension HomeViewController {
.disposed(by: disposeBag)
chartAllListenButton.rx.tap
- .bind(to: input.allListenTapped)
+ .bind(to: input.chartAllListenTapped)
+ .disposed(by: disposeBag)
+
+ latestSongsMoveButton.rx.tap
+ .withUnretained(self)
+ .subscribe(onNext: { (owner, _) in
+ let viewController = owner.newSongsComponent.makeView()
+ owner.navigationController?.pushViewController(viewController, animated: true)
+ })
+ .disposed(by: disposeBag)
+
+ latestSongsPlayButton.rx.tap
+ .bind(to: input.newSongsAllListenTapped)
.disposed(by: disposeBag)
-
- Observable.merge(
- latestSongAllButton.rx.tap.map { _ -> NewSongGroupType in .all },
- latestSongWwgButton.rx.tap.map { _ -> NewSongGroupType in .woowakgood },
- latestSongIseButton.rx.tap.map { _ -> NewSongGroupType in .isedol },
- latestSongGomButton.rx.tap.map { _ -> NewSongGroupType in .gomem },
- latestSongAcademyButton.rx.tap.map { _ -> NewSongGroupType in .academy }
- )
- .withLatestFrom(input.newSongTypeTapped) { ($0, $1) }
- .filter{ (currentSelectedType, previousType) in
- guard currentSelectedType != previousType else { return false }
- return true
- }
- .throttle(RxTimeInterval.seconds(1), latest: false, scheduler: MainScheduler.instance)
- .do(onNext: { [weak self] (currentSelectedType, previousType) in
- guard let `self` = self else { return }
-
- switch previousType {
- case .all:
- self.latestSongAllButton.isSelected = false
- case .woowakgood:
- self.latestSongWwgButton.isSelected = false
- case .isedol:
- self.latestSongIseButton.isSelected = false
- case .gomem:
- self.latestSongGomButton.isSelected = false
- case .academy:
- self.latestSongAcademyButton.isSelected = false
- }
-
- switch currentSelectedType {
- case .all:
- self.latestSongAllButton.isSelected = true
- self.latestSongWwgButton.isEnabled = false
- self.latestSongIseButton.isEnabled = false
- self.latestSongGomButton.isEnabled = false
- self.latestSongAcademyButton.isSelected = false
- case .woowakgood:
- self.latestSongAllButton.isEnabled = false
- self.latestSongWwgButton.isSelected = true
- self.latestSongIseButton.isEnabled = false
- self.latestSongGomButton.isEnabled = false
- self.latestSongAcademyButton.isSelected = false
- case .isedol:
- self.latestSongAllButton.isEnabled = false
- self.latestSongWwgButton.isEnabled = false
- self.latestSongIseButton.isSelected = true
- self.latestSongGomButton.isEnabled = false
- self.latestSongAcademyButton.isSelected = false
- case .gomem:
- self.latestSongAllButton.isEnabled = false
- self.latestSongWwgButton.isEnabled = false
- self.latestSongIseButton.isEnabled = false
- self.latestSongGomButton.isSelected = true
- self.latestSongAcademyButton.isSelected = false
- case .academy:
- self.latestSongAllButton.isEnabled = false
- self.latestSongWwgButton.isEnabled = false
- self.latestSongIseButton.isEnabled = false
- self.latestSongGomButton.isSelected = false
- self.latestSongAcademyButton.isSelected = true
- }
- self.activityIndicator.startAnimating()
- })
- .map { (currentSelectedType, _) -> NewSongGroupType in
- return currentSelectedType
- }
- .bind(to: input.newSongTypeTapped)
- .disposed(by: disposeBag)
refreshControl.rx
.controlEvent(.valueChanged)
@@ -224,15 +181,14 @@ extension HomeViewController {
output.newSongDataSource
.skip(1)
+ .map{ (model) in
+ let max: Int = 10
+ return (model.count >= max) ? Array(model[0.. UICollectionViewCell in
@@ -278,23 +234,6 @@ extension HomeViewController {
self.recommendViewHeightConstraint?.constant = height
recommendView.dataSource = model
}
- }).disposed(by: disposeBag)
-
- output.songEntityOfAllChart
- .subscribe(onNext: { (songs) in
- let songEntities: [SongEntity] = songs.map {
- return SongEntity(
- id: $0.id,
- title: $0.title,
- artist: $0.artist,
- remix: $0.remix,
- reaction: $0.reaction,
- views: $0.views,
- last: $0.last,
- date: $0.date
- )
- }
- PlayState.shared.loadAndAppendSongsToPlaylist(songEntities)
})
.disposed(by: disposeBag)
}
@@ -345,27 +284,16 @@ extension HomeViewController {
.kern: -0.5]
)
latestSongLabel.attributedText = latestSongAttributedString
+ latestArrowImageView.image = DesignSystemAsset.Home.homeArrowRight.image
+
+ let latestSongPlayAttributedString = NSMutableAttributedString(
+ string: "전체듣기",
+ attributes: [.font: DesignSystemFontFamily.Pretendard.medium.font(size: 14),
+ .foregroundColor: DesignSystemAsset.GrayColor.gray900.color.withAlphaComponent(0.6),
+ .kern: -0.5]
+ )
+ latestSongsPlayButton.setAttributedTitle(latestSongPlayAttributedString, for: .normal)
- let buttons: [UIButton] = [latestSongAllButton, latestSongWwgButton, latestSongIseButton, latestSongGomButton, latestSongAcademyButton]
-
- for (model, button) in zip(NewSongGroupType.allCases, buttons) {
- let attributedString = NSMutableAttributedString(
- string: model.display,
- attributes: [.font: DesignSystemFontFamily.Pretendard.light.font(size: 14),
- .foregroundColor: DesignSystemAsset.GrayColor.gray900.color,
- .kern: -0.5]
- )
- button.setAttributedTitle(attributedString, for: .normal)
-
- let selectedAttributedString = NSMutableAttributedString(
- string: model.display,
- attributes: [.font: DesignSystemFontFamily.Pretendard.bold.font(size: 14),
- .foregroundColor: DesignSystemAsset.GrayColor.gray900.color,
- .kern: -0.5]
- )
- button.setAttributedTitle(selectedAttributedString, for: .selected)
- }
- latestSongAllButton.isSelected = true
latestSongEmptyLabel.isHidden = true
latestSongEmptyLabel.text = "현재 집계된 음악이 없습니다."
latestSongEmptyLabel.textColor = DesignSystemAsset.GrayColor.gray900.color
@@ -432,3 +360,9 @@ extension HomeViewController {
}
}
}
+
+extension HomeViewController: UIGestureRecognizerDelegate {
+ public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
+ return false
+ }
+}
diff --git a/Projects/Features/HomeFeature/Sources/ViewModels/HomeViewModel.swift b/Projects/Features/HomeFeature/Sources/ViewModels/HomeViewModel.swift
index 3a93807c9..05f02ca16 100644
--- a/Projects/Features/HomeFeature/Sources/ViewModels/HomeViewModel.swift
+++ b/Projects/Features/HomeFeature/Sources/ViewModels/HomeViewModel.swift
@@ -13,63 +13,60 @@ import BaseFeature
import DomainModule
import Utility
import DataMappingModule
+import CommonFeature
public final class HomeViewModel: ViewModelType {
var disposeBag = DisposeBag()
var fetchChartRankingUseCase: FetchChartRankingUseCase
- var fetchNewSongUseCase: FetchNewSongUseCase
+ var fetchNewSongsUseCase: FetchNewSongsUseCase
var fetchRecommendPlayListUseCase: FetchRecommendPlayListUseCase
public init(
fetchChartRankingUseCase: any FetchChartRankingUseCase,
- fetchNewSongUseCase: any FetchNewSongUseCase,
+ fetchNewSongsUseCase: any FetchNewSongsUseCase,
fetchRecommendPlayListUseCase: any FetchRecommendPlayListUseCase
){
self.fetchChartRankingUseCase = fetchChartRankingUseCase
- self.fetchNewSongUseCase = fetchNewSongUseCase
+ self.fetchNewSongsUseCase = fetchNewSongsUseCase
self.fetchRecommendPlayListUseCase = fetchRecommendPlayListUseCase
- DEBUG_LOG("✅ \(Self.self) 생성")
}
public struct Input {
- var newSongTypeTapped: BehaviorSubject = BehaviorSubject(value: .all)
var chartMoreTapped: PublishSubject = PublishSubject()
- var allListenTapped: PublishSubject = PublishSubject()
+ var chartAllListenTapped: PublishSubject = PublishSubject()
+ var newSongsAllListenTapped: PublishSubject = PublishSubject()
var refreshPulled: PublishSubject = PublishSubject()
}
public struct Output {
var chartDataSource: BehaviorRelay<[ChartRankingEntity]>
- let newSongDataSource: BehaviorRelay<[NewSongEntity]>
+ let newSongDataSource: BehaviorRelay<[NewSongsEntity]>
var playListDataSource: BehaviorRelay<[RecommendPlayListEntity]>
- var songEntityOfAllChart: PublishSubject<[ChartRankingEntity]>
}
public func transform(from input: Input) -> Output {
let chartDataSource: BehaviorRelay<[ChartRankingEntity]> = BehaviorRelay(value: [])
- let newSongDataSource: BehaviorRelay<[NewSongEntity]> = BehaviorRelay(value: [])
+ let newSongDataSource: BehaviorRelay<[NewSongsEntity]> = BehaviorRelay(value: [])
let playListDataSource: BehaviorRelay<[RecommendPlayListEntity]> = BehaviorRelay(value: [])
- let songEntityOfAllChart: PublishSubject<[ChartRankingEntity]> = PublishSubject()
+
+ let chart = self.fetchChartRankingUseCase
+ .execute(type: .hourly, limit: 100)
+ .catchAndReturn([])
+ .asObservable()
- let chartAndNewSong = Observable.zip(
- self.fetchChartRankingUseCase
- .execute(type: .hourly, limit: 100)
- .catchAndReturn([])
- .asObservable(),
- self.fetchNewSongUseCase
- .execute(type: .all)
- .catchAndReturn([])
- .asObservable()
- )
+ let newSongs = self.fetchNewSongsUseCase
+ .execute(type: .all, page: 1, limit: 100)
+ .catchAndReturn([])
+ .asObservable()
- let firstLoad = Observable.zip(
- chartAndNewSong,
- self.fetchRecommendPlayListUseCase
- .execute()
- .catchAndReturn([])
- .asObservable()
- )
+ let playList = self.fetchRecommendPlayListUseCase
+ .execute()
+ .catchAndReturn([])
+ .asObservable()
+
+ let chartAndNewSong = Observable.zip(chart, newSongs)
+ let firstLoad = Observable.zip(chartAndNewSong, playList)
firstLoad
.take(1)
@@ -78,7 +75,8 @@ public final class HomeViewModel: ViewModelType {
chartDataSource.accept(chartRankingEntity)
newSongDataSource.accept(newSongEntity)
playListDataSource.accept(recommendPlayListEntity)
- }).disposed(by: disposeBag)
+ })
+ .disposed(by: disposeBag)
input.chartMoreTapped
.map { _ in 1 }
@@ -86,45 +84,48 @@ public final class HomeViewModel: ViewModelType {
NotificationCenter.default.post(name: .movedTab, object: index)
}).disposed(by: disposeBag)
- input.allListenTapped
+ input.chartAllListenTapped
.withLatestFrom(chartDataSource)
- .bind(to: songEntityOfAllChart)
+ .subscribe(onNext: { (songs) in
+ let songEntities: [SongEntity] = songs.map {
+ return SongEntity(
+ id: $0.id,
+ title: $0.title,
+ artist: $0.artist,
+ remix: $0.remix,
+ reaction: $0.reaction,
+ views: $0.views,
+ last: $0.last,
+ date: $0.date
+ )
+ }
+ PlayState.shared.loadAndAppendSongsToPlaylist(songEntities)
+ })
.disposed(by: disposeBag)
- input.newSongTypeTapped
- .skip(1)
- .debug("✅ newSongTypeTapped")
- .flatMap { [weak self] (type) -> Observable<[NewSongEntity]> in
- guard let `self` = self else { return Observable.empty() }
- return self.fetchNewSongUseCase.execute(type: type)
- .catchAndReturn([])
- .asObservable()
- }
- .bind(to: newSongDataSource)
+ input.newSongsAllListenTapped
+ .withLatestFrom(newSongDataSource)
+ .subscribe(onNext: { (newSongs) in
+ let songEntities: [SongEntity] = newSongs.map {
+ return SongEntity(
+ id: $0.id,
+ title: $0.title,
+ artist: $0.artist,
+ remix: $0.remix,
+ reaction: $0.reaction,
+ views: $0.views,
+ last: $0.last,
+ date: "\($0.date)"
+ )
+ }
+ PlayState.shared.loadAndAppendSongsToPlaylist(songEntities)
+ })
.disposed(by: disposeBag)
input.refreshPulled
- .withLatestFrom(input.newSongTypeTapped)
- .flatMap { [weak self] (type) -> Observable<(([ChartRankingEntity], [NewSongEntity]), [RecommendPlayListEntity])> in
- guard let self = self else{ return Observable.empty() }
-
- let chartAndNewSong = Observable.zip(
- self.fetchChartRankingUseCase
- .execute(type: .hourly, limit: 100)
- .catchAndReturn([])
- .asObservable(),
- self.fetchNewSongUseCase
- .execute(type: type)
- .catchAndReturn([])
- .asObservable()
- )
- let result = Observable.zip(
- chartAndNewSong,
- self.fetchRecommendPlayListUseCase
- .execute()
- .catchAndReturn([])
- .asObservable()
- )
+ .flatMap { _ -> Observable<(([ChartRankingEntity], [NewSongsEntity]), [RecommendPlayListEntity])> in
+ let chartAndNewSong = Observable.zip(chart, newSongs)
+ let result = Observable.zip(chartAndNewSong, playList)
return result
}
.debug("✅ Refresh Completed")
@@ -133,13 +134,13 @@ public final class HomeViewModel: ViewModelType {
chartDataSource.accept(chartRankingEntity)
newSongDataSource.accept(newSongEntity)
playListDataSource.accept(recommendPlayListEntity)
- }).disposed(by: disposeBag)
+ })
+ .disposed(by: disposeBag)
return Output(
chartDataSource: chartDataSource,
newSongDataSource: newSongDataSource,
- playListDataSource: playListDataSource,
- songEntityOfAllChart: songEntityOfAllChart
+ playListDataSource: playListDataSource
)
}
}
diff --git a/Projects/Features/HomeFeature/Sources/Views/HomeNewSongCell.swift b/Projects/Features/HomeFeature/Sources/Views/HomeNewSongCell.swift
index 834295bb3..ae3dd769b 100644
--- a/Projects/Features/HomeFeature/Sources/Views/HomeNewSongCell.swift
+++ b/Projects/Features/HomeFeature/Sources/Views/HomeNewSongCell.swift
@@ -34,7 +34,7 @@ class HomeNewSongCell: UICollectionViewCell {
extension HomeNewSongCell {
- func update(model: NewSongEntity) {
+ func update(model: NewSongsEntity) {
let titleAttributedString = NSMutableAttributedString(
string: model.title,
diff --git a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift
index 167d4f755..db554fa1b 100644
--- a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift
+++ b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift
@@ -27,7 +27,7 @@ public class PlayerViewController: UIViewController {
var playerView: PlayerView!
var miniPlayerView: MiniPlayerView!
- lazy var youtubePlayerView = YouTubePlayerHostingView(player: playState.player).then {
+ lazy var youtubePlayerView = YouTubePlayerHostingView(player: playState.player ?? YouTubePlayer()).then {
$0.isHidden = true
}
@@ -100,7 +100,7 @@ private extension PlayerViewController {
private func resetYouTubePlayerHostingView() {
self.youtubePlayerView.removeFromSuperview()
- self.youtubePlayerView = YouTubePlayerHostingView(player: self.playState.player)
+ self.youtubePlayerView = YouTubePlayerHostingView(player: self.playState.player ?? YouTubePlayer())
self.youtubePlayerView.isHidden = true
self.view.addSubview(self.youtubePlayerView)
self.youtubePlayerView.snp.makeConstraints {
@@ -447,7 +447,7 @@ extension PlayerViewController: UITableViewDelegate, UITableViewDataSource, UISc
findCenterCellIndexPath { centerCellIndexPath in
if viewModel.lyricsDict.isEmpty { return }
let start = viewModel.lyricsDict.keys.sorted()[centerCellIndexPath.row]
- playState.player.seek(to: Double(start), allowSeekAhead: true)
+ playState.player?.seek(to: Double(start), allowSeekAhead: true)
viewModel.isLyricsScrolling = false
}
}
@@ -458,7 +458,7 @@ extension PlayerViewController: UITableViewDelegate, UITableViewDataSource, UISc
findCenterCellIndexPath { centerCellIndexPath in
if viewModel.lyricsDict.isEmpty { return }
let start = viewModel.lyricsDict.keys.sorted()[centerCellIndexPath.row]
- playState.player.seek(to: Double(start), allowSeekAhead: true)
+ playState.player?.seek(to: Double(start), allowSeekAhead: true)
viewModel.isLyricsScrolling = false
}
}
diff --git a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift
index dd3c2fb20..5f431d93b 100644
--- a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift
+++ b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift
@@ -36,6 +36,8 @@ public class PlaylistViewController: UIViewController, SongCartViewType {
public var songCartView: CommonFeature.SongCartView!
public var bottomSheetView: CommonFeature.BottomSheetView!
+ private var panGestureRecognizer: UIPanGestureRecognizer!
+
init(viewModel: PlaylistViewModel, containSongsComponent: ContainSongsComponent) {
self.viewModel = viewModel
self.containSongsComponent = containSongsComponent
@@ -59,6 +61,7 @@ public class PlaylistViewController: UIViewController, SongCartViewType {
public override func viewDidLoad() {
super.viewDidLoad()
playlistView.playlistTableView.rx.setDelegate(self).disposed(by: disposeBag)
+ bindGesture()
bindViewModel()
bindActions()
}
@@ -75,6 +78,55 @@ public class PlaylistViewController: UIViewController, SongCartViewType {
}
private extension PlaylistViewController {
+ @objc func handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer) {
+ let distance = gestureRecognizer.translation(in: self.view)
+ let screenHeight = Utility.APP_HEIGHT()
+
+ switch gestureRecognizer.state {
+ case .began:
+ return
+
+ case .changed:
+ let distanceY = max(distance.y, 0)
+ view.frame = CGRect(x: 0, y: distanceY, width: view.frame.width, height: screenHeight)
+ //let opacity = 1 - (distanceY / screenHeight)
+ //updateOpacity(value: Float(opacity))
+
+ case .ended:
+ let velocity = gestureRecognizer.velocity(in: self.view)
+
+ // 빠르게 드래그하거나 화면의 40% 이상 드래그 했을 경우 dismiss
+ if velocity.y > 1000 || view.frame.origin.y > (screenHeight * 0.4) {
+ dismiss(animated: true)
+ } else {
+ UIView.animate(withDuration: 0.35,
+ delay: 0.0,
+ usingSpringWithDamping: 0.8,
+ initialSpringVelocity: 0.8,
+ options: [.curveEaseInOut],
+ animations: {
+ self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: screenHeight)
+ self.updateOpacity(value : 1)
+ })
+ }
+
+ default:
+ break
+ }
+ }
+
+ func updateOpacity(value: Float) {
+ playlistView.layer.opacity = value
+ }
+}
+
+private extension PlaylistViewController {
+ private func bindGesture() {
+ panGestureRecognizer = UIPanGestureRecognizer(target: self,
+ action: #selector(handlePanGesture(_:)))
+ self.playlistView.titleBarView.addGestureRecognizer(panGestureRecognizer)
+ }
+
private func bindViewModel() {
let input = PlaylistViewModel.Input(
closeButtonDidTapEvent: playlistView.closeButton.tapPublisher,
diff --git a/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift b/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift
index 683f9580e..ca0d2768d 100644
--- a/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift
+++ b/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift
@@ -167,7 +167,7 @@ final class PlayerViewModel: ViewModelType {
input.sliderValueChangedEvent.subscribe { [weak self] value in
guard let self else { return }
- self.playState.player.seek(to: Double(value), allowSeekAhead: true)
+ self.playState.player?.seek(to: Double(value), allowSeekAhead: true)
}.disposed(by: disposeBag)
input.likeButtonDidTapEvent
@@ -346,7 +346,7 @@ final class PlayerViewModel: ViewModelType {
}
- private func handleProgress(progress: PlayState.PlayProgress, output: Output) {
+ private func handleProgress(progress: PlayProgress, output: Output) {
output.playTimeText.send(self.formatTime(progress.currentProgress))
output.totalTimeText.send(self.formatTime(progress.endProgress))
output.playTimeValue.send(Float(progress.currentProgress))
diff --git a/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift b/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift
index 7a8a8406d..7ae085fc7 100644
--- a/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift
+++ b/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift
@@ -20,7 +20,7 @@ public final class PlaylistView: UIView {
private lazy var contentView = UIView()
- private lazy var titleBarView: UIView = UIView()
+ internal lazy var titleBarView: UIView = UIView()
internal lazy var closeButton = UIButton().then {
$0.setImage(DesignSystemAsset.Navigation.close.image, for: .normal)
diff --git a/Projects/Features/SearchFeature/Sources/ViewControllers/BeforeSearchContentViewController.swift b/Projects/Features/SearchFeature/Sources/ViewControllers/BeforeSearchContentViewController.swift
index c20393814..aeba8c987 100644
--- a/Projects/Features/SearchFeature/Sources/ViewControllers/BeforeSearchContentViewController.swift
+++ b/Projects/Features/SearchFeature/Sources/ViewControllers/BeforeSearchContentViewController.swift
@@ -54,6 +54,8 @@ public final class BeforeSearchContentViewController: BaseViewController,ViewCon
extension BeforeSearchContentViewController {
private func configureUI() {
self.tableView.backgroundColor = DesignSystemAsset.GrayColor.gray100.color
+ self.tableView.tableFooterView = UIView(frame: .init(x: 0, y: 0, width: APP_WIDTH(), height: PLAYER_HEIGHT()))
+ self.tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: PLAYER_HEIGHT(), right: 0)
self.indicator.type = .circleStrokeSpin
self.indicator.color = DesignSystemAsset.PrimaryColor.point.color
self.indicator.startAnimating()
diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/NoticeDetailViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/NoticeDetailViewController.swift
index 24328fd3b..f3c31ee74 100644
--- a/Projects/Features/StorageFeature/Sources/ViewControllers/NoticeDetailViewController.swift
+++ b/Projects/Features/StorageFeature/Sources/ViewControllers/NoticeDetailViewController.swift
@@ -35,7 +35,8 @@ public class NoticeDetailViewController: UIViewController, ViewControllerFromSto
public override func viewDidLoad() {
super.viewDidLoad()
configureUI()
- bind()
+ outputBind()
+ inputBind()
}
public static func viewController(
@@ -52,13 +53,17 @@ public class NoticeDetailViewController: UIViewController, ViewControllerFromSto
}
extension NoticeDetailViewController {
- private func bind() {
+ private func inputBind() {
+ viewModel.input.fetchNoticeDetail.onNext(())
+ }
+
+ private func outputBind() {
viewModel.output.dataSource
.bind(to: collectionView.rx.items(dataSource: createDataSource()))
.disposed(by: disposeBag)
viewModel.output.imageSizes
- .filter { !$0.isEmpty }
+ .skip(1)
.subscribe(onNext: { [weak self] _ in
self?.indicator.stopAnimating()
})
diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift
index 5ba472310..2c937b10d 100644
--- a/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift
+++ b/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift
@@ -14,6 +14,7 @@ import BaseFeature
import DataMappingModule
import MessageUI
import CommonFeature
+import SafariServices
public final class QuestionViewController: BaseViewController,ViewControllerFromStoryBoard {
@@ -239,7 +240,7 @@ extension QuestionViewController {
)
imageViews[i].isHidden = i == index ? false : true
superViews[i].layer.borderColor = i == index ? self.selectedColor.cgColor : self.unSelectedColor.cgColor
- superViews[i].addShadow(offset: CGSize(width: 0, height: 2),color: colorFromRGB("080F34"),opacity: i == index ? 0.08 : 0)
+ superViews[i].addShadow(offset: CGSize(width: 0, height: 2), color: colorFromRGB("080F34"), opacity: i == index ? 0.08 : 0)
}
})
.disposed(by: disposeBag)
@@ -247,26 +248,27 @@ extension QuestionViewController {
nextButton.rx.tap
.withLatestFrom(output.mailSource)
.filter { $0 != .unknown }
- .subscribe(onNext: { [weak self] in
- guard let self = self else {
- return
- }
-
- if MFMailComposeViewController.canSendMail() {
- let compseVC = MFMailComposeViewController()
- compseVC.mailComposeDelegate = self
- compseVC.setToRecipients([$0.receiver])
- compseVC.setSubject($0.title)
- compseVC.setMessageBody($0.body + $0.suffix, isHTML: false)
- self.present(compseVC, animated: true, completion: nil)
-
- }else {
- let vc = TextPopupViewController.viewController(
- text: "메일 계정이 설정되어 있지 않습니다.\n설정 > Mail 앱 > 계정을 설정해주세요.",
- cancelButtonIsHidden: true,
- confirmButtonText: "확인"
+ .subscribe(onNext: { [weak self] (source) in
+ guard let self = self else { return }
+ if source == .addSong {
+ let link: String = "https://whimsical.com/E3GQxrTaafVVBrhm55BNBS"
+ let textPopup = TextPopupViewController.viewController(
+ text: "· 이세돌 분들이 부르신 걸 이파리분들이 개인 소장용으로 일부 공개한 영상을 올리길 원하시면 ‘은수저’ 님에게 왁물원 채팅으로 부탁드립니다.\n· 왁뮤에 들어갈 수 있는 기준을 충족하는지 꼭 확인하시고 추가 요청해 주세요.",
+ cancelButtonIsHidden: false,
+ confirmButtonText: "다음",
+ cancelButtonText: "충족 기준 보기",
+ completion: {
+ self.goToMail(source: source)
+ },
+ cancelCompletion: {
+ guard let URL = URL(string: link) else { return }
+ let safari = SFSafariViewController(url: URL)
+ self.present(safari, animated: true)
+ }
)
- self.showPanModal(content: vc)
+ self.showPanModal(content: textPopup)
+ }else{
+ self.goToMail(source: source)
}
})
.disposed(by: disposeBag)
@@ -288,6 +290,26 @@ extension QuestionViewController {
}
}
+extension QuestionViewController {
+ private func goToMail(source: InquiryType) {
+ if MFMailComposeViewController.canSendMail() {
+ let compseVC = MFMailComposeViewController()
+ compseVC.mailComposeDelegate = self
+ compseVC.setToRecipients([source.receiver])
+ compseVC.setSubject(source.title)
+ compseVC.setMessageBody(source.body + source.suffix, isHTML: false)
+ self.present(compseVC, animated: true, completion: nil)
+
+ }else {
+ let vc = TextPopupViewController.viewController(
+ text: "메일 계정이 설정되어 있지 않습니다.\n설정 > Mail 앱 > 계정을 설정해주세요.",
+ cancelButtonIsHidden: true,
+ confirmButtonText: "확인"
+ )
+ self.showPanModal(content: vc)
+ }
+ }
+}
extension QuestionViewController : MFMailComposeViewControllerDelegate {
public func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
diff --git a/Projects/Features/StorageFeature/Sources/ViewModels/NoticeDetailViewModel.swift b/Projects/Features/StorageFeature/Sources/ViewModels/NoticeDetailViewModel.swift
index a287b39a6..40b96b963 100644
--- a/Projects/Features/StorageFeature/Sources/ViewModels/NoticeDetailViewModel.swift
+++ b/Projects/Features/StorageFeature/Sources/ViewModels/NoticeDetailViewModel.swift
@@ -26,6 +26,7 @@ public class NoticeDetailViewModel {
}
public struct Input {
+ var fetchNoticeDetail: PublishSubject = PublishSubject()
}
public struct Output {
@@ -45,10 +46,10 @@ public class NoticeDetailViewModel {
}
.compactMap { $0 }
- Observable.just(imageURLs)
- .flatMap { [weak self] (urls) -> Observable<[CGSize]> in
+ input.fetchNoticeDetail
+ .flatMap { [weak self] _ -> Observable<[CGSize]> in
guard let self else { return Observable.empty() }
- return self.downloadImage(urls: urls)
+ return imageURLs.isEmpty ? Observable.just([]) : self.downloadImage(urls: imageURLs)
}
.subscribe(onNext: { [weak self] (imageSizes) in
self?.output.imageSizes.accept(imageSizes)
diff --git a/Projects/Features/StorageFeature/Sources/ViewModels/QuestionViewModel.swift b/Projects/Features/StorageFeature/Sources/ViewModels/QuestionViewModel.swift
index bcb2a3c4c..97189688d 100644
--- a/Projects/Features/StorageFeature/Sources/ViewModels/QuestionViewModel.swift
+++ b/Projects/Features/StorageFeature/Sources/ViewModels/QuestionViewModel.swift
@@ -52,7 +52,7 @@ public final class QuestionViewModel:ViewModelType {
switch result {
case let .success(result):
DEBUG_LOG("MFMailComposeResult: \(result)")
- return (result == .sent) ? ("소중한 의견 감사합니다.", true) : ("", false)
+ return (result == .sent) ? ("문의가 등록되었습니다. 도움을 주셔서 감사합니다.", true) : ("", false)
case let .failure(error):
return (error.localizedDescription, false)
}
@@ -110,8 +110,6 @@ extension InquiryType {
"""
case .addSong:
return """
- · 이세돌 분들이 부르신 걸 이파리분들이 개인 소장용으로 일부 공개한 영상을 올리길 원하시면 ‘은수저’님에게 왁물원 채팅으로 부탁드립니다.
- · 왁뮤에 들어갈 수 있는 기준을 충족하는지 꼭 확인하시고 추가 요청해 주세요.
\n아티스트:\n\n노래 제목:\n\n유튜브 링크:\n\n내용:\n\n\n\n
"""
case .modifySong:
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/Info.plist
index 6ff1028a3..c3cd3bb38 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/Info.plist
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/Info.plist
@@ -5,8 +5,10 @@
AvailableLibraries
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
- ios-arm64_x86_64-maccatalyst
+ xros-arm64_x86_64-simulator
LibraryPath
Realm.framework
SupportedArchitectures
@@ -15,11 +17,13 @@
x86_64
SupportedPlatform
- ios
+ xros
SupportedPlatformVariant
- maccatalyst
+ simulator
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
ios-arm64
LibraryPath
@@ -32,52 +36,59 @@
ios
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
- macos-arm64_x86_64
+ xros-arm64
LibraryPath
Realm.framework
SupportedArchitectures
arm64
- x86_64
SupportedPlatform
- macos
+ xros
+ BinaryPath
+ Realm.framework/Versions/A/Realm
LibraryIdentifier
- watchos-arm64_i386_x86_64-simulator
+ ios-arm64_x86_64-maccatalyst
LibraryPath
Realm.framework
SupportedArchitectures
arm64
- i386
x86_64
SupportedPlatform
- watchos
+ ios
SupportedPlatformVariant
- simulator
+ maccatalyst
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
- tvos-arm64_x86_64-simulator
+ watchos-arm64_i386_x86_64-simulator
LibraryPath
Realm.framework
SupportedArchitectures
arm64
+ i386
x86_64
SupportedPlatform
- tvos
+ watchos
SupportedPlatformVariant
simulator
+ BinaryPath
+ Realm.framework/Versions/A/Realm
LibraryIdentifier
- ios-arm64_x86_64-simulator
+ macos-arm64_x86_64
LibraryPath
Realm.framework
SupportedArchitectures
@@ -86,11 +97,11 @@
x86_64
SupportedPlatform
- ios
- SupportedPlatformVariant
- simulator
+ macos
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
watchos-arm64_arm64_32_armv7k
LibraryPath
@@ -105,6 +116,8 @@
watchos
+ BinaryPath
+ Realm.framework/Realm
LibraryIdentifier
tvos-arm64
LibraryPath
@@ -116,6 +129,40 @@
SupportedPlatform
tvos
+
+ BinaryPath
+ Realm.framework/Realm
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ Realm.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ BinaryPath
+ Realm.framework/Realm
+ LibraryIdentifier
+ tvos-arm64_x86_64-simulator
+ LibraryPath
+ Realm.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ tvos
+ SupportedPlatformVariant
+ simulator
+
CFBundlePackageType
XFWK
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 37bbba555..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Info.plist
index 5a16400cd..e830776f7 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Realm
index 9a34ef4d7..bc8aec43f 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMPlatform.h
deleted file mode 100644
index 95187e4dc..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Realm
index 7a2501981..f1245c188 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/Info.plist
index e9573c5f6..17afd5bea 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/Info.plist
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-maccatalyst/Realm.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
BuildMachineOSBuild
- 21G646
+ 22G91
CFBundleDevelopmentRegion
English
CFBundleExecutable
@@ -17,7 +17,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 10.40.2
+ 10.42.3
CFBundleSignature
????
CFBundleSupportedPlatforms
@@ -25,7 +25,7 @@
MacOSX
CFBundleVersion
- 10.40.2
+ 10.42.3
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
@@ -33,15 +33,15 @@
DTPlatformName
macosx
DTPlatformVersion
- 13.3
+ 14.0
DTSDKBuild
- 22E245
+ 23A5326c
DTSDKName
- macosx13.3
+ macosx14.0
DTXcode
- 1431
+ 1500
DTXcodeBuild
- 14E300c
+ 15A5229h
LSMinimumSystemVersion
10.15
NSHumanReadableCopyright
@@ -49,6 +49,7 @@
UIDeviceFamily
2
+ 6
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 37bbba555..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Info.plist
index 22415d550..5e6b75327 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Realm
index 4e267c4d2..c6b0a13ea 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
index 629d859d3..5d86f8b27 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/ios-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
CHANGELOG.md
- Y8GU8qLvT58gIcC07I5ct6f15yQ=
+ Zv1aE8lgTnRPKTg4+FZa+hYQQNM=
Headers/NSError+RLMSync.h
@@ -18,7 +18,7 @@
Headers/RLMApp.h
- 6RyMP6TBnOUmBDH2QMQUojyINrk=
+ Ld28y6nHFgdYCwgko5F6L9mRTCc=
Headers/RLMArray.h
@@ -54,7 +54,7 @@
Headers/RLMDictionary.h
- 7XBEThemlgTLK/fjIZZRYBBY0mw=
+ J4dcvrLymwvq7wa1sgBJejF2lnk=
Headers/RLMEmailPasswordAuth.h
@@ -66,7 +66,7 @@
Headers/RLMError.h
- 5x4rLGEjGLOQkkDsTvH34k/NNUo=
+ f/fmbab1ht8EdLMSS3f0NXW1ejg=
Headers/RLMFindOneAndModifyOptions.h
@@ -94,7 +94,7 @@
Headers/RLMMongoDatabase.h
- O7qUDn3s7yS4uxFaQz4juTrU+HY=
+ 0+ymiybJvLDiWbH4UgOpF5kK7JA=
Headers/RLMNetworkTransport.h
@@ -120,10 +120,6 @@
yasl78Lq+PvN6f/sBDQAG9IiiwU=
- Headers/RLMPlatform.h
-
- rMjVKSYmeE1ZgDP0WxJy7QaplcM=
-
Headers/RLMProperty.h
QyE/WKZTEZokOC4HNpIuGWTo3V8=
@@ -182,7 +178,7 @@
Headers/RLMSyncManager.h
- mXu4dAftvdZCFzVS3ez+96Ek15E=
+ YkhlSPT2hNZyA//Lf07+5rkaTsc=
Headers/RLMSyncSession.h
@@ -214,11 +210,11 @@
Headers/Realm.h
- 3mbp9c9/HFfHwbrysBEt9iCljqo=
+ fDREEG2URHEbKjZ2nfKq+7M/7m8=
Info.plist
- xDsIqhdLRGdklvY/Tal/rZlTAcQ=
+ NDthP8IGAbod/DoVrdChQyBHybo=
LICENSE
@@ -226,7 +222,7 @@
Modules/module.modulemap
- qh0tedLfxDFRk+f7aR8LrPdUIRQ=
+ A28J5rfl2ooZX6nLmKAtWsKyoFg=
PrivateHeaders/RLMAccessor.h
@@ -234,7 +230,7 @@
PrivateHeaders/RLMApp_Private.h
- /TYV5cyQTqtxO1CaqCz8NYEPKiA=
+ fw57ZhMCNGsWCpB/lCMaKqf0gek=
PrivateHeaders/RLMArray_Private.h
@@ -242,7 +238,7 @@
PrivateHeaders/RLMAsyncTask_Private.h
- LGxSKo8pzwcfSmd1xrmd0iwKHoc=
+ ayc2eXD44f0/BptRlmZc+ocrzs8=
PrivateHeaders/RLMBSON_Private.hpp
@@ -282,7 +278,7 @@
PrivateHeaders/RLMObjectStore.h
- yzumEKtFJ7A507jAYkj8Z/DGG0I=
+ LH3NYAHYk37ukx3w36l3VfRkWLY=
PrivateHeaders/RLMObject_Private.h
@@ -351,7 +347,7 @@
hash2
- YkS7d92nc1CbgkrNj49UJRdpGfHZ4B4jOg0AqFE9EHo=
+ wt8p9tw4OPVj/LtpO9d+DXFoOnRQ6hRaxf/hS2NxDRg=
Headers/NSError+RLMSync.h
@@ -372,7 +368,7 @@
hash2
- uLD2KqwHxLTJ/f9mMDT52TZw6QqpvJeb6plXQI4/f1o=
+ fmHB8oywmfycQqOzXoYB99LpOLE7akGn0ZrJtqviiTs=
Headers/RLMArray.h
@@ -435,7 +431,7 @@
hash2
- I0iusExV7YvVkdt6MHXOAwNHJ2iVzHJciY0geWG3g5A=
+ 7zN2nXgEwGfrPRtbgqtfoLrwJbwqohcVvU/OyA/07Lk=
Headers/RLMEmailPasswordAuth.h
@@ -456,7 +452,7 @@
hash2
- OWjWlN8fXFm/L0glkTwwiNA7HP2SqXfp++r0dCTxccI=
+ 6duvM3p0FRf6fZ+aS57vHkf7WvV1KPoz7PcIZA48WTU=
Headers/RLMFindOneAndModifyOptions.h
@@ -505,7 +501,7 @@
hash2
- eMx63OF3EFRqAGsLMEXvv+y0YnKqWOB1RiyzlyW2+IE=
+ wnJWmMW0z3xO9KVRJKpiE+xkaKkzXBXiH5j+8eaFmcA=
Headers/RLMNetworkTransport.h
@@ -550,13 +546,6 @@
8oCJihoGgigIF170SRk/yU5RLDNX9TYQUrXxLjYrtuM=
- Headers/RLMPlatform.h
-
- hash2
-
- n8zkay5MESbAFL6eMc22AAmlvvYylqsQj4HAB4zvtNg=
-
-
Headers/RLMProperty.h
hash2
@@ -659,7 +648,7 @@
hash2
- mdAe8l7XifP7CmhttYUKNJxUfRFiL6vb+MRO2sXIqpo=
+ rFV4QDsBonA29YqdZXsYhNSVewEYkrafSLPWBGaEhqI=
Headers/RLMSyncSession.h
@@ -715,7 +704,7 @@
hash2
- XojGXRDQANLfoU7VwvyqGGmZmf/oNUXjRNXzxcxJZEA=
+ kjoP0TvFhg49q7sxVEgPoNFg+zqo9bCE2Uh0YOpDpbE=
LICENSE
@@ -729,7 +718,7 @@
hash2
- UDqXkLimJ+9qpDCcsMjIqR5Qsd7iEaavhqi8J7iEBhI=
+ KdpbsAGrxax/jx81TZ93YswnCwT1BZTor6VwIHvgRUs=
PrivateHeaders/RLMAccessor.h
@@ -743,7 +732,7 @@
hash2
- 6KWA9yC7TNQAvVa3VI9qPhSnV6DWxJZkFJHCIRX49u4=
+ 4pd3636NRX7kQgsEy7dv7IQH/AyZMKjQvA2nmK97Vq0=
PrivateHeaders/RLMArray_Private.h
@@ -757,7 +746,7 @@
hash2
- iKrJ9TGXoc8UTr44+s8a0yCnhaJeVQNs0mLKA5yBfRs=
+ vD90SYI5658JDp88stHbsxALdVNhs0Tojcld9hVORHE=
PrivateHeaders/RLMBSON_Private.hpp
@@ -827,7 +816,7 @@
hash2
- glcepASGexcV1kvpkZeXGcPrdsuxPgyj7HNo6RMGNuQ=
+ 0KjmazUjg/mYvymGTJ74ChBgvrqN2Lc9O0TqcYF/Mic=
PrivateHeaders/RLMObject_Private.h
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMPlatform.h
deleted file mode 100644
index 979686a7d..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Realm
index a42529cb3..2fcdc0582 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/Info.plist
index 372a3ec3e..0c7b6d04e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/Info.plist
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
BuildMachineOSBuild
- 21G646
+ 22G91
CFBundleDevelopmentRegion
English
CFBundleExecutable
@@ -17,7 +17,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 10.40.2
+ 10.42.3
CFBundleSignature
????
CFBundleSupportedPlatforms
@@ -25,7 +25,7 @@
MacOSX
CFBundleVersion
- 10.40.2
+ 10.42.3
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
@@ -33,17 +33,17 @@
DTPlatformName
macosx
DTPlatformVersion
- 13.3
+ 14.0
DTSDKBuild
- 22E245
+ 23A5326c
DTSDKName
- macosx13.3
+ macosx14.0
DTXcode
- 1431
+ 1500
DTXcodeBuild
- 14E300c
+ 15A5229h
LSMinimumSystemVersion
- 10.13
+ 10.14
NSHumanReadableCopyright
Copyright © 2014-2021 Realm. All rights reserved.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/_CodeSignature/CodeResources b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/_CodeSignature/CodeResources
index 4a5ddab3b..a51ebb17e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/_CodeSignature/CodeResources
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/macos-arm64_x86_64/Realm.framework/Versions/A/_CodeSignature/CodeResources
@@ -6,11 +6,11 @@
Resources/CHANGELOG.md
- Y8GU8qLvT58gIcC07I5ct6f15yQ=
+ Zv1aE8lgTnRPKTg4+FZa+hYQQNM=
Resources/Info.plist
- RcFkpPcXZ0TLolUcpomrb9dKdDY=
+ 37qKn6yYo8Bs7w5Bsw9U508vLTM=
Resources/LICENSE
@@ -37,7 +37,7 @@
hash2
- uLD2KqwHxLTJ/f9mMDT52TZw6QqpvJeb6plXQI4/f1o=
+ fmHB8oywmfycQqOzXoYB99LpOLE7akGn0ZrJtqviiTs=
Headers/RLMArray.h
@@ -100,7 +100,7 @@
hash2
- I0iusExV7YvVkdt6MHXOAwNHJ2iVzHJciY0geWG3g5A=
+ 7zN2nXgEwGfrPRtbgqtfoLrwJbwqohcVvU/OyA/07Lk=
Headers/RLMEmailPasswordAuth.h
@@ -121,7 +121,7 @@
hash2
- OWjWlN8fXFm/L0glkTwwiNA7HP2SqXfp++r0dCTxccI=
+ 6duvM3p0FRf6fZ+aS57vHkf7WvV1KPoz7PcIZA48WTU=
Headers/RLMFindOneAndModifyOptions.h
@@ -170,7 +170,7 @@
hash2
- eMx63OF3EFRqAGsLMEXvv+y0YnKqWOB1RiyzlyW2+IE=
+ wnJWmMW0z3xO9KVRJKpiE+xkaKkzXBXiH5j+8eaFmcA=
Headers/RLMNetworkTransport.h
@@ -215,13 +215,6 @@
8oCJihoGgigIF170SRk/yU5RLDNX9TYQUrXxLjYrtuM=
- Headers/RLMPlatform.h
-
- hash2
-
- L0mOKhJ6tDl4S6VMEBG3wOahF1oDVR+ctnXfc1wdSrM=
-
-
Headers/RLMProperty.h
hash2
@@ -324,7 +317,7 @@
hash2
- mdAe8l7XifP7CmhttYUKNJxUfRFiL6vb+MRO2sXIqpo=
+ rFV4QDsBonA29YqdZXsYhNSVewEYkrafSLPWBGaEhqI=
Headers/RLMSyncSession.h
@@ -380,14 +373,14 @@
hash2
- XojGXRDQANLfoU7VwvyqGGmZmf/oNUXjRNXzxcxJZEA=
+ kjoP0TvFhg49q7sxVEgPoNFg+zqo9bCE2Uh0YOpDpbE=
Modules/module.modulemap
hash2
- UDqXkLimJ+9qpDCcsMjIqR5Qsd7iEaavhqi8J7iEBhI=
+ KdpbsAGrxax/jx81TZ93YswnCwT1BZTor6VwIHvgRUs=
PrivateHeaders/RLMAccessor.h
@@ -401,7 +394,7 @@
hash2
- 6KWA9yC7TNQAvVa3VI9qPhSnV6DWxJZkFJHCIRX49u4=
+ 4pd3636NRX7kQgsEy7dv7IQH/AyZMKjQvA2nmK97Vq0=
PrivateHeaders/RLMArray_Private.h
@@ -415,7 +408,7 @@
hash2
- iKrJ9TGXoc8UTr44+s8a0yCnhaJeVQNs0mLKA5yBfRs=
+ vD90SYI5658JDp88stHbsxALdVNhs0Tojcld9hVORHE=
PrivateHeaders/RLMBSON_Private.hpp
@@ -485,7 +478,7 @@
hash2
- glcepASGexcV1kvpkZeXGcPrdsuxPgyj7HNo6RMGNuQ=
+ 0KjmazUjg/mYvymGTJ74ChBgvrqN2Lc9O0TqcYF/Mic=
PrivateHeaders/RLMObject_Private.h
@@ -597,14 +590,14 @@
hash2
- YkS7d92nc1CbgkrNj49UJRdpGfHZ4B4jOg0AqFE9EHo=
+ wt8p9tw4OPVj/LtpO9d+DXFoOnRQ6hRaxf/hS2NxDRg=
Resources/Info.plist
hash2
- 7tsMttSM/iCgd1KKj3dy2MFa49Iqi14xnEjF8r90ON0=
+ j5zPVyg7y3Li5RJXjlOqskV7JvGSz10z0/tRdQ+iniE=
Resources/LICENSE
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 2652b2107..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Info.plist
index f618c63f9..54638b8b3 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Realm
index dfd95e295..36880b3a8 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 2652b2107..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-
-#ifdef REALM_BUILDING_FOR_WATCHOS
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Info.plist
index 1231dee72..8f9a11cd1 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Realm
index 1f7ecc31f..04c592cb6 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
index 955bcaf1b..bba304ffe 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/tvos-arm64_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
CHANGELOG.md
- Y8GU8qLvT58gIcC07I5ct6f15yQ=
+ Zv1aE8lgTnRPKTg4+FZa+hYQQNM=
Headers/NSError+RLMSync.h
@@ -18,7 +18,7 @@
Headers/RLMApp.h
- 6RyMP6TBnOUmBDH2QMQUojyINrk=
+ Ld28y6nHFgdYCwgko5F6L9mRTCc=
Headers/RLMArray.h
@@ -54,7 +54,7 @@
Headers/RLMDictionary.h
- 7XBEThemlgTLK/fjIZZRYBBY0mw=
+ J4dcvrLymwvq7wa1sgBJejF2lnk=
Headers/RLMEmailPasswordAuth.h
@@ -66,7 +66,7 @@
Headers/RLMError.h
- 5x4rLGEjGLOQkkDsTvH34k/NNUo=
+ f/fmbab1ht8EdLMSS3f0NXW1ejg=
Headers/RLMFindOneAndModifyOptions.h
@@ -94,7 +94,7 @@
Headers/RLMMongoDatabase.h
- O7qUDn3s7yS4uxFaQz4juTrU+HY=
+ 0+ymiybJvLDiWbH4UgOpF5kK7JA=
Headers/RLMNetworkTransport.h
@@ -120,10 +120,6 @@
yasl78Lq+PvN6f/sBDQAG9IiiwU=
- Headers/RLMPlatform.h
-
- SO7Rli3lPyvxrINeyVGQZarLPYo=
-
Headers/RLMProperty.h
QyE/WKZTEZokOC4HNpIuGWTo3V8=
@@ -182,7 +178,7 @@
Headers/RLMSyncManager.h
- mXu4dAftvdZCFzVS3ez+96Ek15E=
+ YkhlSPT2hNZyA//Lf07+5rkaTsc=
Headers/RLMSyncSession.h
@@ -214,11 +210,11 @@
Headers/Realm.h
- 3mbp9c9/HFfHwbrysBEt9iCljqo=
+ fDREEG2URHEbKjZ2nfKq+7M/7m8=
Info.plist
- N7j1LOmIzvjiBg+ArZ7OpJm7AiY=
+ jC4ntFip62i8jcuIoMVm9yp7Z4k=
LICENSE
@@ -226,7 +222,7 @@
Modules/module.modulemap
- qh0tedLfxDFRk+f7aR8LrPdUIRQ=
+ A28J5rfl2ooZX6nLmKAtWsKyoFg=
PrivateHeaders/RLMAccessor.h
@@ -234,7 +230,7 @@
PrivateHeaders/RLMApp_Private.h
- /TYV5cyQTqtxO1CaqCz8NYEPKiA=
+ fw57ZhMCNGsWCpB/lCMaKqf0gek=
PrivateHeaders/RLMArray_Private.h
@@ -242,7 +238,7 @@
PrivateHeaders/RLMAsyncTask_Private.h
- LGxSKo8pzwcfSmd1xrmd0iwKHoc=
+ ayc2eXD44f0/BptRlmZc+ocrzs8=
PrivateHeaders/RLMBSON_Private.hpp
@@ -282,7 +278,7 @@
PrivateHeaders/RLMObjectStore.h
- yzumEKtFJ7A507jAYkj8Z/DGG0I=
+ LH3NYAHYk37ukx3w36l3VfRkWLY=
PrivateHeaders/RLMObject_Private.h
@@ -351,7 +347,7 @@
hash2
- YkS7d92nc1CbgkrNj49UJRdpGfHZ4B4jOg0AqFE9EHo=
+ wt8p9tw4OPVj/LtpO9d+DXFoOnRQ6hRaxf/hS2NxDRg=
Headers/NSError+RLMSync.h
@@ -372,7 +368,7 @@
hash2
- uLD2KqwHxLTJ/f9mMDT52TZw6QqpvJeb6plXQI4/f1o=
+ fmHB8oywmfycQqOzXoYB99LpOLE7akGn0ZrJtqviiTs=
Headers/RLMArray.h
@@ -435,7 +431,7 @@
hash2
- I0iusExV7YvVkdt6MHXOAwNHJ2iVzHJciY0geWG3g5A=
+ 7zN2nXgEwGfrPRtbgqtfoLrwJbwqohcVvU/OyA/07Lk=
Headers/RLMEmailPasswordAuth.h
@@ -456,7 +452,7 @@
hash2
- OWjWlN8fXFm/L0glkTwwiNA7HP2SqXfp++r0dCTxccI=
+ 6duvM3p0FRf6fZ+aS57vHkf7WvV1KPoz7PcIZA48WTU=
Headers/RLMFindOneAndModifyOptions.h
@@ -505,7 +501,7 @@
hash2
- eMx63OF3EFRqAGsLMEXvv+y0YnKqWOB1RiyzlyW2+IE=
+ wnJWmMW0z3xO9KVRJKpiE+xkaKkzXBXiH5j+8eaFmcA=
Headers/RLMNetworkTransport.h
@@ -550,13 +546,6 @@
8oCJihoGgigIF170SRk/yU5RLDNX9TYQUrXxLjYrtuM=
- Headers/RLMPlatform.h
-
- hash2
-
- QTJ/H5fylGP8eHUifgb6M7yMr2yYQGMmVQjVWqP6R9s=
-
-
Headers/RLMProperty.h
hash2
@@ -659,7 +648,7 @@
hash2
- mdAe8l7XifP7CmhttYUKNJxUfRFiL6vb+MRO2sXIqpo=
+ rFV4QDsBonA29YqdZXsYhNSVewEYkrafSLPWBGaEhqI=
Headers/RLMSyncSession.h
@@ -715,7 +704,7 @@
hash2
- XojGXRDQANLfoU7VwvyqGGmZmf/oNUXjRNXzxcxJZEA=
+ kjoP0TvFhg49q7sxVEgPoNFg+zqo9bCE2Uh0YOpDpbE=
LICENSE
@@ -729,7 +718,7 @@
hash2
- UDqXkLimJ+9qpDCcsMjIqR5Qsd7iEaavhqi8J7iEBhI=
+ KdpbsAGrxax/jx81TZ93YswnCwT1BZTor6VwIHvgRUs=
PrivateHeaders/RLMAccessor.h
@@ -743,7 +732,7 @@
hash2
- 6KWA9yC7TNQAvVa3VI9qPhSnV6DWxJZkFJHCIRX49u4=
+ 4pd3636NRX7kQgsEy7dv7IQH/AyZMKjQvA2nmK97Vq0=
PrivateHeaders/RLMArray_Private.h
@@ -757,7 +746,7 @@
hash2
- iKrJ9TGXoc8UTr44+s8a0yCnhaJeVQNs0mLKA5yBfRs=
+ vD90SYI5658JDp88stHbsxALdVNhs0Tojcld9hVORHE=
PrivateHeaders/RLMBSON_Private.hpp
@@ -827,7 +816,7 @@
hash2
- glcepASGexcV1kvpkZeXGcPrdsuxPgyj7HNo6RMGNuQ=
+ 0KjmazUjg/mYvymGTJ74ChBgvrqN2Lc9O0TqcYF/Mic=
PrivateHeaders/RLMObject_Private.h
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 684181261..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Info.plist
index 600169ea1..1647166d5 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Realm
index 60c295118..49fb4952a 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_arm64_32_armv7k/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/CHANGELOG.md
index bccff1d05..00cc01244 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/CHANGELOG.md
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/CHANGELOG.md
@@ -1,3 +1,222 @@
+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)
=============================================================
@@ -15,7 +234,7 @@
* 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)
+ data was read from it. ([Core #6693](https://github.com/realm/realm-core/issues/6693), since v10.40.0)
### Compatibility
@@ -27,7 +246,7 @@
### Internal
-* Upgraded realm-core from 13.13.0 to 13.16.0.
+* 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.
@@ -3870,10 +4089,6 @@ This release also contains all changes from 5.3.2.
* Realm Studio: 10.0.0 or later.
* Carthage release for Swift is built with Xcode 11.5.
-### Internal
-* Upgraded realm-core from ? to ?
-* Upgraded realm-sync from ? to ?
-
10.0.0-beta.2 Release notes (2020-06-09)
=============================================================
Xcode 11.3 and iOS 9 are now the minimum supported versions.
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMApp.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMApp.h
index 3aa02c5e1..2228232e8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMApp.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMApp.h
@@ -23,7 +23,7 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
@protocol RLMNetworkTransport, RLMBSON;
-@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient;
+@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;
/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);
@@ -35,7 +35,7 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
-@interface RLMAppConfiguration : NSObject
+@interface RLMAppConfiguration : NSObject
/// A custom base URL to request against.
@property (nonatomic, strong, nullable) NSString *baseURL;
@@ -43,41 +43,67 @@ typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);
/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id transport;
-/// A custom app name.
-@property (nonatomic, strong, nullable) NSString *localAppName;
-
-/// A custom app version.
-@property (nonatomic, strong, nullable) NSString *localAppVersion;
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppName
+ __attribute__((deprecated("This field is not used")));
+/// :nodoc:
+@property (nonatomic, strong, nullable) NSString *localAppVersion
+ __attribute__((deprecated("This field is not used")));
/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;
+/// If enabled (the default), a single connection is used for all Realms opened
+/// with a single sync user. If disabled, a separate connection is used for each
+/// Realm.
+///
+/// Session multiplexing reduces resources used and typically improves
+/// performance. When multiplexing is enabled, the connection is not immediately
+/// closed when the last session is closed, and instead remains open for
+/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
+/// default).
+@property (nonatomic, assign) BOOL enableSessionMultiplexing;
+
+/**
+ Options for the assorted types of connection timeouts for sync connections.
+
+ If nil default values for all timeouts are used instead.
+ */
+@property (nonatomic, nullable, copy) RLMSyncTimeoutOptions *syncTimeouts;
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
+/// :nodoc:
+- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
+ transport:(nullable id)transport
+ localAppName:(nullable NSString *)localAppName
+ localAppVersion:(nullable NSString *)localAppVersion
+ defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS
+__attribute__((deprecated("localAppName and localAppVersion are unused")));
+
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
-@param localAppName A custom app name.
-@param localAppVersion A custom app version.
*/
- (instancetype)initWithBaseURL:(nullable NSString *)baseURL
- transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion;
+ transport:(nullable id)transport;
/**
Create a new Realm App configuration.
@param baseURL A custom base URL to request against.
@param transport A custom network transport.
- @param localAppName A custom app name.
- @param localAppVersion A custom app version.
@param defaultRequestTimeoutMS A custom default timeout for network requests.
*/
- (instancetype)initWithBaseURL:(nullable NSString *) baseURL
transport:(nullable id)transport
- localAppName:(nullable NSString *)localAppName
- localAppVersion:(nullable NSString *)localAppVersion
defaultRequestTimeoutMS:(NSUInteger)defaultRequestTimeoutMS;
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
index 99f98b92a..9c8cac538 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMDictionary.h
@@ -40,6 +40,8 @@ RLM_HEADER_AUDIT_BEGIN(nullability, sendability)
`RLMDictionary`s cannot be created directly. `RLMDictionary` properties on `RLMObject`s are
lazily created when accessed, or can be obtained by querying a Realm.
+ `RLMDictionary` only supports `NSString` as a key. Realm disallows the use of `.` or `$` characters within a dictionary key.
+
### Key-Value Observing
`RLMDictionary` supports dictionary key-value observing on `RLMDictionary` properties on `RLMObject`
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMError.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMError.h
index 795361b2b..514ceee3f 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMError.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMError.h
@@ -265,13 +265,7 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
*/
RLMSyncErrorClientResetError = 7,
- /**
- An error that indicates an authentication error occurred.
-
- The `kRLMSyncUnderlyingErrorKey` key in the user info dictionary will contain the
- underlying error, which is guaranteed to be under the `RLMSyncAuthErrorDomain`
- error domain.
- */
+ /// :nodoc:
RLMSyncErrorUnderlyingAuthError = 8,
/**
@@ -314,56 +308,53 @@ typedef RLM_ERROR_ENUM(NSInteger, RLMSyncError, RLMSyncErrorDomain) {
This error is informational and does not require any explicit handling.
*/
RLMSyncErrorWriteRejected = 11,
+
+ /**
+ A connection error without a more specific error code occurred.
+
+ Realm internally handles retrying connections with appropriate backoffs,
+ so connection errors are normally logged and not reported to the error
+ handler. The exception is if
+ ``RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors`` is set to `true`,
+ in which case async opens will be canceled on connection failures and the
+ error will be reported to the completion handler.
+
+ Note that connection timeouts are reported as
+ (errorDomain: NSPosixErrorDomain, error: ETIMEDOUT)
+ and not as one of these error codes.
+ */
+ RLMSyncErrorConnectionFailed = 12,
+
+ /**
+ Connecting to the server failed due to a TLS issue such as an invalid certificate.
+ */
+ RLMSyncErrorTLSHandshakeFailed = 13,
};
#pragma mark - RLMSyncAuthError
-/// An error which is related to authentication to Atlas App Services.
+// NEXT-MAJOR: This was a ROS thing and should have been removed in v10
+/// :nodoc:
typedef RLM_ERROR_ENUM(NSInteger, RLMSyncAuthError, RLMSyncAuthErrorDomain) {
- /// An error that indicates that the response received from the authentication server was malformed.
RLMSyncAuthErrorBadResponse = 1,
-
- /// An error that indicates that the supplied Realm path was invalid, or could not be resolved by the authentication
- /// server.
RLMSyncAuthErrorBadRemoteRealmPath = 2,
-
- /// An error that indicates that the response received from the authentication server was an HTTP error code. The
- /// `userInfo` dictionary contains the actual error code value.
RLMSyncAuthErrorHTTPStatusCodeError = 3,
-
- /// An error that indicates a problem with the session (a specific Realm opened for sync).
RLMSyncAuthErrorClientSessionError = 4,
-
- /// An error that indicates that the provided credentials are ill-formed.
RLMSyncAuthErrorInvalidParameters = 601,
-
- /// An error that indicates that no Realm path was included in the URL.
RLMSyncAuthErrorMissingPath = 602,
-
- /// An error that indicates that the provided credentials are invalid.
RLMSyncAuthErrorInvalidCredential = 611,
-
- /// An error that indicates that the user with provided credentials does not exist.
RLMSyncAuthErrorUserDoesNotExist = 612,
-
- /// An error that indicates that the user cannot be registered as it exists already.
RLMSyncAuthErrorUserAlreadyExists = 613,
-
- /// An error that indicates the path is invalid or the user doesn't have access to that Realm.
RLMSyncAuthErrorAccessDeniedOrInvalidPath = 614,
-
- /// An error that indicates the refresh token was invalid.
RLMSyncAuthErrorInvalidAccessToken = 615,
-
- /// An error that indicates the file at the given path can't be shared.
RLMSyncAuthErrorFileCannotBeShared = 703,
-};
+} __attribute__((deprecated("Errors of this type are no longer reported")));
#pragma mark - RLMSyncAppError
/// An error which occurred when making a request to Atlas App Services.
typedef RLM_ERROR_ENUM(NSInteger, RLMAppError, RLMAppErrorDomain) {
- /// An unknown error has occured
+ /// An unknown error has occurred
RLMAppErrorUnknown = -1,
/// A HTTP request completed with an error status code. The failing status
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
index f700cb87a..177fbc1b8 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMMongoDatabase.h
@@ -44,6 +44,7 @@ RLM_SWIFT_SENDABLE RLM_FINAL // immutable final class
/// @param name The name of the collection to return
/// @returns The collection
- (RLMMongoCollection *)collectionWithName:(NSString *)name;
+// NEXT-MAJOR: NS_SWIFT_NAME(collection(named:))
@end
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
deleted file mode 100644
index 684181261..000000000
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMPlatform.h
+++ /dev/null
@@ -1,46 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2014 Realm Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////
-
-#ifdef REALM_BUILDING_FOR_MACOS
-#if !__is_target_os(macosx)
-#error Attempting to use Realm's macOS framework in a non-macOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_MACCATALYST
-#if !__is_target_os(ios) || !__is_target_environment(macabi)
-#error Attempting to use Realm's Catalyst framework in a non-Catalyst target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_IOS
-#if !__is_target_os(ios) || __is_target_environment(macabi)
-#error Attempting to use Realm's iOS framework in a non-iOS target.
-#endif
-#endif
-
-#ifdef REALM_BUILDING_FOR_TVOS
-#if !__is_target_os(tvos)
-#error Attempting to use Realm's tvOS framework in a non-tvOS target.
-#endif
-#endif
-
-#if !__is_target_os(watchos)
-#error Attempting to use Realm's watchOS framework in a non-watchOS target.
-#endif
-#define REALM_IOPLATFORMUUID @""
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
index d130ebaff..1dee453d0 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/RLMSyncManager.h
@@ -50,7 +50,7 @@ typedef RLM_CLOSED_ENUM(NSUInteger, RLMSyncLogLevel) {
///
/// - warning: Will incur a measurable performance impact.
RLMSyncLogLevelAll
-} __attribute__((deprecated("Use `RLMLogLevel`/`LogLevel` instead")));
+};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -218,11 +218,6 @@ __attribute__((deprecated("Use `RLMLogger.default`/`Logger.shared` to set/get th
///
/// Defaults to 1 minute.
@property (nonatomic) NSUInteger fastReconnectLimit;
-
-/// The app configuration that has initialized this SyncManager.
-/// This can be set multiple times. This gives the SyncManager
-/// access to necessary app functionality.
-@property (nonatomic, readonly) RLMAppConfiguration *appConfiguration;
@end
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/Realm.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/Realm.h
index 0f980e1b3..245596393 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/Realm.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Headers/Realm.h
@@ -29,7 +29,6 @@
#import
#import
#import
-#import
#import
#import
#import
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Info.plist b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Info.plist
index 7fa210879..f4d2fb36a 100644
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Info.plist and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Info.plist differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Modules/module.modulemap b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Modules/module.modulemap
index ed5e7fee2..519ddc20b 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Modules/module.modulemap
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Modules/module.modulemap
@@ -13,7 +13,6 @@ framework module Realm {
header "RLMObject.h"
header "RLMObjectId.h"
header "RLMObjectSchema.h"
- header "RLMPlatform.h"
header "RLMProperty.h"
header "RLMProviderClient.h"
header "RLMRealm+Sync.h"
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
index ea52e9715..5da5c3c7a 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMApp_Private.h
@@ -36,15 +36,15 @@ typedef void(^RLMAppNotificationBlock)(RLMApp *);
/// Subscribe to notifications for this RLMApp.
- (RLMAppSubscriptionToken *)subscribe:(RLMAppNotificationBlock)block;
-+ (instancetype)appWithId:(NSString *)appId
- configuration:(nullable RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
-
-+ (instancetype)uncachedAppWithId:(NSString *)appId
- configuration:(RLMAppConfiguration *)configuration
- rootDirectory:(nullable NSURL *)rootDirectory;
++ (instancetype)appWithConfiguration:(RLMAppConfiguration *)configuration;
+ (void)resetAppCache;
@end
+@interface RLMAppConfiguration ()
+@property (nonatomic) NSString *appId;
+@property (nonatomic) BOOL encryptMetadata;
+@property (nonatomic) NSURL *rootDirectory;
+@end
+
RLM_HEADER_AUDIT_END(nullability, sendability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
index cee1e7fca..3cce89441 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMAsyncTask_Private.h
@@ -18,7 +18,7 @@
#import
-#import
+#import "RLMRealm_Private.h"
RLM_HEADER_AUDIT_BEGIN(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
index 69443c965..6045f1e8e 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/PrivateHeaders/RLMObjectStore.h
@@ -92,7 +92,7 @@ RLMObjectBase *RLMObjectFromObjLink(RLMRealm *realm,
// Create accessors
RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, int64_t key) NS_RETURNS_RETAINED;
-RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, realm::Obj&& obj) NS_RETURNS_RETAINED;
+RLMObjectBase *RLMCreateObjectAccessor(RLMClassInfo& info, const realm::Obj& obj) NS_RETURNS_RETAINED;
#endif
RLM_HEADER_AUDIT_END(nullability)
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Realm b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Realm
index e02185038..ab72f9b14 100755
Binary files a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Realm and b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/Realm differ
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
index 63002bc2a..ac831c924 100644
--- a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/watchos-arm64_i386_x86_64-simulator/Realm.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
CHANGELOG.md
- Y8GU8qLvT58gIcC07I5ct6f15yQ=
+ Zv1aE8lgTnRPKTg4+FZa+hYQQNM=
Headers/NSError+RLMSync.h
@@ -18,7 +18,7 @@
Headers/RLMApp.h
- 6RyMP6TBnOUmBDH2QMQUojyINrk=
+ Ld28y6nHFgdYCwgko5F6L9mRTCc=
Headers/RLMArray.h
@@ -54,7 +54,7 @@
Headers/RLMDictionary.h
- 7XBEThemlgTLK/fjIZZRYBBY0mw=
+ J4dcvrLymwvq7wa1sgBJejF2lnk=
Headers/RLMEmailPasswordAuth.h
@@ -66,7 +66,7 @@
Headers/RLMError.h
- 5x4rLGEjGLOQkkDsTvH34k/NNUo=
+ f/fmbab1ht8EdLMSS3f0NXW1ejg=
Headers/RLMFindOneAndModifyOptions.h
@@ -94,7 +94,7 @@
Headers/RLMMongoDatabase.h
- O7qUDn3s7yS4uxFaQz4juTrU+HY=
+ 0+ymiybJvLDiWbH4UgOpF5kK7JA=
Headers/RLMNetworkTransport.h
@@ -120,10 +120,6 @@
yasl78Lq+PvN6f/sBDQAG9IiiwU=
- Headers/RLMPlatform.h
-
- qUyqLxZ+22qIynAmhuA6ai9p2tc=
-
Headers/RLMProperty.h
QyE/WKZTEZokOC4HNpIuGWTo3V8=
@@ -182,7 +178,7 @@
Headers/RLMSyncManager.h
- mXu4dAftvdZCFzVS3ez+96Ek15E=
+ YkhlSPT2hNZyA//Lf07+5rkaTsc=
Headers/RLMSyncSession.h
@@ -214,11 +210,11 @@
Headers/Realm.h
- 3mbp9c9/HFfHwbrysBEt9iCljqo=
+ fDREEG2URHEbKjZ2nfKq+7M/7m8=
Info.plist
- 9BwNxSRvHvmobBdFc//MDH5SQtM=
+ Dndq+KQC4u9EujfldvIqZT6MRuo=
LICENSE
@@ -226,7 +222,7 @@
Modules/module.modulemap
- qh0tedLfxDFRk+f7aR8LrPdUIRQ=
+ A28J5rfl2ooZX6nLmKAtWsKyoFg=
PrivateHeaders/RLMAccessor.h
@@ -234,7 +230,7 @@
PrivateHeaders/RLMApp_Private.h
- /TYV5cyQTqtxO1CaqCz8NYEPKiA=
+ fw57ZhMCNGsWCpB/lCMaKqf0gek=
PrivateHeaders/RLMArray_Private.h
@@ -242,7 +238,7 @@
PrivateHeaders/RLMAsyncTask_Private.h
- LGxSKo8pzwcfSmd1xrmd0iwKHoc=
+ ayc2eXD44f0/BptRlmZc+ocrzs8=
PrivateHeaders/RLMBSON_Private.hpp
@@ -282,7 +278,7 @@
PrivateHeaders/RLMObjectStore.h
- yzumEKtFJ7A507jAYkj8Z/DGG0I=
+ LH3NYAHYk37ukx3w36l3VfRkWLY=
PrivateHeaders/RLMObject_Private.h
@@ -351,11 +347,11 @@
hash
- Y8GU8qLvT58gIcC07I5ct6f15yQ=
+ Zv1aE8lgTnRPKTg4+FZa+hYQQNM=
hash2
- YkS7d92nc1CbgkrNj49UJRdpGfHZ4B4jOg0AqFE9EHo=
+ wt8p9tw4OPVj/LtpO9d+DXFoOnRQ6hRaxf/hS2NxDRg=
Headers/NSError+RLMSync.h
@@ -384,11 +380,11 @@
hash
- 6RyMP6TBnOUmBDH2QMQUojyINrk=
+ Ld28y6nHFgdYCwgko5F6L9mRTCc=
hash2
- uLD2KqwHxLTJ/f9mMDT52TZw6QqpvJeb6plXQI4/f1o=
+ fmHB8oywmfycQqOzXoYB99LpOLE7akGn0ZrJtqviiTs=
Headers/RLMArray.h
@@ -483,11 +479,11 @@
hash
- 7XBEThemlgTLK/fjIZZRYBBY0mw=
+ J4dcvrLymwvq7wa1sgBJejF2lnk=
hash2
- I0iusExV7YvVkdt6MHXOAwNHJ2iVzHJciY0geWG3g5A=
+ 7zN2nXgEwGfrPRtbgqtfoLrwJbwqohcVvU/OyA/07Lk=
Headers/RLMEmailPasswordAuth.h
@@ -516,11 +512,11 @@
hash
- 5x4rLGEjGLOQkkDsTvH34k/NNUo=
+ f/fmbab1ht8EdLMSS3f0NXW1ejg=
hash2
- OWjWlN8fXFm/L0glkTwwiNA7HP2SqXfp++r0dCTxccI=
+ 6duvM3p0FRf6fZ+aS57vHkf7WvV1KPoz7PcIZA48WTU=
Headers/RLMFindOneAndModifyOptions.h
@@ -593,11 +589,11 @@
hash
- O7qUDn3s7yS4uxFaQz4juTrU+HY=
+ 0+ymiybJvLDiWbH4UgOpF5kK7JA=
hash2
- eMx63OF3EFRqAGsLMEXvv+y0YnKqWOB1RiyzlyW2+IE=
+ wnJWmMW0z3xO9KVRJKpiE+xkaKkzXBXiH5j+8eaFmcA=
Headers/RLMNetworkTransport.h
@@ -666,17 +662,6 @@
8oCJihoGgigIF170SRk/yU5RLDNX9TYQUrXxLjYrtuM=
- Headers/RLMPlatform.h
-
- hash
-
- qUyqLxZ+22qIynAmhuA6ai9p2tc=
-
- hash2
-
- Ixx4e+wRPzVxxxP9o7dpoAfPgeFPTUuBlkBn6JAiY/M=
-
-
Headers/RLMProperty.h
hash
@@ -835,11 +820,11 @@
hash
- mXu4dAftvdZCFzVS3ez+96Ek15E=
+ YkhlSPT2hNZyA//Lf07+5rkaTsc=
hash2
- mdAe8l7XifP7CmhttYUKNJxUfRFiL6vb+MRO2sXIqpo=
+ rFV4QDsBonA29YqdZXsYhNSVewEYkrafSLPWBGaEhqI=
Headers/RLMSyncSession.h
@@ -923,11 +908,11 @@
hash
- 3mbp9c9/HFfHwbrysBEt9iCljqo=
+ fDREEG2URHEbKjZ2nfKq+7M/7m8=
hash2
- XojGXRDQANLfoU7VwvyqGGmZmf/oNUXjRNXzxcxJZEA=
+ kjoP0TvFhg49q7sxVEgPoNFg+zqo9bCE2Uh0YOpDpbE=
LICENSE
@@ -945,11 +930,11 @@
hash
- qh0tedLfxDFRk+f7aR8LrPdUIRQ=
+ A28J5rfl2ooZX6nLmKAtWsKyoFg=
hash2
- UDqXkLimJ+9qpDCcsMjIqR5Qsd7iEaavhqi8J7iEBhI=
+ KdpbsAGrxax/jx81TZ93YswnCwT1BZTor6VwIHvgRUs=
PrivateHeaders/RLMAccessor.h
@@ -967,11 +952,11 @@
hash
- /TYV5cyQTqtxO1CaqCz8NYEPKiA=
+ fw57ZhMCNGsWCpB/lCMaKqf0gek=
hash2
- 6KWA9yC7TNQAvVa3VI9qPhSnV6DWxJZkFJHCIRX49u4=
+ 4pd3636NRX7kQgsEy7dv7IQH/AyZMKjQvA2nmK97Vq0=
PrivateHeaders/RLMArray_Private.h
@@ -989,11 +974,11 @@
hash
- LGxSKo8pzwcfSmd1xrmd0iwKHoc=
+ ayc2eXD44f0/BptRlmZc+ocrzs8=
hash2
- iKrJ9TGXoc8UTr44+s8a0yCnhaJeVQNs0mLKA5yBfRs=
+ vD90SYI5658JDp88stHbsxALdVNhs0Tojcld9hVORHE=
PrivateHeaders/RLMBSON_Private.hpp
@@ -1099,11 +1084,11 @@
hash
- yzumEKtFJ7A507jAYkj8Z/DGG0I=
+ LH3NYAHYk37ukx3w36l3VfRkWLY=
hash2
- glcepASGexcV1kvpkZeXGcPrdsuxPgyj7HNo6RMGNuQ=
+ 0KjmazUjg/mYvymGTJ74ChBgvrqN2Lc9O0TqcYF/Mic=
PrivateHeaders/RLMObject_Private.h
diff --git a/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/xros-arm64/Realm.framework/CHANGELOG.md b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/xros-arm64/Realm.framework/CHANGELOG.md
new file mode 100644
index 000000000..00cc01244
--- /dev/null
+++ b/Projects/Modules/ThirdPartyLib/Frameworks/Realm.xcframework/xros-arm64/Realm.framework/CHANGELOG.md
@@ -0,0 +1,9539 @@
+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` and `List` 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 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
+ // ...
+ 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(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(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` 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()
+}
+
+public class Address: EmbeddedObject {
+ @Persisted var city: String = ""
+ @Persisted var country = ""
+}
+
+class PersonProjection: Projection {
+ // `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 will be mapped to list of firstNames
+ @Projected(\Person.friends.projectTo.firstName) var firstFriendsName: ProjectedCollection
+}
+
+// `people` will contain projections for every `Person` object in the `realm`
+let people: Results = 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 collections.
+* `AnyRealmCollection` now conforms to `Encodable`.
+* AnyRealmValue and PersistableEnum values can now be passed directly to an
+ NSPredicate used in a filter() call rather than having to pass the rawValue
+ (the rawValue is still allowed).
+* Queries on collections of PersistableEnums can now be performed with `where()`.
+* Add support for querying on the rawValue of an enum with `where()`.
+* `.count` is supported for Maps of all types rather than just numeric types in `where()`.
+* Add support for querying on the properties of objects contained in
+ dictionaries (e.g. "dictProperty.@allValues.name CONTAINS 'a'").
+* Improve the error message for many types of invalid predicates in queries.
+* Add support for comparing `@allKeys` to another property on the same object.
+* Add `Numeric` conformance to `Decimal128`.
+* Make some invalid property declarations such as `List` a
+ compile-time error instead of a runtime error.
+* Calling `.sorted(byKeyPath:)` on a collection with an Element type which does
+ not support sorting by keypaths is now a compile-time error instead of a
+ runtime error.
+* `RealmCollection.sorted(ascending:)` can now be called on all
+ non-Object/EmbeddedObject collections rather than only ones where the
+ `Element` conforms to `Comparable`.
+* Add support for using user-defined types with `@Persistable` and in Realm
+ collections by defining a mapping to and from a type which Realm knows how to
+ store. For example, `URL` can be made persistable with:
+ ```swift
+ extension URL: FailableCustomPersistable {
+ // Store URL values as a String in Realm
+ public typealias PersistedType = String
+ // Convert a String to a URL
+ public init?(persistedValue: String) { self.init(string: persistedValue) }
+ // Convert a URL to a String
+ public var persistableValue: String { self.absoluteString }
+ }
+ ```
+ After doing this, `@Persisted var url: URL` is a valid property declaration
+ on a Realm object. More advanced mappings can be done by mapping to an
+ EmbeddedObject which can store multiple values.
+
+### Fixed
+
+* Accessing a non object collection inside a migration would cause a crash
+* [#5633](https://github.com/realm/realm-cocoa/issues/5633).
+* Accessing a `Map` of objects dynamically would not handle nulled values correctly (since v10.8.0).
+* `where()` allowed constructing some nonsensical queries due to boolean
+ comparisons returning `Query` rather than `Query` (since v10.19.0).
+* `@allValues` queries on dictionaries accidentally did not require "ANY".
+* Case-insensitive and diacritic-insensitive modifiers were ignored when
+ comparing the result of an aggregate operation to another property in a
+ query.
+* `Object.init(value:)` did not allow initializing `RLMDictionary`/`Map`
+ properties with null values for map entries (since v10.8.0).
+* `@ObservedResults` did not refresh when changes were made to the observed
+ collection. (since v10.6.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.
+
+10.20.1 Release notes (2021-12-14)
+=============================================================
+
+Xcode 12.4 is now the minimum supported version of Xcode.
+
+### Fixed
+
+* Add missing `Indexable` support for UUID.
+ ([Cocoa #7545](https://github.com/realm/realm-swift/issues/7545), since v10.10.0)
+
+### Breaking Changes
+
+* All `async` functions now require Xcode 13.2 to work around an App
+ Store/TestFlight bug that results in apps built with 13.0/13.1 which do not
+ use libConcurrency but link a library which does crashing on startup.
+
+### 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.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.2.
+
+10.20.0 Release notes (2021-11-16)
+=============================================================
+
+### Enhancements
+
+* Conform `@ThreadSafe` and `ThreadSafeReference` to `Sendable`.
+* Allow using Swift enums which conform to `PersistableEnum` as the value type
+ for all Realm collections.
+* `AnyRealmCollection` now conforms to `Encodable`.
+* Greatly improve performance of reading AnyRealmValue and enum types from
+ Realm collections.
+* `AnyRealmCollection` now conforms to `Encodable`.
+
+### Fixed
+
+* `@AutoOpen` will open the existing local Realm file on any connection error
+ rather than only when the connection specifically times out.
+* Do not allow `progress` state changes for `@AutoOpen` and `@AsyncOpen` after
+ changing state to `open(let realm)` or `error(let error)`.
+* Logging out a sync user failed to remove the local Realm file for partitions
+ with very long partition values that would have exceeded the maximum path
+ length. ([Core #4187](https://github.com/realm/realm-core/issues/4187), since v10.0.0)
+* Don't keep trying to refresh the access token if the client's clock is more
+ than 30 minutes fast. ([Core #4941](https://github.com/realm/realm-core/issues/4941))
+* Failed auth requests used a fixed long sleep rather than exponential backoff
+ like other sync requests, which could result in very delayed reconnects after
+ a device was offline long enough for the access token to expire (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 13.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.1.
+
+### Internal
+
+* Upgraded realm-core from 11.6.0 to 11.6.1.
+
+10.19.0 Release notes (2021-11-04)
+=============================================================
+
+### Enhancements
+
+* Add `.searchable()` SwiftUI View Modifier which allows filtering
+ `@ObservedResult` results from a search field component by a key path.
+ ```swift
+ List {
+ ForEach(reminders) { reminder in
+ ReminderRowView(reminder: reminder)
+ }
+ }.searchable(text: $searchFilter,
+ collection: $reminders,
+ keyPath: \.name) {
+ ForEach(reminders) { remindersFiltered in
+ Text(remindersFiltered.name).searchCompletion(remindersFiltered.name)
+ }
+ }
+ ```
+* Add an API for a type safe query syntax. This allows you to filter a Realm
+ and collections managed by a Realm with Swift style expressions. Here is a
+ brief example:
+ ```swift
+ class Person: Object {
+ @Persisted var name: String
+ @Persisted var hobbies: MutableSet
+ @Persisted var pets: List
+ }
+ class Pet: Object {
+ @Persisted var name: String
+ @Persisted var age: Int
+ }
+
+ let persons = realm.objects(Person.self).where {
+ $0.hobbies.contains("music") || $0.hobbies.contains("baseball")
+ }
+
+ persons = realm.objects(Person.self).where {
+ ($0.pets.age >= 2) && $0.pets.name.starts(with: "L")
+ }
+ ```
+ ([#7419](https://github.com/realm/realm-swift/pull/7419))
+* Add support for dictionary subscript expressions
+ (e.g. `"phoneNumbers['Jane'] == '123-3456-123'"`) when querying with an
+ NSPredicate.
+* Add UserProfile to User. This contains metadata from social logins with MongoDB Realm.
+* Slightly reduce the peak memory usage when processing sync changesets.
+
+### Fixed
+
+* Change default request timeout for `RLMApp` from 6 seconds to 60 seconds.
+* Async `Realm` init would often give a Realm instance which could not actually
+ be used and would throw incorrect thread exceptions. It now is `@MainActor`
+ and gives a Realm instance which always works on the main actor. The
+ non-functional `queue:` parameter has been removed (since v10.15.0).
+* Restore the pre-v10.12.0 behavior of calling `writeCopy()` on a synchronized
+ Realm which produced a local non-synchronized Realm
+ ([#7513](https://github.com/realm/realm-swift/issues/7513)).
+* Decimal128 did not properly normalize the value before hashing and so could
+ have multiple values which are equal but had different hash values (since v10.8.0).
+* Fix a rare assertion failure or deadlock when a sync session is racing to
+ close at the same time that external reference to the Realm is being
+ released. ([Core #4931](https://github.com/realm/realm-core/issues/4931))
+* Fix a assertion failure when opening a sync Realm with a user who had been
+ removed. Instead an exception will be thrown. ([Core #4937](https://github.com/realm/realm-core/issues/4937), since v10.0.0)
+* Fixed a rare segfault which could trigger if a user was being logged out
+ while the access token refresh response comes in.
+ ([Core #4944](https://github.com/realm/realm-core/issues/4944), since v10.0.0)
+* Fixed a bug where progress notifiers on an AsyncOpenTask could be called
+ after the open completed. ([Core #4919](https://github.com/realm/realm-core/issues/4919))
+* SecureTransport was not enabled for macCatalyst builds when installing via
+ SPM, resulting in `'SSL/TLS protocol not supported'` exceptions when using
+ Realm Sync. ([#7474](https://github.com/realm/realm-swift/issues/7474))
+* Users were left in the logged in state when their refresh token expired.
+ ([Core #4882](https://github.com/realm/realm-core/issues/4882), since v10)
+* Calling `.count` on a distinct collection would return the total number of
+ objects in the collection rather than the distinct count the first time it is
+ called. ([#7481](https://github.com/realm/realm-swift/issues/7481), since v10.8.0).
+* `realm.delete(collection.distinct(...))` would delete all objects in the
+ collection rather than just the first object with each distinct value in the
+ property being distincted on, unless the distinct Results were read from at
+ least once first (since v10.8.0).
+* Calling `.distinct()` on a collection, accessing the Results, then passing
+ the Results to `realm.delete()` would delete the correct objects, but
+ afterwards report a count of zero even if there were still objects in the
+ Results (since v10.8.0).
+* Download compaction could result in non-streaming sync download notifiers
+ never reporting completion (since v10.0.0,
+ [Core #4989](https://github.com/realm/realm-core/pull/4989)).
+* Fix a deadlock in SyncManager that was probably not possible to hit in
+ real-world code (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 13.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.4-13.2.
+
+### Internal
+
+* Upgraded realm-core from v11.4.1 to v11.6.0
+
+10.18.0 Release notes (2021-10-25)
+=============================================================
+
+### Enhancements
+
+* Add support for using multiple users with `@AsyncOpen` and `@AutoOpen`.
+ Setting the current user to a new user will now automatically reopen the
+ Realm with the new user.
+* Add prebuilt binary for Xcode 13.1 to the release package.
+
+### Fixed
+
+* Fix `@AsyncOpen` and `@AutoOpen` using `defaultConfiguration` by default if
+ the user's doesn't provide one, will set an incorrect path which doesn't
+ correspond to the users configuration one. (since v10.12.0)
+* Adding missing subscription completion for `AsyncOpenPublisher` after
+ successfully returning a realm.
+
+### 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.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.1.
+
+10.17.0 Release notes (2021-10-06)
+=============================================================
+
+### Enhancements
+
+* Add a new `@ThreadSafe` property wrapper. Objects and collections wrapped by `@ThreadSafe` may be passed between threads. It's
+ intended to allow local variables and function parameters to be used across
+ threads when needed.
+
+### 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.0.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0.
+
+10.16.0 Release notes (2021-09-29)
+=============================================================
+
+### Enhancements
+
+* Add `async` versions of `EmailPasswordAuth.callResetPasswordFunction` and
+r `User.linkUser` methods.
+* Add `async` version of `MongoCollection` methods.
+* Add `async` support for user functions.
+
+### Fixed
+
+* A race condition in Realm.asyncOpen() sometimes resulted in subsequent writes
+ from Realm Sync failing to produce notifications
+ ([#7447](https://github.com/realm/realm-swift/issues/7447),
+ [#7453](https://github.com/realm/realm-swift/issues/7453),
+ [Core #4909](https://github.com/realm/realm-core/issues/4909), since v10.15.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.0.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0.
+
+10.15.1 Release notes (2021-09-15)
+=============================================================
+
+### Enhancements
+
+* Switch to building the Carthage release with Xcode 13.
+
+### Fixed
+
+* Fix compilation error where Swift 5.5 is available but the macOS 12 SDK was
+ not. This was notable for the Xcode 13 RC. This fix adds a #canImport check
+ for the `_Concurrency` module that was not available before the macOS 12 SDK.
+
+### 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.0.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0.
+
+10.15.0 Release notes (2021-09-10)
+=============================================================
+
+### Enhancements
+
+* Add `async` versions of the `Realm.asyncOpen` and `App.login` methods.
+* ThreadSafeReference no longer pins the source transaction version for
+ anything other than a Results created by filtering a collection. This means
+ that holding on to thread-safe references to other things (such as Objects)
+ will no longer cause file size growth.
+* A ThreadSafeReference to a Results backed by a collection can now be created
+ inside a write transaction as long as the collection was not created in the
+ current write transaction.
+* Synchronized Realms are no longer opened twice, cutting the address space and
+ file descriptors used in half.
+ ([Core #4839](https://github.com/realm/realm-core/pull/4839))
+* When using the SwiftUI helper types (@ObservedRealmObject and friends) to
+ bind to an Equatable property, self-assignment no longer performs a pointless
+ write transaction. SwiftUI appears to sometimes call a Binding's set function
+ multiple times for a single UI action, so this results in significantly fewer
+ writes being performed.
+
+### Fixed
+
+* Adding an unmanaged object to a Realm that was declared with
+ `@StateRealmObject` would throw the exception `"Cannot add an object with
+ observers to a Realm"`.
+* The `RealmCollectionChange` docs refered to indicies in modifications as the
+ 'new' collection. This is incorrect and the docs now state that modifications
+ refer to the previous version of the collection. ([Cocoa #7390](https://github.com/realm/realm-swift/issues/7390))
+* Fix crash in `RLMSyncConfiguration.initWithUser` error mapping when a user is disabled/deleted from MongoDB Realm dashboard.
+ ([Cocoa #7399](https://github.com/realm/realm-swift/issues/7399), since v10.0.0)
+* If the application crashed at the wrong point when logging a user in, the
+ next run of the application could hit the assertion failure "m_state ==
+ SyncUser::State::LoggedIn" when a synchronized Realm is opened with that
+ user. ([Core #4875](https://github.com/realm/realm-core/issues/4875), since v10.0.0)
+* The `keyPaths:` parameter to `@ObservedResults` did not work (since v10.12.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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 5.
+
+### Internal
+
+* Upgraded realm-core from 11.3.1 to 11.4.1
+
+10.14.0 Release notes (2021-09-03)
+=============================================================
+
+### Enhancements
+
+* Add additional `observe` methods for Objects and RealmCollections which take
+ a `PartialKeyPath` type key path parameter.
+* The release package once again contains Xcode 13 binaries.
+* `PersistableEnum` properties can now be indexed or used as the primary key if
+ the RawValue is an indexable or primary key type.
+
+### Fixed
+
+* `Map` did not conform to `Codable`.
+ ([Cocoa #7418](https://github.com/realm/realm-swift/pull/7418), since v10.8.0)
+* Fixed "Invalid data type" assertion failure in the sync client when the
+ client recieved an AddColumn instruction from the server for an AnyRealmValue
+ property when that property already exists locally. ([Core #4873](https://github.com/realm/realm-core/issues/4873), 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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 5.
+
+### Internal
+
+* Upgraded realm-core from 11.3.0 to 11.3.1.
+
+10.13.0 Release notes (2021-08-26)
+=============================================================
+
+### Enhancements
+
+* Sync logs now contain information about what object/changeset was being applied when the exception was thrown.
+ ([Core #4836](https://github.com/realm/realm-core/issues/4836))
+* Added ServiceErrorCode for wrong username/password when using '`App.login`.
+ ([Core #7380](https://github.com/realm/realm-swift/issues/7380)
+
+### Fixed
+
+* Fix crash in `MongoCollection.findOneDocument(filter:)` that occurred when no results were
+ found for a given filter.
+ ([Cocoa #7380](https://github.com/realm/realm-swift/issues/7380), since v10.0.0)
+* Some of the SwiftUI property wrappers incorrectly required objects to conform
+ to ObjectKeyIdentifiable rather than Identifiable.
+ ([Cocoa #7372](https://github.com/realm/realm-swift/issues/7372), since v10.6.0)
+* Work around Xcode 13 beta 3+ shipping a broken swiftinterface file for Combine on 32-bit iOS.
+ ([Cocoa #7368](https://github.com/realm/realm-swift/issues/7368))
+* Fixes history corruption when replacing an embedded object in a list.
+ ([Core #4845](https://github.com/realm/realm-core/issues/4845)), 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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 5.
+
+### Internal
+
+* Upgraded realm-core from 11.2.0 to 11.3.0
+
+10.12.0 Release notes (2021-08-03)
+=============================================================
+
+### Enhancements
+
+* `Object.observe()` and `RealmCollection.observe()` now include an optional
+ `keyPaths` parameter which filters change notifications to those only
+ occurring on the provided key path or key paths. See method documentation
+ for extended detail on filtering behavior.
+* `ObservedResults` now includes an optional `keyPaths` parameter
+ which filters change notifications to those only occurring on the provided
+ key path or key paths. ex) `@ObservedResults(MyObject.self, keyPaths: ["myList.property"])`
+* Add two new property wrappers for opening a Realm asynchronously in a
+ SwiftUI View:
+ - `AsyncOpen` is a property wrapper that initiates Realm.asyncOpen
+ for the current user, notifying the view when there is a change in Realm asyncOpen state.
+ - `AutoOpen` behaves similarly to `AsyncOpen`, but in the case of no internet
+ connection this will return an opened realm.
+* Add `EnvironmentValues.partitionValue`. This value can be injected into any view using one of
+ our new property wrappers `AsyncOpen` and `AutoOpen`:
+ `MyView().environment(\.partitionValue, "partitionValue")`.
+* Shift more of the work done when first initializing a collection notifier to
+ the background worker thread rather than doing it on the main thread.
+
+### Fixed
+
+* `configuration(partitionValue: AnyBSON)` would always set a nil partition value
+ for the user sync configuration.
+* Decoding a `@Persisted` property would incorrectly throw a `DecodingError.keyNotFound`
+ for an optional property if the key is missing.
+ ([Cocoa #7358](https://github.com/realm/realm-swift/issues/7358), since v10.10.0)
+* Fixed a symlink which prevented Realm from building on case sensitive file systems.
+ ([#7344](https://github.com/realm/realm-swift/issues/7344), since v10.8.0)
+* Removing a change callback from a Results would sometimes block the calling
+ thread while the query for that Results was running on the background worker
+ thread (since v10.11.0).
+* Object observers did not handle the object being deleted properly, which
+ could result in assertion failures mentioning "m_table" in ObjectNotifier
+ ([Core #4824](https://github.com/realm/realm-core/issues/4824), since v10.11.0).
+* Fixed a crash when delivering notifications over a nested hierarchy of lists
+ of Mixed that contain links. ([Core #4803](https://github.com/realm/realm-core/issues/4803), since v10.8.0)
+* Fixed a crash when an object which is linked to by a Mixed is deleted via
+ sync. ([Core #4828](https://github.com/realm/realm-core/pull/4828), since v10.8.0)
+* Fixed a rare crash when setting a mixed link for the first time which would
+ trigger if the link was to the same table and adding the backlink column
+ caused a BPNode split. ([Core #4828](https://github.com/realm/realm-core/pull/4828), 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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 4. On iOS Xcode 13 beta 2 is the latest supported
+ version due to betas 3 and 4 having a broken Combine.framework.
+
+### Internal
+
+* Upgraded realm-core from v11.1.1 to v11.2.0
+
+10.11.0 Release notes (2021-07-22)
+=============================================================
+
+### Enhancements
+
+* Add type safe methods for:
+ - `RealmCollection.min(of:)`
+ - `RealmCollection.max(of:)`
+ - `RealmCollection.average(of:)`
+ - `RealmCollection.sum(of:)`
+ - `RealmCollection.sorted(by:ascending:)`
+ - `RealmKeyedCollection.min(of:)`
+ - `RealmKeyedCollection.max(of:)`
+ - `RealmKeyedCollection.average(of:)`
+ - `RealmKeyedCollection.sum(of:)`
+ - `RealmKeyedCollection.sorted(by:ascending:)`
+ - `Results.distinct(by:)`
+ - `SortDescriptor(keyPath:ascending:)
+
+ Calling these methods can now be done via Swift keyPaths, like so:
+ ```swift
+ class Person: Object {
+ @Persisted var name: String
+ @Persisted var age: Int
+ }
+
+ let persons = realm.objects(Person.self)
+ persons.min(of: \.age)
+ persons.max(of: \.age)
+ persons.average(of: \.age)
+ persons.sum(of: \.age)
+ persons.sorted(by: \.age)
+ persons.sorted(by: [SortDescriptor(keyPath: \Person.age)])
+ persons.distinct(by: [\Person.age])
+ ```
+* Add `List.objects(at indexes:)` in Swift and `[RLMCollection objectsAtIndexes:]` in Objective-C.
+ This allows you to select elements in a collection with a given IndexSet ([#7298](https://github.com/realm/realm-swift/issues/7298)).
+* Add `App.emailPasswordAuth.retryCustomConfirmation(email:completion:)` and `[App.emailPasswordAuth retryCustomConfirmation:completion:]`.
+ These functions support retrying a [custom confirmation](https://docs.mongodb.com/realm/authentication/email-password/#run-a-confirmation-function) function.
+* Improve performance of creating collection notifiers for Realms with a complex schema.
+ This means that the first run of a query or first call to observe() on a collection will
+ do significantly less work on the calling thread.
+* Improve performance of calculating changesets for notifications, particularly
+ for deeply nested object graphs and objects which have List or Set properties
+ with small numbers of objects in the collection.
+
+### Fixed
+
+* `RealmProperty` would crash when decoding a `null` json value.
+ ([Cocoa #7323](https://github.com/realm/realm-swift/issues/7323), since v10.8.0)
+* `@Persisted` would crash when decoding a `null` value.
+ ([#7332](https://github.com/realm/realm-swift/issues/7332), since v10.10.0).
+* Fixed an issue where `Realm.Configuration` would be set after views have been laid out
+ when using `.environment(\.realmConfiguration, ...)` in SwiftUI. This would cause issues if you are
+ required to bump your schema version and are using `@ObservedResults`.
+* Sync user profiles now correctly persist between runs.
+
+### 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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 3. Note that this release does not contain Xcode 13
+ beta binaries as beta 3 does not include a working version of
+ Combine.framework for iOS.
+
+### Internal
+
+* Upgraded realm-core from 11.0.4 to 11.1.1
+
+10.10.0 Release notes (2021-07-07)
+=============================================================
+
+### Enhancements
+
+* Add a new property wrapper-based declaration syntax for properties on Realm
+ Swift object classes. Rather than using `@objc dynamic` or the
+ `RealmProperty` wrapper type, properties can now be declared with `@Persisted
+ var property: T`, where `T` is any of the supported property types, including
+ optional numbers and collections. This has a few benefits:
+
+ - All property types are now declared in the same way. No more remembering
+ that this type requires `@objc dynamic var` while this other type
+ requires `let`, and the `RealmProperty` or `RealmOptional` helper is no
+ longer needed for types not supported by Objective-C.
+ - No more overriding class methods like `primaryKey()`,
+ `indexedProperties()` or `ignoredProperties()`. The primary key and
+ indexed flags are set directly in the property declaration with
+ `@Persisted(primaryKey: true) var _id: ObjectId` or `@Persisted(indexed:
+ true) var indexedProperty: Int`. If any `@Persisted` properties are present,
+ all other properties are implicitly ignored.
+ - Some performance problems have been fixed. Declaring collection
+ properties as `let listProp = List()` resulted in the `List` object
+ being created eagerly when the parent object is read, which could cause
+ performance problems if a class has a large number of `List` or
+ `RealmOptional` properties. `@Persisted var list: List` allows us to
+ defer creating the `List` until it's accessed, improving performance
+ when looping over objects and using only some of the properties.
+
+ Similarly, `let _id = ObjectId.generate()` was a convenient way to
+ declare a sync-compatible primary key, but resulted in new ObjectIds
+ being generated in some scenarios where the value would never actually be
+ used. `@Persisted var _id: ObjectId` has the same behavior of
+ automatically generating primary keys, but allows us to only generate it
+ when actually needed.
+ - More types of enums are supported. Any `RawRepresentable` enum whose raw
+ type is a type supported by Realm can be stored in an `@Persisted`
+ project, rather than just `@objc` enums. Enums must be declared as
+ conforming to the `PersistableEnum` protocol, and still cannot (yet) be
+ used in collections.
+ - `willSet` and `didSet` can be used with `@Persistable` properties, while
+ they previously did not work on managed Realm objects.
+
+ While we expect the switch to the new syntax to be very simple for most
+ users, we plan to support the existing objc-based declaration syntax for the
+ foreseeable future. The new style and old style cannot be mixed within a
+ single class, but new classes can use the new syntax while existing classes
+ continue to use the old syntax. Updating an existing class to the new syntax
+ does not change what data is stored in the Realm file and so does not require
+ a migration (as long as you don't also change the schema in the process, of
+ course).
+* Add `Map.merge()`, which adds the key-value pairs from another Map or
+ Dictionary to the map.
+* Add `Map.asKeyValueSequence()` which returns an adaptor that can be used with
+ generic functions that operate on Dictionary-styled sequences.
+
+### Fixed
+* AnyRealmValue enum values are now supported in more places when creating
+ objects.
+* Declaring a property as `RealmProperty` will now report an
+ error during schema discovery rather than doing broken things when the
+ property is used.
+* Observing the `invalidated` property of `RLMDictionary`/`Map` via KVO did not
+ set old/new values correctly in the notification (since 10.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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 2.
+
+10.9.0 Release notes (2021-07-01)
+=============================================================
+
+### Enhancements
+
+* Add `App.emailPasswordAuth.retryCustomConfirmation(email:completion:)` and
+ `[App.emailPasswordAuth retryCustomConfirmation:completion:]`. These
+ functions support retrying a [custom confirmation](https://docs.mongodb.com/realm/authentication/email-password/#run-a-confirmation-function)
+ function.
+* Improve performance of many Dictionary operations, especially when KVO is being used.
+
+### Fixed
+
+* Calling `-[RLMRealm deleteObjects:]` on a `RLMDictionary` cleared the
+ dictionary but did not actually delete the objects in the dictionary (since v10.8.0).
+* Rix an assertion failure when observing a `List` contains
+ object links. ([Core #4767](https://github.com/realm/realm-core/issues/4767), since v10.8.0)
+* Fix an assertion failure when observing a `RLMDictionary`/`Map` which links
+ to an object which was deleting by a different sync client.
+ ([Core #4770](https://github.com/realm/realm-core/pull/4770), since v10.8.0)
+* Fix an endless recursive loop that could cause a stack overflow when
+ computing changes on a set of objects which contained cycles.
+ ([Core #4770](https://github.com/realm/realm-core/pull/4770), since v10.8.0).
+* Hash collisions in dictionaries were not handled properly.
+ ([Core #4776](https://github.com/realm/realm-core/issues/4776), since v10.8.0).
+* Fix a crash after clearing a list or set of AnyRealmValue containing links to
+ objects ([Core #4774](https://github.com/realm/realm-core/issues/4774), since v10.8.0)
+* Trying to refresh a user token which had been revoked by an admin lead to an
+ infinite loop and then a crash. This situation now properly logs the user out
+ and reports an error. ([Core #4745](https://github.com/realm/realm-core/issues/4745), 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 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 2.
+
+### Internal
+
+* Upgraded realm-core from v11.0.3 to v11.0.4
+
+10.8.1 Release notes (2021-06-22)
+=============================================================
+
+### Enhancements
+
+* Update Xcode 12.5 to Xcode 12.5.1.
+* Create fewer dynamic classes at runtime, improving memory usage and startup time slightly.
+
+### Fixed
+
+* Importing the Realm swift package produced several warnings about excluded
+ files not existing. Note that one warning will still remain after this change.
+ ([#7295](https://github.com/realm/realm-swift/issues/7295), since v10.8.0).
+* Update the root URL for the API docs so that the links go to the place where
+ new versions of the docs are being published.
+ ([#7299](https://github.com/realm/realm-swift/issues/7299), since v10.6.0).
+
+### Compatibility
+
+* Realm Studio: 11.0.0 or later. Note that this version of Realm Studio has not
+ yet been released at the time of this release.
+* APIs are backwards compatible with all previous releases in the 10.x.y series.
+* Carthage release for Swift is built with Xcode 12.5.1.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 1.
+
+10.8.0 Release notes (2021-06-14)
+=============================================================
+
+NOTE: This version upgrades the Realm file format version to add support for
+the new data types and to adjust how primary keys are handled. Realm files
+opened will be automatically upgraded and cannot be read by versions older than
+v10.8.0. This upgrade should be a fairly fast one. Note that we now
+automatically create a backup of the pre-upgrade Realm.
+
+### Enhancements
+
+* Add support for the `UUID` and `NSUUID` data types. These types can be used
+ for the primary key property of Object classes.
+* Add two new collection types to complement the existing `RLMArray`/`List` type:
+ - `RLMSet` in Objective-C and `MutableSet` in Swift are mutable
+ unordered collections of distinct objects, similar to the built-in
+ `NSMutableSet` and `Set`. The values in a set may be any non-collection
+ type which can be stored as a Realm property. Sets are guaranteed to never
+ contain two objects which compare equal to each other, including when
+ conflicting writes are merged by sync.
+ - `RLMDictionary` in Objective-C and `Map` are
+ mutable key-value dictionaries, similar to the built-in
+ `NSMutableDictionary` and `Dictionary`. The values in a dictionary may be
+ any non-collection type which can be stored as a Realm property. The keys
+ must currently always be a string.
+* Add support for dynamically typed properties which can store a value of any
+ of the non-collection types supported by Realm, including Object subclasses
+ (but not EmbeddedObject subclasses). These are declared with
+ `@property id propertyName;` in Objective-C and
+ `let propertyName = RealmProperty()` in Swift.
+
+### Fixed
+
+* Setting a collection with a nullable value type to null via one of the
+ dynamic interfaces would hit an assertion failure instead of clearing the
+ collection.
+* Fixed an incorrect detection of multiple incoming links in a migration when
+ changing a table to embedded and removing a link to it at the same time.
+ ([#4694](https://github.com/realm/realm-core/issues/4694) since v10.0.0-beta.2)
+* Fixed a divergent merge on Set when one client clears the Set and another
+ client inserts and deletes objects.
+ ([#4720](https://github.com/realm/realm-core/issues/4720))
+* Partially revert to pre-v5.0.0 handling of primary keys to fix a performance
+ regression. v5.0.0 made primary keys determine the position in the low-level
+ table where newly added objects would be inserted, which eliminated the need
+ for a separate index on the primary key. This made some use patterns slightly
+ faster, but also made some reasonable things dramatically slower.
+ ([#4522](https://github.com/realm/realm-core/issues/4522))
+* Fixed an incorrect detection of multiple incoming links in a migration when
+ changing a table to embedded and removing a link to it at the same time.
+ ([#4694](https://github.com/realm/realm-core/issues/4694) since v10.0.0-beta.2)
+* Fix collection notification reporting for modifications. This could be
+ observed by receiving the wrong indices of modifications on sorted or
+ distinct results, or notification blocks sometimes not being called when only
+ modifications have occured.
+ ([#4573](https://github.com/realm/realm-core/pull/4573) since v5.0.0).
+* Fix incorrect sync instruction emission when replacing an existing embedded
+ object with another embedded object.([Core #4740](https://github.com/realm/realm-core/issues/4740)
+
+### Deprecations
+
+* `RealmOptional` has been deprecated in favor of `RealmProperty`.
+ `RealmProperty` is functionality identical to `RealmOptional` when storing
+ optional numeric types, but can also store the new `AnyRealmValue` type.
+
+### Compatibility
+
+* Realm Studio: 11.0.0 or later. Note that this version of Realm Studio has not
+ yet been released at the time of this release.
+* Carthage release for Swift is built with Xcode 12.5.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 1.
+
+### Internal
+
+* Upgraded realm-core from v10.7.2 to v11.0.3
+
+10.8.0-beta.2 Release notes (2021-06-01)
+=============================================================
+
+### Enhancements
+
+* Add `RLMDictionary`/`Map<>` datatype. This is a Dictionary collection type used for storing key-value pairs in a collection.
+
+### Compatibility
+
+* Realm Studio: 11.0.0-beta.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 12.5.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v11.0.0-beta.4 to v11.0.0-beta.6
+
+10.8.0-beta.0 Release notes (2021-05-07)
+=============================================================
+
+### Enhancements
+
+* Add `RLMSet`/`MutableSet<>` datatype. This is a Set collection type used for storing distinct values in a collection.
+* Add support for `id`/`AnyRealmValue`.
+* Add support for `UUID`/`NSUUID` data type.
+
+### Fixed
+
+* None.
+
+### Deprecations
+
+* `RealmOptional` has been deprecated in favor of `RealmProperty`.
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.7.2 to v10.8.0-beta.5
+
+10.7.7 Release notes (2021-06-10)
+=============================================================
+
+Xcode 12.2 is now the minimum supported version.
+
+### Enhancements
+
+* Add Xcode 13 beta 1 binaries to the release package.
+
+### Fixed
+
+* Fix a runtime crash which happens in some Xcode version (Xcode < 12, reported
+ in Xcode 12.5), where SwiftUI is not weak linked by default. This fix only
+ works for Cocoapods projects.
+ ([#7234](https://github.com/realm/realm-swift/issues/7234)
+* Fix warnings when building with Xcode 13 beta 1.
+
+### Compatibility
+
+* Realm Studio: 10.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 12.5.
+* CocoaPods: 1.10 or later.
+* Xcode: 12.2-13.0 beta 1.
+
+10.7.6 Release notes (2021-05-13)
+=============================================================
+
+### Enhancements
+
+* Realms opened in read-only mode can now be invalidated (although it is
+ unlikely to be useful to do so).
+
+### Fixed
+
+* Fix an availability warning when building Realm. The code path which gave the
+ warning can not currently be hit, so this did not cause any runtime problems
+ ([#7219](https://github.com/realm/realm-swift/issues/7219), since 10.7.3).
+* Proactively check the expiry time on the access token and refresh it before
+ attempting to initiate a sync session. This prevents some error logs from
+ appearing on the client such as: "ERROR: Connection[1]: Websocket: Expected
+ HTTP response 101 Switching Protocols, but received: HTTP/1.1 401
+ Unauthorized" ([RCORE-473](https://jira.mongodb.org/browse/RCORE-473), since v10.0.0)
+* Fix a race condition which could result in a skipping notifications failing
+ to skip if several commits using notification skipping were made in
+ succession (since v5.0.0).
+* Fix a crash on exit inside TableRecycler which could happen if Realms were
+ open on background threads when the app exited.
+ ([Core #4600](https://github.com/realm/realm-core/issues/4600), since v5.0.0)
+* Fix errors related to "uncaught exception in notifier thread:
+ N5realm11KeyNotFoundE: No such object" which could happen on sycnronized
+ Realms if a linked object was deleted by another client.
+ ([JS #3611](https://github.com/realm/realm-js/issues/3611), since v10.0.0).
+* Reading a link to an object which has been deleted by a different client via
+ a string-based interface (such as value(forKey:) or the subscript operator on
+ DynamicObject) could return an invalid object rather than nil.
+ ([Core #4687](https://github.com/realm/realm-core/pull/4687), since v10.0.0)
+* Recreate the sync metadata Realm if the encryption key for it is missing from
+ the keychain rather than crashing. This can happen if a device is restored
+ from an unencrypted backup, which restores app data but not the app's
+ keychain entries, and results in all cached logics for sync users being
+ discarded but no data being lost.
+ [Core #4285](https://github.com/realm/realm-core/pull/4285)
+* Thread-safe references can now be created for read-only Realms.
+ ([#5475](https://github.com/realm/realm-swift/issues/5475)).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.5.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.6.0 to v10.7.2
+
+10.7.5 Release notes (2021-05-07)
+=============================================================
+
+### Fixed
+
+* Iterating over frozen collections on multiple threads at the same time could
+ throw a "count underflow" NSInternalInconsistencyException.
+ ([#7237](https://github.com/realm/realm-swift/issues/7237), since v5.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.5.
+* CocoaPods: 1.10 or later.
+
+10.7.4 Release notes (2021-04-26)
+=============================================================
+
+### Enhancements
+
+* Add Xcode 12.5 binaries to the release package.
+
+### Fixed
+
+* Add the Info.plist file to the XCFrameworks in the Carthage xcframwork
+ package ([#7216](https://github.com/realm/realm-swift/issues/7216), since 10.7.3).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.5.
+* CocoaPods: 1.10 or later.
+
+10.7.3 Release notes (2021-04-22)
+=============================================================
+
+### Enhancements
+
+* Package a prebuilt XCFramework for Carthage. Carthage 0.38 and later will
+ download this instead of the old frameworks when using `--use-xcframeworks`.
+* We now make a backup of the realm file prior to any file format upgrade. The
+ backup is retained for 3 months. Backups from before a file format upgrade
+ allows for better analysis of any upgrade failure. We also restore a backup,
+ if a) an attempt is made to open a realm file whith a "future" file format
+ and b) a backup file exist that fits the current file format.
+ ([Core #4166](https://github.com/realm/realm-core/pull/4166))
+* The error message when the intial steps of opening a Realm file fails is now
+ more descriptive.
+* Make conversion of Decimal128 to/from string work for numbers with more than
+ 19 significant digits. This means that Decimal128's initializer which takes a
+ string will now never throw, as it previously threw only for out-of-bounds
+ values. The initializer is still marked as `throws` for
+ backwards compatibility.
+ ([#4548](https://github.com/realm/realm-core/issues/4548))
+
+### Fixed
+
+* Adjust the header paths for the podspec to avoid accidentally finding a file
+ which isn't part of the pod that produced warnings when importing the
+ framework. ([#7113](https://github.com/realm/realm-swift/issues/7113), since 10.5.2).
+* Fixed a crash that would occur when observing unmanaged Objects in multiple
+ views in SwiftUI. When using `@StateRealmObject` or `@ObservedObject` across
+ multiple views with an unmanaged object, each view would subscribe to the
+ object. As each view unsubscribed (generally when trailing back through the
+ view stack), our propertyWrappers would attempt to remove the KVOs for each
+ cancellation, when it should only be done once. We now correctly remove KVOs
+ only once. ([#7131](https://github.com/realm/realm-swift/issues/7131))
+* Fixed `isInvalidated` not returning correct value after object deletion from
+ Realm when using a custom schema. The object's Object Schema was not updated
+ when the object was added to the realm. We now correctly update the object
+ schema when adding it to the realm.
+ ([#7181](https://github.com/realm/realm-swift/issues/7181))
+* Syncing large Decimal128 values would cause "Assertion failed: cx.w[1] == 0"
+ ([Core #4519](https://github.com/realm/realm-core/issues/4519), since v10.0.0).
+* Potential/unconfirmed fix for crashes associated with failure to memory map
+ (low on memory, low on virtual address space). For example
+ ([#4514](https://github.com/realm/realm-core/issues/4514), since v5.0.0).
+* Fix assertion failures such as "!m_notifier_skip_version.version" or
+ "m_notifier_sg->get_version() + 1 == new_version.version" when performing
+ writes inside change notification callbacks. Previously refreshing the Realm
+ by beginning a write transaction would skip delivering notifications, leaving
+ things in an inconsistent state. Notifications are now delivered recursively
+ when needed instead. ([Cocoa #7165](https://github.com/realm/realm-swift/issues/7165)).
+* Fix collection notification reporting for modifications. This could be
+ observed by receiving the wrong indices of modifications on sorted or
+ distinct results, or notification blocks sometimes not being called when only
+ modifications have occured.
+ ([#4573](https://github.com/realm/realm-core/pull/4573) since v5.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.5.5 to v10.6.0
+* Add additional debug validation to file map management that will hopefully
+ catch cases where we unmap something which is still in use.
+
+10.7.2 Release notes (2021-03-08)
+=============================================================
+
+### Fixed
+
+* During integration of a large amount of data from the server, you may get
+ "Assertion failed: !fields.has_missing_parent_update()"
+ ([Core #4497](https://github.com/realm/realm-core/issues/4497), since v6.0.0)
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.5.4 to v10.5.5
+
+10.7.1 Release notes (2021-03-05)
+=============================================================
+
+### Fixed
+
+* Queries of the form "a.b.c == nil" would match objects where `b` is `nil` if
+ `c` did not have an index and did not if `c` was indexed. Both will now match
+ to align with NSPredicate's behavior. ([Core #4460]https://github.com/realm/realm-core/pull/4460), since 4.3.0).
+* Restore support for upgrading files from file format 5 (Realm Cocoa 1.x).
+ ([Core #7089](https://github.com/realm/realm-swift/issues/7089), since v5.0.0)
+* On 32bit devices you may get exception with "No such object" when upgrading
+ to v10.* ([Java #7314](https://github.com/realm/realm-java/issues/7314), since v5.0.0)
+* The notification worker thread would rerun queries after every commit rather
+ than only commits which modified tables which could effect the query results
+ if the table had any outgoing links to tables not used in the query.
+ ([Core #4456](https://github.com/realm/realm-core/pull/4456), since v5.0.0).
+* Fix "Invalid ref translation entry [16045690984833335023, 78187493520]"
+ assertion failure which could occur when using sync or multiple processes
+ writing to a single Realm file.
+ ([#7086](https://github.com/realm/realm-swift/issues/7086), since v5.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.5.3 to v10.5.4
+
+10.7.0 Release notes (2021-02-23)
+=============================================================
+
+### Enhancements
+
+* Add support for some missing query operations on data propertys:
+ - Data properties can be compared to other data properties
+ (e.g. "dataProperty1 == dataProperty2").
+ - Case and diacritic-insensitive queries can be performed on data properties.
+ This will only have meaningful results if the data property contains UTF-8
+ string data.
+ - Data properties on linked objects can be queried
+ (e.g. "link.dataProperty CONTAINS %@")
+* Implement queries which filter on lists other than object links (lists of
+ objects were already supported). All supported operators for normal
+ properties are now supported for lists (e.g. "ANY intList = 5" or "ANY
+ stringList BEGINSWITH 'prefix'"), as well as aggregate operations on the
+ lists (such as "intArray.@sum > 100").
+* Performance of sorting on more than one property has been improved.
+ Especially important if many elements match on the first property. Mitigates
+ ([#7092](https://github.com/realm/realm-swift/issues/7092))
+
+### Fixed
+
+* Fixed a bug that prevented an object type with incoming links from being
+ marked as embedded during migrations. ([Core #4414](https://github.com/realm/realm-core/pull/4414))
+* The Realm notification listener thread could sometimes hit the assertion
+ failure "!skip_version.version" if a write transaction was committed at a
+ very specific time (since v10.5.0).
+* Added workaround for a case where upgrading an old file with illegal string
+ would crash ([#7111](https://github.com/realm/realm-swift/issues/7111))
+* Fixed a conflict resolution bug related to the ArrayMove instruction, which
+ could sometimes cause an "Invalid prior_size" exception to prevent
+ synchronization (since v10.5.0).
+* Skipping a change notification in the first write transaction after the
+ observer was added could potentially fail to skip the notification (since v10.5.1).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.5.0 to v10.5.3
+
+10.6.0 Release notes (2021-02-15)
+=============================================================
+
+### Enhancements
+
+* Add `@StateRealmObject` for SwiftUI support. This property wrapper type instantiates an observable object on a View.
+ Use in place of `SwiftUI.StateObject` for Realm `Object`, `List`, and `EmbeddedObject` types.
+* Add `@ObservedRealmObject` for SwiftUI support. This property wrapper type subscribes to an observable object
+ and invalidates a view whenever the observable object changes. Use in place of `SwiftUI.ObservedObject` for
+ Realm `Object`, `List`, or `EmbeddedObject` types.
+* Add `@ObservedResults` for SwiftUI support. This property wrapper type retrieves results from a Realm.
+ The results use the realm configuration provided by the environment value `EnvironmentValues.realmConfiguration`.
+* Add `EnvironmentValues.realm` and `EnvironmentValues.realmConfiguration` for `Realm`
+ and `Realm.Configuration` types respectively. Values can be injected into views using the `View.environment` method, e.g., `MyView().environment(\.realmConfiguration, Realm.Configuration(fileURL: URL(fileURLWithPath: "myRealmPath.realm")))`.
+ The value can then be declared on the example `MyView` as `@Environment(\.realm) var realm`.
+* Add `SwiftUI.Binding` extensions where `Value` is of type `Object`, `List`, or `EmbeddedObject`.
+ These extensions expose methods for wrapped write transactions, to avoid boilerplate within
+ views, e.g., `TextField("name", $personObject.name)` or `$personList.append(Person())`.
+* Add `Object.bind` and `EmbeddedObject.bind` for SwiftUI support. This allows you to create
+ bindings of realm properties when a propertyWrapper is not available for you to do so, e.g., `TextField("name", personObject.bind(\.name))`.
+* The Sync client now logs error messages received from server rather than just
+ the size of the error message.
+* Errors returned from the server when sync WebSockets get closed are now
+ captured and surfaced as a SyncError.
+* Improve performance of sequential reads on a Results backed directly by a
+ Table (i.e. `realm.object(ClasSName.self)` with no filter/sort/etc.) by 50x.
+* Orphaned embedded object types which are not linked to by any top-level types
+ are now better handled. Previously the server would reject the schema,
+ resulting in delayed and confusing error reporting. Explicitly including an
+ orphan in `objectTypes` is now immediately reported as an error when opening
+ the Realm, and orphans are automatically excluded from the auto-discovered
+ schema when `objectTypes` is not specified.
+
+### Fixed
+
+* Reading from a Results backed directly by a Table (i.e.
+ `realm.object(ClasSName.self)` with no filter/sort/etc.) would give incorrect
+ results if the Results was constructed and accessed before creating a new
+ object with a primary key less than the smallest primary key which previously
+ existed. ([#7014](https://github.com/realm/realm-swift/issues/7014), since v5.0.0).
+* During synchronization you might experience crash with
+ "Assertion failed: ref + size <= next->first".
+ ([Core #4388](https://github.com/realm/realm-core/issues/4388))
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.4.0 to v10.5.0
+
+10.5.2 Release notes (2021-02-09)
+=============================================================
+
+### Enhancements
+
+* Add support for "thawing" objects. `Realm`, `Results`, `List` and `Object`
+ now have `thaw()` methods which return a live copy of the frozen object. This
+ enables app behvaior where a frozen object can be made live again in order to
+ mutate values. For example, first freezing an object passed into UI view,
+ then thawing the object in the view to update values.
+* Add Xcode 12.4 binaries to the release package.
+
+### Fixed
+
+* Inserting a date into a synced collection via `AnyBSON.datetime(...)` would
+ be of type `Timestamp` and not `Date`. This could break synced objects with a
+ `Date` property.
+ ([#6654](https://github.com/realm/realm-swift/issues/6654), since v10.0.0).
+* Fixed an issue where creating an object after file format upgrade may fail
+ with assertion "Assertion failed: lo() <= std::numeric_limits::max()"
+ ([#4295](https://github.com/realm/realm-core/issues/4295), since v5.0.0)
+* Allow enumerating objects in migrations with types which are no longer
+ present in the schema.
+* Add `RLMResponse.customStatusCode`. This fixes timeout exceptions that were
+ occurring with a poor connection. ([#4188](https://github.com/realm/realm-core/issues/4188))
+* Limit availability of ObjectKeyIdentifiable to platforms which support
+ Combine to match the change made in the Xcode 12.5 SDK.
+ ([#7083](https://github.com/realm/realm-swift/issues/7083))
+
+### Compatibility
+
+* Realm Studio: 10.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 12.4.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.3.3 to v10.4.0
+
+10.5.1 Release notes (2021-01-15)
+=============================================================
+
+### Enhancements
+
+* Add Xcode 12.3 binary to release package.
+* Add support for queries which have nil on the left side and a keypath on the
+ right side (e.g. "nil == name" rather than "name == nil" as was previously
+ required).
+
+### Fixed
+* Timeouts when calling server functions via App would sometimes crash rather
+ than report an error.
+* Fix a race condition which would lead to "uncaught exception in notifier
+ thread: N5realm15InvalidTableRefE: transaction_ended" and a crash when the
+ source Realm was closed or invalidated at a very specific time during the
+ first run of a collection notifier
+ ([#3761](https://github.com/realm/realm-core/issues/3761), since v5.0.0).
+* Deleting and recreating objects with embedded objects may fail.
+ ([Core PR #4240](https://github.com/realm/realm-core/pull/4240), since v10.0.0)
+* Fast-enumerating a List after deleting the parent object would crash with an
+ assertion failure rather than a more appropriate exception.
+ ([Core #4114](https://github.com/realm/realm-core/issues/4114), since v5.0.0).
+* Fix an issue where calling a MongoDB Realm Function would never be performed as the reference to the weak `User` was lost.
+
+### Compatibility
+
+* Realm Studio: 10.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 12.3.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.3.2 to v10.3.3
+
+10.5.0 Release notes (2020-12-14)
+=============================================================
+
+### Enhancements
+
+* MongoDB Realm is now supported when installing Realm via Swift Package Manager.
+
+### Fixed
+
+* The user identifier was added to the file path for synchronized Realms twice
+ and an extra level of escaping was performed on the partition value. This did
+ not cause functional problems, but made file names more confusing than they
+ needed to be. Existing Realm files will continue to be located at the old
+ path, while newly created files will be created at a shorter path. (Since v10.0.0).
+* Fix a race condition which could potentially allow queries on frozen Realms
+ to access an uninitialized structure for search indexes (since v5.0.0).
+* Fix several data races in App and SyncSession initialization. These could
+ possibly have caused strange errors the first time a synchronized Realm was
+ opened (since v10.0.0).
+* Fix a use of a dangling reference when refreshing a user’s custom data that
+ could lead to a crash (since v10.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.2.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.1.4 to v10.3.2
+
+10.4.0 Release notes (2020-12-10)
+=============================================================
+
+### Enhancements
+
+* Add Combine support for App and User. These two types now have a
+ `objectWillChange` property that emits each time the state of the object has
+ changed (such as due to the user logging in or out). ([PR #6977](https://github.com/realm/realm-swift/pull/6977)).
+
+### Fixed
+
+* Integrating changesets from the server would sometimes hit the assertion
+ failure "n != realm::npos" inside Table::create_object_with_primary_key()
+ when creating an object with a primary key which previously had been used and
+ had incoming links. ([Core PR #4180](https://github.com/realm/realm-core/pull/4180), since v10.0.0).
+* The arm64 simulator slices were not actually included in the XCFramework
+ release package. ([PR #6982](https://github.com/realm/realm-swift/pull/6982), since v10.2.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.2.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.1.3 to v10.1.4
+* Upgraded realm-sync from v10.1.4 to v10.1.5
+
+10.3.0 Release notes (2020-12-08)
+=============================================================
+
+### Enhancements
+
+* Add Google OpenID Connect Credentials, an alternative login credential to the
+ Google OAuth 2.0 credential.
+
+### Fixed
+
+* Fixed a bug that would prevent eventual consistency during conflict
+ resolution. Affected clients would experience data divergence and potentially
+ consistency errors as a result if they experienced conflict resolution
+ between cycles of Create-Erase-Create for objects with primary keys (since v10.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.2.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-sync from v10.1.3 to v10.1.4
+
+10.2.0 Release notes (2020-12-02)
+=============================================================
+
+### Enhancements
+
+* The prebuilt binaries are now packaged as XCFrameworks. This adds support for
+ Catalyst and arm64 simulators when using them to install Realm, removes the
+ need for the strip-frameworks build step, and should simplify installation.
+* The support functionality for using the Objective C API from Swift is now
+ included in Realm Swift and now includes all of the required wrappers for
+ MongoDB Realm types. In mixed Objective C/Swift projects, we recommend
+ continuing to use the Objective C types, but import both Realm and RealmSwift
+ in your Swift files.
+
+### Fixed
+
+* The user identifier was added to the file path for synchronized Realms twice
+ and an extra level of escaping was performed on the partition value. This did
+ not cause functional problems, but made file names more confusing than they
+ needed to be. Existing Realm files will continue to be located at the old
+ path, while newly created files will be created at a shorter path. (Since v10.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.2.
+* CocoaPods: 1.10 or later.
+
+10.1.4 Release notes (2020-11-16)
+=============================================================
+
+### Enhancements
+
+* Add arm64 slices to the macOS builds.
+
+### Compatibility
+
+* Realm Studio: 10.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 12.2.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.0.1 to v10.1.3
+* Upgraded realm-sync from v10.0.1 to v10.1.3
+
+10.1.3 Release notes (2020-11-13)
+=============================================================
+
+### Enhancements
+
+* Add Xcode 12.2 binaries to the release package.
+
+### Fixed
+
+* Disallow setting
+ `RLMRealmConfiguration.deleteRealmIfMigrationNeeded`/`Realm.Config.deleteRealmIfMigrationNeeded`
+ when sync is enabled. This did not actually work as it does not delete the
+ relevant server state and broke in confusing ways ([PR #6931](https://github.com/realm/realm-swift/pull/6931)).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.1.
+* CocoaPods: 1.10 or later.
+
+10.1.2 Release notes (2020-11-06)
+=============================================================
+
+### Enhancements
+
+* Some error states which previously threw a misleading "NoSuchTable" exception
+ now throw a more descriptive exception.
+
+### Fixed
+
+* One of the Swift packages did not have the minimum deployment target set,
+ resulting in errors when archiving an app which imported Realm via SPM.
+* Reenable filelock emulation on watchOS so that the OS does not kill the app
+ when it is suspended while a Realm is open on watchOS 7 ([#6861](https://github.com/realm/realm-swift/issues/6861), since v5.4.8
+* Fix crash in case insensitive query on indexed string columns when nothing
+ matches ([#6836](https://github.com/realm/realm-swift/issues/6836), since v5.0.0).
+* Null values in a `List` or `List` were incorrectly treated
+ as non-null in some places. It is unknown if this caused any functional
+ problems when using the public API. ([Core PR #3987](https://github.com/realm/realm-core/pull/3987), since v5.0.0).
+* Deleting an entry in a list in two different clients could end deleting the
+ wrong entry in one client when the changes are merged (since v10.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.1.
+* CocoaPods: 1.10 or later.
+
+### Internal
+
+* Upgraded realm-core from v10.0.0 to v10.1.1
+* Upgraded realm-sync from v10.0.0 to v10.1.1
+
+10.1.1 Release notes (2020-10-27)
+=============================================================
+
+### Enhancements
+
+* Set the minimum CocoaPods version in the podspec so that trying to install
+ with older versions gives a more useful error ([PR #6892](https://github.com/realm/realm-swift/pull/6892)).
+
+### Fixed
+
+* Embedded objects could not be marked as `ObjectKeyIdentifable`
+ ([PR #6890](https://github.com/realm/realm-swift/pull/6890), since v10.0.0).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.1.
+* CocoaPods: 1.10 or later.
+
+10.1.0 Release notes (2020-10-22)
+=============================================================
+
+CocoaPods 1.10 or later is now required to install Realm.
+
+### Enhancements
+
+* Throw an exception for Objects that have none of its properties marked with @objc.
+* Mac Catalyst and arm64 simulators are now supported when integrating via Cocoapods.
+* Add Xcode 12.1 binaries to the release package.
+* Add Combine support for `Realm.asyncOpen()`.
+
+### Fixed
+
+* Implement precise and unbatched notification of sync completion events. This
+ avoids a race condition where an earlier upload completion event will notify
+ a later waiter whose changes haven't been uploaded yet.
+ ([#1118](https://github.com/realm/realm-object-store/pull/1118)).
+
+### Compatibility
+
+* Realm Studio: 10.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 12.1.
+
+10.0.0 Release notes (2020-10-16)
+=============================================================
+
+This release is functionally identical to v10.0.0-rc.2.
+
+NOTE: This version upgrades the Realm file format version to add support for
+new data types. Realm files opened will be automatically upgraded and cannot be
+read by versions older than v10.0.0.
+
+### Breaking Changes
+
+* Rename Realm.Publishers to RealmPublishers to avoid confusion with Combine.Publishers.
+* Remove `[RLMSyncManager shared]`. This is now instatiated as a property on App/RLMApp.
+* `RLMSyncManager.pinnedCertificatePaths` has been removed.
+* Classes `RLMUserAccountInfo` & `RLMUserInfo` (swift: `UserInfo`, `UserAccountInfo`) have been removed.
+* `RLMSyncUser`/`SyncUser` has been renamed to `RLMUser`/`User`.
+* We no longer support Realm Cloud (legacy), but instead the new "MongoDB
+ Realm" Cloud. MongoDB Realm is a serverless platform that enables developers
+ to quickly build applications without having to set up server infrastructure.
+ MongoDB Realm is built on top of MongoDB Atlas, automatically integrating the
+ connection to your database.
+* Remove support for Query-based sync, including the configuration parameters
+ and the `RLMSyncSubscription` and `SyncSubscription` types ([#6437](https://github.com/realm/realm-swift/pull/6437)).
+* Remove everything related to sync permissions, including both the path-based
+ permission system and the object-level privileges for query-based sync.
+ Permissions are now configured via MongoDB Atlas.
+ ([#6445](https://github.com/realm/realm-swift/pulls/6445))
+* Remove support for Realm Object Server.
+* Non-embedded objects in synchronized Realms must always have a primary key
+ named "_id".
+* All Swift callbacks for asynchronous operations which can fail are now passed
+ a `Result` parameter instead of two separate `Value?` and
+ `Error?` parameters.
+
+### Enhancements
+
+* Add support for next generation sync. Support for syncing to MongoDB instead
+ of Realm Object Server. Applications must be created at realm.mongodb.com
+* The memory mapping scheme for Realm files has changed to better support
+ opening very large files.
+* Add support for the ObjectId data type. This is an automatically-generated
+ unique identifier similar to a GUID or a UUID.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for the Decimal128 data type. This is a 128-bit IEEE 754 decimal
+ floating point number similar to NSDecimalNumber.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for embedded objects. Embedded objects are objects which are
+ owned by a single parent object, and are deleted when that parent object is
+ deleted. They are defined by subclassing `EmbeddedObject` /
+ `RLMEmbeddedObject` rather than `Object` / `RLMObject`.
+* Add `-[RLMUser customData]`/`User.customData`. Custom data is
+ configured in your MongoDB Realm App.
+* Add `-[RLMUser callFunctionNamed:arguments:completion:]`/`User.functions`.
+ This is the entry point for calling Remote MongoDB Realm functions. Functions
+ allow you to define and execute server-side logic for your application.
+ Functions are written in modern JavaScript (ES6+) and execute in a serverless
+ manner. When you call a function, you can dynamically access components of
+ the current application as well as information about the request to execute
+ the function and the logged in user that sent the request.
+* Add `-[RLMUser mongoClientWithServiceName:]`/`User.mongoClient`. This is
+ the entry point for calling your Remote MongoDB Service. The read operations
+ are `-[RLMMongoCollection findWhere:completion:]`, `-[RLMMongoCollection
+ countWhere:completion:]`and `-[RLMMongoCollection
+ aggregateWithPipeline:completion:]`. The write operations are
+ `-[RLMMongoCollection insertOneDocument:completion:]`, `-[RLMMongoCollection
+ insertManyDocuments:completion:]`, `-[RLMMongoCollection
+ updateOneDocument:completion:]`, `-[RLMMongoCollection
+ updateManyDocuments:completion:]`, `-[RLMMongoCollection
+ deleteOneDocument:completion:]`, and `-[RLMMongoCollection
+ deleteManyDocuments:completion:]`. If you are already familiar with MongoDB
+ drivers, it is important to understand that the remote MongoCollection only
+ provides access to the operations available in MongoDB Realm.
+* Obtaining a Realm configuration from a user is now done with `[RLMUser
+ configurationWithPartitionValue:]`/`User.configuration(partitionValue:)`.
+ Partition values can currently be of types `String`, `Int`, or `ObjectId`,
+ and fill a similar role to Realm URLs did with Realm Cloud. The main
+ difference is that partitions are meant to be more closely associated with
+ your data. For example, if you are running a `Dog` kennel, and have a field
+ `breed` that acts as your partition key, you could open up realms based on
+ the breed of the dogs.
+* Add ability to stream change events on a remote MongoDB collection with
+ `[RLMMongoCollection watch:delegate:delegateQueue:]`,
+ `MongoCollection.watch(delegate:)`. When calling `watch(delegate:)` you will be
+ given a `RLMChangeStream` (`ChangeStream`) which can be used to end watching
+ by calling `close()`. Change events can also be streamed using the
+ `MongoCollection.watch` Combine publisher that will stream change events each
+ time the remote MongoDB collection is updated.
+* Add the ability to listen for when a Watch Change Stream is opened when using
+ Combine. Use `onOpen(event:)` directly after opening a `WatchPublisher` to
+ register a callback to be invoked once the change stream is opened.
+* Objects with integer primary keys no longer require a separate index for the
+* primary key column, improving insert performance and slightly reducing file
+ size.
+
+### Compatibility
+
+* Realm Studio: 10.0.0 or later.
+* Carthage release for Swift is built with Xcode 12
+
+### Internal
+
+* Upgraded realm-core from v6.1.4 to v10.0.0
+* Upgraded realm-sync from v5.0.29 to v10.0.0
+
+10.0.0-rc.2 Release notes (2020-10-15)
+=============================================================
+
+### Enhancements
+
+* Add the ability to listen for when a Watch Change Stream is opened when using
+ Combine. Use `onOpen(event:)` directly after opening a `WatchPublisher` to
+ register a callback to be invoked once the change stream is opened.
+
+### Breaking Changes
+
+* The insert operations on Mongo collections now report the inserted documents'
+ IDs as BSON rather than ObjectId.
+* Embedded objects can no longer form cycles at the schema level. For example,
+ type A can no longer have an object property of type A, or an object property
+ of type B if type B links to type A. This was always rejected by the server,
+ but previously was allowed in non-synchronized Realms.
+* Primary key properties are once again marked as being indexed. This reflects
+ an internal change to how primary keys are handled that should not have any
+ other visible effects.
+* Change paired return types from Swift completion handlers to return `Result`.
+* Adjust how RealmSwift.Object is defined to add support for Swift Library
+ Evolution mode. This should normally not have any effect, but you may need to
+ add `override` to initializers of object subclasses.
+* Add `.null` type to AnyBSON. This creates a distinction between null values
+ and properly absent BSON types.
+
+### Fixed
+
+* Set the precision correctly when serializing doubles in extended json.
+* Reading the `objectTypes` array from a Realm Configuration would not include
+ the embedded object types which were set in the array.
+* Reject loops in embedded objects as part of local schema validation rather
+ than as a server error.
+* Although MongoClient is obtained from a User, it was actually using the
+ User's App's current user rather than the User it was obtained from to make
+ requests.
+
+
+This release also contains the following changes from 5.4.7 - 5.5.0
+
+### Enhancements
+
+* Add the ability to capture a NotificationToken when using a Combine publisher
+ that observes a Realm Object or Collection. The user will call
+ `saveToken(on:at:)` directly after invoking the publisher to use the feature.
+
+### Fixed
+
+* When using `Realm.write(withoutNotifying:)` there was a chance that the
+ supplied observation blocks would not be skipped when in a write transaction.
+ ([Object Store #1103](https://github.com/realm/realm-object-store/pull/1103))
+* Comparing two identical unmanaged `List<>`/`RLMArray` objects would fail.
+ ([#5665](https://github.com/realm/realm-swift/issues/5665)).
+* Case-insensitive equality queries on indexed string properties failed to
+ clear some internal state when rerunning the query. This could manifest as
+ duplicate results or "key not found" errors.
+ ([#6830](https://github.com/realm/realm-swift/issues/6830), [#6694](https://github.com/realm/realm-swift/issues/6694), since 5.0.0).
+* Equality queries on indexed string properties would sometimes throw "key not
+ found" exceptions if the hash of the string happened to have bit 62 set.
+ ([.NET #2025](https://github.com/realm/realm-dotnet/issues/2025), since v5.0.0).
+* Queries comparing non-optional int properties to nil would behave as if they
+ were comparing against zero instead (since v5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v12 (Reads and upgrades all previous formats)
+* Realm Studio: 10.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 12.
+
+### Internal
+
+* Upgraded realm-core from v10.0.0-beta.9 to v10.0.0
+* Upgraded realm-sync from v10.0.0-beta.14 to v10.0.0
+
+10.0.0-rc.1 Release notes (2020-10-01)
+=============================================================
+
+### Breaking Changes
+
+* Change the following methods on RLMUser to properties:
+ - `[RLMUser emailPasswordAuth]` => `RLMUser.emailPasswordAuth`
+ - `[RLMUser identities]` => `RLMUser.identities`
+ - `[RLMUser allSessions]` => `RLMUser.allSessions`
+ - `[RLMUser apiKeysAuth]` => `RLMUser.apiKeysAuth`
+* Other changes to RLMUser:
+ - `nullable` has been removed from `RLMUser.identifier`
+ - `nullable` has been removed from `RLMUser.customData`
+* Change the following methods on RLMApp to properties:
+ - `[RLMApp allUsers]` => `RLMApp.allUsers`
+ - `[RLMApp currentUser]` => `RLMApp.currentUser`
+ - `[RLMApp emailPasswordAuth]` => `RLMApp.emailPasswordAuth`
+* Define `RealmSwift.Credentials` as an enum instead of a `typealias`. Example
+ usage has changed from `Credentials(googleAuthCode: "token")` to
+ `Credentials.google(serverAuthCode: "serverAuthCode")`, and
+ `Credentials(facebookToken: "token")` to `Credentials.facebook(accessToken: "accessToken")`, etc.
+* Remove error parameter and redefine payload in
+ `+ (instancetype)credentialsWithFunctionPayload:(NSDictionary *)payload error:(NSError **)error;`.
+ It is now defined as `+ (instancetype)credentialsWithFunctionPayload:(NSDictionary> *)payload;`
+
+### Compatibility
+
+* File format: Generates Realms with format v12 (Reads and upgrades all previous formats)
+* Realm Studio: 10.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 12.
+
+10.0.0-beta.6 Release notes (2020-09-30)
+=============================================================
+
+### Breaking Changes
+
+* Change Google Credential parameter names to better reflect the required auth code:
+ - `Credentials(googleToken:)` => `Credentials(googleAuthCode:)`
+ - `[RLMCredentials credentialsWithGoogleToken:]` => `[RLMCredentials credentialsWithGoogleAuthCode:]`
+* Rename Realm.Publishers to RealmPublishers to avoid confusion with Combine.Publishers
+
+### Fixed
+
+* Deleting objects could sometimes change the ObjectId remaining objects from
+ null to ObjectId("deaddeaddeaddeaddeaddead") when there are more than 1000
+ objects. (Since v10.0.0-alpha.1)
+* Fixed an assertion failure when adding an index to a nullable ObjectId
+ property that contains nulls. (since v10.0.0-alpha.1).
+
+This release also contains the following changes from 5.4.0 - 5.4.6:
+
+### Enhancements
+
+* Add prebuilt binary for Xcode 11.7 to the release package.
+* Add prebuilt binary for Xcode 12 to the release package.
+* Improve the asymtotic performance of NOT IN queries on indexed properties. It
+ is now O(Number of Rows) rather than O(Number of Rows \* Number of values in IN clause.)
+* Slightly (<5%) improve the performance of most operations which involve
+ reading from a Realm file.
+
+### Fixed
+
+* Upgrading pre-5.x files with string primary keys would result in a file where
+ `realm.object(ofType:forPrimaryKey:)` would fail to find the object.
+ ([#6716](https://github.com/realm/realm-swift/issues/6716), since 5.2.0)
+* A write transaction which modifies an object with more than 16 managed
+ properties and causes the Realm file to grow larger than 2 GB could cause an
+ assertion failure mentioning "m_has_refs". ([JS #3194](https://github.com/realm/realm-js/issues/3194), since 5.0.0).
+* Objects with more than 32 properties could corrupt the Realm file and result
+ in a variety of crashes. ([Java #7057](https://github.com/realm/realm-java/issues/7057), since 5.0.0).
+* Fix deadlocks when opening a Realm file in both the iOS simulator and Realm
+ Studio ([#6743](https://github.com/realm/realm-swift/issues/6743), since 5.3.6).
+* Fix Springboard deadlocking when an app is unsuspended while it has an open
+ Realm file which is stored in an app group on iOS 10-12
+ ([#6749](https://github.com/realm/realm-swift/issues/6749), since 5.3.6).
+* If you use encryption your application cound crash with a message like
+ "Opening Realm files of format version 0 is not supported by this version of
+ Realm". ([#6889](https://github.com/realm/realm-java/issues/6889) among others, since 5.0.0)
+* Confining a Realm to a serial queue would throw an error claiming that the
+ queue was not a serial queue on iOS versions older than 12.
+ ([#6735](https://github.com/realm/realm-swift/issues/6735), since 5.0.0).
+* Results would sometimes give stale results inside a write transaction if a
+ write which should have updated the Results was made before the first access
+ of a pre-existing Results object.
+ ([#6721](https://github.com/realm/realm-swift/issues/6721), since 5.0.0)
+* Fix Archiving the Realm and RealmSwift frameworks with Xcode 12.
+ ([#6774](https://github.com/realm/realm-swift/issues/6774))
+* Fix compilation via Carthage when using Xcode 12 ([#6717](https://github.com/realm/realm-swift/issues/6717)).
+* Fix a crash inside `realm::Array(Type)::init_from_mem()` which would
+ sometimes occur when running a query over links immediately after creating
+ objects of the queried type.
+ ([#6789](https://github.com/realm/realm-swift/issues/6789) and possibly others, since 5.0.0).
+* Possibly fix problems when changing the type of the primary key of an object
+ from optional to non-optional.
+* Rerunning a equality query on an indexed string property would give incorrect
+ results if a previous run of the query matched multiple objects and it now
+ matches one object. This could manifest as either finding a non-matching
+ object or a "key not found" exception being thrown.
+ ([#6536](https://github.com/realm/realm-swift/issues/6536), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v12 (Reads and upgrades all previous formats)
+* Realm Studio: 10.0.0 or later.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-core from v10.0.0-beta.7 to v10.0.0-beta.9
+* Upgraded realm-sync from v10.0.0-beta.11 to v10.0.0-beta.14
+
+10.0.0-beta.5 Release notes (2020-09-15)
+=============================================================
+
+### Enhancements
+
+* Add `User.loggedIn`.
+* Add support for multiple Realm Apps.
+* Remove `[RLMSyncManager shared]`. This is now instatiated as a property on
+ the app itself.
+* Add Combine support for:
+ * PushClient
+ * APIKeyAuth
+ * User
+ * MongoCollection
+ * EmailPasswordAuth
+ * App.login
+
+### Fixed
+
+* Fix `MongoCollection.watch` to consistently deliver events on a given queue.
+* Fix `[RLMUser logOutWithCompletion]` and `User.logOut` to now log out the
+ correct user.
+* Fix crash on startup on iOS versions older than 13 (since v10.0.0-beta.3).
+
+### Breaking Changes
+
+* `RLMSyncManager.pinnedCertificatePaths` has been removed.
+* Classes `RLMUserAccountInfo` & `RLMUserInfo` (swift: `UserInfo`,
+ `UserAccountInfo`) have been removed.
+* The following functionality has been renamed to align Cocoa with the other
+ Realm SDKs:
+
+| Old API | New API |
+|:-------------------------------------------------------------|:---------------------------------------------------------------|
+| `RLMUser.identity` | `RLMUser.identifier` |
+| `User.identity` | `User.id` |
+| `-[RLMCredentials credentialsWithUsername:password:]` | `-[RLMCredentials credentialsWithEmail:password:]` |
+| `Credentials(username:password:)` | `Credentials(email:password:)` |
+| -`[RLMUser apiKeyAuth]` | `-[RLMUser apiKeysAuth]` |
+| `User.apiKeyAuth()` | `User.apiKeysAuth()` |
+| `-[RLMEmailPasswordAuth registerEmail:password:completion:]` | `-[RLMEmailPasswordAuth registerUserWithEmail:password:completion:]` |
+| `App.emailPasswordAuth().registerEmail(email:password:)` | `App.emailPasswordAuth().registerUser(email:password:)` |
+
+### Compatibility
+
+* File format: Generates Realms with format v12 (Reads and upgrades all previous formats)
+* Realm Studio: 10.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v10.0.0-beta.6 to v10.0.0-beta.7
+* Upgraded realm-sync from v10.0.0-beta.10 to v10.0.0-beta.11
+
+10.0.0-beta.4 Release notes (2020-08-28)
+=============================================================
+
+### Enhancements
+
+* Add support for the 64-bit watchOS simulator added in Xcode 12.
+* Add ability to stream change events on a remote MongoDB collection with
+ `[RLMMongoCollection watch:delegate:delegateQueue]`,
+ `MongoCollection.watch(delegate)`. When calling `watch(delegate)` you will be
+ given a `RLMChangeStream` (`ChangeStream`), this will be used to invalidate
+ and stop the streaming session by calling `[RLMChangeStream close]`
+ (`ChangeStream.close()`) when needed.
+* Add `MongoCollection.watch`, which is a Combine publisher that will stream
+ change events each time the remote MongoDB collection is updated.
+* Add ability to open a synced Realm with a `nil` partition value.
+
+### Fixed
+
+* Realm.Configuration.objectTypes now accepts embedded objects
+* Ports fixes from 5.3.5
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the v10.0.0-beta.x series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+
+* Upgraded realm-core from v10.0.0-beta.1 to v10.0.0-beta.6
+* Upgraded realm-sync from v10.0.0-beta.2 to v10.0.0-beta.10
+
+10.0.0-beta.3 Release notes (2020-08-17)
+=============================================================
+
+This release also contains all changes from 5.3.2.
+
+### Breaking Changes
+* The following classes & aliases have been renamed to align Cocoa with the other Realm SDKs:
+
+| Old API | New API |
+|:------------------------------------------------------------|:---------------------------------------------------------------|
+| `RLMSyncUser` | `RLMUser` |
+| `SyncUser` | `User` |
+| `RLMAppCredential` | `RLMCredential` |
+| `AppCredential` | `Credential` |
+| `RealmApp` | `App` |
+| `RLMUserAPIKeyProviderClient` | `RLMAPIKeyAuth` |
+| `RLMUsernamePasswordProviderClient` | `RLMEmailPasswordAuth` |
+| `UsernamePasswordProviderClient` | `EmailPasswordAuth` |
+| `UserAPIKeyProviderClient` | `APIKeyAuth` |
+
+* The following functionality has also moved to the User
+
+| Old API | New API |
+|:-------------------------------------------------------------|:--------------------------------------------------------------|
+| `[RLMApp callFunctionNamed:]` | `[RLMUser callFunctionNamed:]` |
+| `App.functions` | `User.functions` |
+| `[RLMApp mongoClientWithServiceName:]` | `[RLMUser mongoClientWithServiceName:]` |
+| `App.mongoClient(serviceName)` | `User.mongoClient(serviceName)` |
+| `[RLMApp userAPIKeyProviderClient]` | `[RLMUser apiKeyAuth]` |
+| `App.userAPIKeyProviderClient` | `App.apiKeyAuth()` |
+| `[RLMApp logOut:]` | `[RLMUser logOut]` |
+| `App.logOut(user)` | `User.logOut()` |
+| `[RLMApp removeUser:]` | `[RLMUser remove]` |
+| `App.remove(user)` | `User.remove()` |
+| `[RLMApp linkUser:credentials:]` | `[RLMUser linkWithCredentials:]` |
+| `App.linkUser(user, credentials)` | `User.link(credentials)` |
+
+* `refreshCustomData()` on User now returns void and passes the custom data to the callback on success.
+
+### Compatibility
+* This release introduces breaking changes w.r.t some sync classes and MongoDB Realm Cloud functionality.
+(See the breaking changes section for the full list)
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Studio: 10.0.0 or later.
+* Carthage release for Swift is built with Xcode 11.5.
+
+10.0.0-beta.2 Release notes (2020-06-09)
+=============================================================
+Xcode 11.3 and iOS 9 are now the minimum supported versions.
+
+### Enhancements
+* Add support for building with Xcode 12 beta 1. watchOS currently requires
+ removing x86_64 from the supported architectures. Support for the new 64-bit
+ watch simulator will come in a future release.
+
+### Fixed
+* Opening a SyncSession with LOCAL app deployments would not use the correct endpoints.
+* Linking from embedded objects to top-level objects was incorrectly disallowed.
+* Opening a Realm file in file format v6 (created by Realm Cocoa versions
+ between 2.4 and 2.10) would crash. (Since 5.0.0, [Core #3764](https://github.com/realm/realm-core/issues/3764)).
+* Upgrading v9 (pre-5.0) Realm files would create a redundant search index for
+ primary key properties. This index would then be removed the next time the
+ Realm was opened, resulting in some extra i/o in the upgrade process.
+ (Since 5.0.0, [Core #3787](https://github.com/realm/realm-core/issues/3787)).
+* Fixed a performance issue with upgrading v9 files with search indexes on
+ non-primary-key properties. (Since 5.0.0, [Core #3767](https://github.com/realm/realm-core/issues/3767)).
+
+### Compatibility
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* MongoDB Realm: 84893c5 or later.
+* APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+* Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
+* Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
+
+10.0.0-beta.1 Release notes (2020-06-08)
+=============================================================
+
+NOTE: This version bumps the Realm file format to version 11. It is not
+possible to downgrade to earlier versions. Older files will automatically be
+upgraded to the new file format. Only [Realm Studio
+10.0.0](https://github.com/realm/realm-studio/releases/tag/v10.0.0-beta.1) or
+later will be able to open the new file format.
+
+### Enhancements
+
+* Add support for next generation sync. Support for syncing to MongoDB instead
+ of Realm Object Server. Applications must be created at realm.mongodb.com
+* The memory mapping scheme for Realm files has changed to better support
+ opening very large files.
+* Add support for the ObjectId data type. This is an automatically-generated
+ unique identifier similar to a GUID or a UUID.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for the Decimal128 data type. This is a 128-bit IEEE 754 decimal
+ floating point number similar to NSDecimalNumber.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for embedded objects. Embedded objects are objects which are
+ owned by a single parent object, and are deleted when that parent object is
+ deleted. They are defined by subclassing `EmbeddedObject` /
+ `RLMEmbeddedObject` rather than `Object` / `RLMObject`.
+* Add `-[RLMSyncUser customData]`/`SyncUser.customData`. Custom data is
+ configured in your MongoDB Realm App.
+* Add `-[RLMApp callFunctionNamed:arguments]`/`RealmApp.functions`. This is the
+ entry point for calling Remote MongoDB Realm functions. Functions allow you
+ to define and execute server-side logic for your application. Functions are
+ written in modern JavaScript (ES6+) and execute in a serverless manner. When
+ you call a function, you can dynamically access components of the current
+ application as well as information about the request to execute the function
+ and the logged in user that sent the request.
+* Add `-[RLMApp mongoClientWithServiceName]`/`RealmApp.mongoClient`. This is
+ the entry point for calling your Remote MongoDB Service. The read operations
+ are `-[RLMMongoCollection findWhere:completion:]`, `-[RLMMongoCollection
+ countWhere:completion:]`and `-[RLMMongoCollection
+ aggregateWithPipeline:completion:]`. The write operations are
+ `-[RLMMongoCollection insertOneDocument:completion:]`, `-[RLMMongoCollection
+ insertManyDocuments:completion:]`, `-[RLMMongoCollection
+ updateOneDocument:completion:]`, `-[RLMMongoCollection
+ updateManyDocuments:completion:]`, `-[RLMMongoCollection
+ deleteOneDocument:completion:]`, and `-[RLMMongoCollection
+ deleteManyDocuments:completion:]`. If you are already familiar with MongoDB
+ drivers, it is important to understand that the remote MongoCollection only
+ provides access to the operations available in MongoDB Realm.
+* Change `[RLMSyncUser
+ configurationWithPartitionValue:]`/`SyncUser.configuration(with:)` to accept
+ all BSON types. Partition values can currently be of types `String`, `Int`,
+ or `ObjectId`. Opening a realm by partition value is the equivalent of
+ previously opening a realm by URL. In this case, partitions are meant to be
+ more closely associated with your data. E.g., if you are running a `Dog`
+ kennel, and have a field `breed` that acts as your partition key, you could
+ open up realms based on the breed of the dogs.
+
+### Breaking Changes
+
+* We no longer support Realm Cloud (legacy), but instead the new "MongoDB
+ Realm" Cloud. MongoDB Realm is a serverless platform that enables developers
+ to quickly build applications without having to set up server infrastructure.
+ MongoDB Realm is built on top of MongoDB Atlas, automatically integrating the
+ connection to your database.
+* Remove support for Query-based sync, including the configuration parameters
+ and the `RLMSyncSubscription` and `SyncSubscription` types ([#6437](https://github.com/realm/realm-swift/pull/6437)).
+* Primary key properties are no longer marked as being indexed. This reflects
+ an internal change to how primary keys are handled that should not have any
+ other visible effects. ([#6440](https://github.com/realm/realm-swift/pull/6440)).
+* Remove everything related to sync permissions, including both the path-based
+ permission system and the object-level privileges for query-based sync. ([#6445](https://github.com/realm/realm-swift/pulls/6445))
+* Primary key uniqueness is now enforced when creating new objects during
+ migrations, rather than only at the end of migrations. Previously new objects
+ could be created with duplicate primary keys during a migration as long as
+ the property was changed to a unique value before the end of the migration,
+ but now a unique value must be supplied when creating the object.
+* Remove support for Realm Object Server.
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* MongoDB Realm: 84893c5 or later.
+* APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+
+* Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
+* Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
+
+5.5.0 Release notes (2020-10-12)
+=============================================================
+
+### Enhancements
+
+* Add the ability to capture a NotificationToken when using a Combine publisher
+ that observes a Realm Object or Collection. The user will call
+ `saveToken(on:at:)` directly after invoking the publisher to use the feature.
+
+### Fixed
+
+* When using `Realm.write(withoutNotifying:)` there was a chance that the
+ supplied observation blocks would not be skipped when in a write transaction.
+ ([Object Store #1103](https://github.com/realm/realm-object-store/pull/1103))
+* Comparing two identical unmanaged `List<>`/`RLMArray` objects would fail.
+ ([#5665](https://github.com/realm/realm-swift/issues/5665)).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+5.4.8 Release notes (2020-10-05)
+=============================================================
+
+### Fixed
+
+* Case-insensitive equality queries on indexed string properties failed to
+ clear some internal state when rerunning the query. This could manifest as
+ duplicate results or "key not found" errors.
+ ([#6830](https://github.com/realm/realm-swift/issues/6830), [#6694](https://github.com/realm/realm-swift/issues/6694), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-core from v6.1.3 to v6.1.4
+* Upgraded realm-sync from v5.0.28 to v5.0.29
+
+5.4.7 Release notes (2020-09-30)
+=============================================================
+
+### Fixed
+
+* Equality queries on indexed string properties would sometimes throw "key not
+ found" exceptions if the hash of the string happened to have bit 62 set.
+ ([.NET #2025](https://github.com/realm/realm-dotnet/issues/2025), since v5.0.0).
+* Queries comparing non-optional int properties to nil would behave as if they
+ were comparing against zero instead (since v5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-core from v6.1.2 to v6.1.3
+* Upgraded realm-sync from v5.0.27 to v5.0.28
+
+5.4.6 Release notes (2020-09-29)
+=============================================================
+
+5.4.5 failed to actually update the core version for installation methods other
+than SPM. All changes listed there actually happened in this version for
+non-SPM installation methods.
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-sync from v5.0.26 to v5.0.27
+
+5.4.5 Release notes (2020-09-28)
+=============================================================
+
+### Enhancements
+
+* Slightly (<5%) improve the performance of most operations which involve
+ reading from a Realm file.
+
+### Fixed
+
+* Rerunning a equality query on an indexed string property would give incorrect
+ results if a previous run of the query matched multiple objects and it now
+ matches one object. This could manifest as either finding a non-matching
+ object or a "key not found" exception being thrown.
+ ([#6536](https://github.com/realm/realm-swift/issues/6536), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-core from v6.1.1 to v6.1.2
+* Upgraded realm-sync from v5.0.25 to v5.0.26
+
+5.4.4 Release notes (2020-09-25)
+=============================================================
+
+### Enhancements
+* Improve the asymtotic performance of NOT IN queries on indexed properties. It
+ is now O(Number of Rows) rather than O(Number of Rows \* Number of values in IN clause.)
+
+### Fixed
+
+* Fix a crash inside `realm::Array(Type)::init_from_mem()` which would
+ sometimes occur when running a query over links immediately after creating
+ objects of the queried type.
+ ([#6789](https://github.com/realm/realm-swift/issues/6789) and possibly others, since 5.0.0).
+* Possibly fix problems when changing the type of the primary key of an object
+ from optional to non-optional.
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 5.0.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+### Internal
+
+* Upgraded realm-core from v6.0.26 to v6.1.1
+* Upgraded realm-sync from v5.0.23 to v5.0.25
+
+5.4.3 Release notes (2020-09-21)
+=============================================================
+
+### Fixed
+
+* Fix compilation via Carthage when using Xcode 12 ([#6717](https://github.com/realm/realm-swift/issues/6717)).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.12 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+5.4.2 Release notes (2020-09-17)
+=============================================================
+
+### Enhancements
+
+* Add prebuilt binary for Xcode 12 to the release package.
+
+### Fixed
+
+* Fix Archiving the Realm and RealmSwift frameworks with Xcode 12.
+ ([#6774](https://github.com/realm/realm-swift/issues/6774))
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.12 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 12.
+
+5.4.1 Release notes (2020-09-16)
+=============================================================
+
+### Enhancements
+
+* Add prebuilt binary for Xcode 11.7 to the release package.
+
+### Fixed
+
+* Fix deadlocks when opening a Realm file in both the iOS simulator and Realm
+ Studio ([#6743](https://github.com/realm/realm-swift/issues/6743), since 5.3.6).
+* Fix Springboard deadlocking when an app is unsuspended while it has an open
+ Realm file which is stored in an app group on iOS 10-12
+ ([#6749](https://github.com/realm/realm-swift/issues/6749), since 5.3.6).
+* If you use encryption your application cound crash with a message like
+ "Opening Realm files of format version 0 is not supported by this version of
+ Realm". ([#6889](https://github.com/realm/realm-java/issues/6889) among others, since 5.0.0)
+* Confining a Realm to a serial queue would throw an error claiming that the
+ queue was not a serial queue on iOS versions older than 12.
+ ([#6735](https://github.com/realm/realm-swift/issues/6735), since 5.0.0).
+* Results would sometimes give stale results inside a write transaction if a
+ write which should have updated the Results was made before the first access
+ of a pre-existing Results object.
+ ([#6721](https://github.com/realm/realm-swift/issues/6721), since 5.0.0)
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.12 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.7.
+
+### Internal
+
+* Upgraded realm-core from v6.0.25 to v6.0.26
+* Upgraded realm-sync from v5.0.22 to v5.0.23
+
+5.4.0 Release notes (2020-09-09)
+=============================================================
+
+This version bumps the Realm file format version. This means that older
+versions of Realm will be unable to open Realm files written by this version,
+and a new version of Realm Studio will be required. There are no actual format
+changes and the version bump is just to force a re-migration of incorrectly
+upgraded Realms.
+
+### Fixed
+
+* Upgrading pre-5.x files with string primary keys would result in a file where
+ `realm.object(ofType:forPrimaryKey:)` would fail to find the object.
+ ([#6716](https://github.com/realm/realm-swift/issues/6716), since 5.2.0)
+* A write transaction which modifies an object with more than 16 managed
+ properties and causes the Realm file to grow larger than 2 GB could cause an
+ assertion failure mentioning "m_has_refs". ([JS #3194](https://github.com/realm/realm-js/issues/3194), since 5.0.0).
+* Objects with more than 32 properties could corrupt the Realm file and result
+ in a variety of crashes. ([Java #7057](https://github.com/realm/realm-java/issues/7057), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.12 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.23 to v6.0.25
+* Upgraded realm-sync from v5.0.20 to v5.0.22
+
+5.3.6 Release notes (2020-09-02)
+=============================================================
+
+### Fixed
+
+* Work around iOS 14 no longer allowing the use of file locks in shared
+ containers, which resulted in the OS killing an app which entered the
+ background while a Realm was open ([#6671](https://github.com/realm/realm-swift/issues/6671)).
+* If an attempt to upgrade a realm has ended with a crash with "migrate_links()"
+ in the call stack, the realm was left in an invalid state. The migration
+ logic now handles this state and can complete upgrading files which were
+ incompletely upgraded by pre-5.3.4 versions.
+* Fix deadlocks when writing to a Realm file on an exFAT partition from macOS.
+ ([#6691](https://github.com/realm/realm-swift/issues/6691)).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.19 to v6.0.23
+* Upgraded realm-sync from v5.0.16 to v5.0.20
+
+5.3.5 Release notes (2020-08-20)
+=============================================================
+
+### Fixed
+
+* Opening Realms on background threads could produce spurious Incorrect Thread
+ exceptions when a cached Realm existed for a previously existing thread with
+ the same thread ID as the current thread.
+ ([#6659](https://github.com/realm/realm-swift/issues/6659),
+ [#6689](https://github.com/realm/realm-swift/issues/6689),
+ [#6712](https://github.com/realm/realm-swift/issues/6712), since 5.0.0).
+* Upgrading a table with incoming links but no properties would crash. This was
+ probably not possible to hit in practice as we reject object types with no
+ properties.
+* Upgrading a non-nullable List which nonetheless contained null values would
+ crash. This was possible due to missing error-checking in some older versions
+ of Realm.
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.18 to v6.0.19
+* Upgraded realm-sync from v5.0.15 to v5.0.16
+
+5.3.4 Release notes (2020-08-17)
+=============================================================
+
+### Fixed
+
+* Accessing a Realm after calling `deleteAll()` would sometimes throw an
+ exception with the reason 'ConstIterator copy failed'. ([#6597](https://github.com/realm/realm-swift/issues/6597), since 5.0.0).
+* Fix an assertion failure inside the `migrate_links()` function when upgrading
+ a pre-5.0 Realm file.
+* Fix a bug in memory mapping management. This bug could result in multiple
+ different asserts as well as segfaults. In many cases stack backtraces would
+ include members of the EncyptedFileMapping near the top - even if encryption
+ was not used at all. In other cases asserts or crashes would be in methods
+ reading an array header or array element. In all cases the application would
+ terminate immediately. ([Core #3838](https://github.com/realm/realm-core/pull/3838), since v5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.14 to v6.0.18
+* Upgraded realm-sync from v5.0.14 to v5.0.15
+
+5.3.3 Release notes (2020-07-30)
+=============================================================
+
+### Enhancements
+
+* Add support for the x86_64 watchOS simulator added in Xcode 12.
+
+### Fixed
+
+* (RLM)Results objects would incorrectly pin old read transaction versions
+ until they were accessed after a Realm was refreshed, resulting in the Realm
+ file growing to large sizes if a Results was retained but not accessed after
+ every write. ([#6677](https://github.com/realm/realm-swift/issues/6677), since 5.0.0).
+* Fix linker errors when using SwiftUI previews with Xcode 12 when Realm was
+ installed via Swift Package Manager. ([#6625](https://github.com/realm/realm-swift/issues/6625))
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.12 to v6.0.14
+* Upgraded realm-sync from v5.0.12 to v5.0.14
+
+5.3.2 Release notes (2020-07-21)
+=============================================================
+
+### Fixed
+
+* Fix a file format upgrade bug when opening older Realm files. Could cause
+ assertions like "Assertion failed: ref != 0" during opning of a Realm.
+ ([Core #6644](https://github.com/realm/realm-swift/issues/6644), since 5.2.0)
+* A use-after-free would occur if a Realm was compacted, opened on multiple
+ threads prior to the first write, then written to while reads were happening
+ on other threads. This could result in a variety of crashes, often inside
+ realm::util::EncryptedFileMapping::read_barrier.
+ (Since v5.0.0, [#6626](https://github.com/realm/realm-swift/issues/6626),
+ [#6628](https://github.com/realm/realm-swift/issues/6628),
+ [#6652](https://github.com/realm/realm-swift/issues/6652),
+ [#6655](https://github.com/realm/realm-swift/issues/6555),
+ [#6656](https://github.com/realm/realm-swift/issues/6656)).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.11 to v6.0.12
+* Upgraded realm-sync from v5.0.11 to v5.0.12
+
+5.3.1 Release notes (2020-07-17)
+=============================================================
+
+### Enhancements
+
+* Add prebuilt binary for Xcode 11.6 to the release package.
+
+### Fixed
+
+* Creating an object inside migration which changed that object type's primary
+ key would hit an assertion failure mentioning primary_key_col
+ ([#6613](https://github.com/realm/realm-swift/issues/6613), since 5.0.0).
+* Modifying the value of a string primary key property inside a migration with
+ a Realm file which was upgraded from pre-5.0 would corrupt the property's
+ index, typically resulting in crashes. ([Core #3765](https://github.com/realm/realm-core/issues/3765), since 5.0.0).
+* Some Realm files which hit assertion failures when upgrading from the pre-5.0
+ file format should now upgrade correctly (Since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.6.
+
+### Internal
+
+* Upgraded realm-core from v6.0.9 to v6.0.11
+* Upgraded realm-sync from v5.0.8 to v5.0.11
+
+5.3.0 Release notes (2020-07-14)
+=============================================================
+
+### Enhancements
+
+* Add `Realm.objectWillChange`, which is a Combine publisher that will emit a
+ notification each time the Realm is refreshed or a write transaction is
+ commited.
+
+### Fixed
+
+* Fix the spelling of `ObjectKeyIdentifiable`. The old spelling is available
+ and deprecated for compatibility.
+* Rename `RealmCollection.publisher` to `RealmCollection.collectionPublisher`.
+ The old name interacted with the `publisher` defined by `Sequence` in very
+ confusing ways, so we need to use a different name. The `publisher` name is
+ still available for compatibility. ([#6516](https://github.com/realm/realm-swift/issues/6516))
+* Work around "xcodebuild timed out while trying to read
+ SwiftPackageManagerExample.xcodeproj" errors when installing Realm via
+ Carthage. ([#6549](https://github.com/realm/realm-swift/issues/6549)).
+* Fix a performance regression when using change notifications. (Since 5.0.0,
+ [#6629](https://github.com/realm/realm-swift/issues/6629)).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+
+* Upgraded realm-core from v6.0.8 to v6.0.9
+* Upgraded realm-sync from v5.0.7 to v5.0.8
+
+5.2.0 Release notes (2020-06-30)
+=============================================================
+
+### Fixed
+* Opening a SyncSession with LOCAL app deployments would not use the correct endpoints.
+This release also contains all changes from 5.0.3 and 5.1.0.
+
+### Breaking Changes
+* The following classes & aliases have been renamed to align Cocoa with the other Realm SDKs:
+
+| Old API | New API |
+|:------------------------------------------------------------|:---------------------------------------------------------------|
+| `RLMSyncUser` | `RLMUser` |
+| `SyncUser` | `User` |
+| `RLMAppCredential` | `RLMCredential` |
+| `AppCredential` | `Credential` |
+| `RealmApp` | `App` |
+| `RLMUserAPIKeyProviderClient` | `RLMAPIKeyAuth` |
+| `RLMUsernamePasswordProviderClient` | `RLMEmailPasswordAuth` |
+| `UsernamePasswordProviderClient` | `EmailPasswordAuth` |
+| `UserAPIKeyProviderClient` | `APIKeyAuth` |
+
+* The following functionality has also moved to the User:
+
+| Old API | New API |
+|:-------------------------------------------------------------|:--------------------------------------------------------------|
+| `[RLMApp callFunctionNamed:]` | `[RLMUser callFunctionNamed:]` |
+| `App.functions` | `User.functions` |
+| `[RLMApp mongoClientWithServiceName:]` | `[RLMUser mongoClientWithServiceName:]` |
+| `App.mongoClient(serviceName)` | `User.mongoClient(serviceName)` |
+| `[RLMApp userAPIKeyProviderClient]` | `[RLMUser apiKeyAuth]` |
+| `App.userAPIKeyProviderClient` | `App.apiKeyAuth()` |
+| `[RLMApp logOut:]` | `[RLMUser logOut]` |
+| `App.logOut(user)` | `User.logOut()` |
+| `[RLMApp removeUser:]` | `[RLMUser remove]` |
+| `App.remove(user)` | `User.remove()` |
+| `[RLMApp linkUser:credentials:]` | `[RLMUser linkWithCredentials:]` |
+| `App.linkUser(user, credentials)` | `User.link(credentials)` |
+
+* The argument labels in Swift have changed for several methods:
+| Old API | New API |
+|:-------------------------------------------------------------|:--------------------------------------------------------------|
+| `APIKeyAuth.createApiKey(withName:completion:)` | `APIKeyAuth.createApiKey(named:completion:)` |
+| `App.login(withCredential:completion:) | `App.login(credentials:completion:)` |
+| `App.pushClient(withServiceName:)` | `App.pushClient(serviceName:)` |
+| `MongoClient.database(withName:)` | `MongoClient.database(named:)` |
+
+* `refreshCustomData()` on User now returns void and passes the custom data to the callback on success.
+
+### Compatibility
+* This release introduces breaking changes w.r.t some sync classes and MongoDB Realm Cloud functionality.
+ (See the breaking changes section for the full list)
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* MongoDB Realm: 84893c5 or later.
+* APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
+* Realm Studio: 10.0.0 or later.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+* Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
+* Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
+
+10.0.0-beta.2 Release notes (2020-06-09)
+=============================================================
+Xcode 11.3 and iOS 9 are now the minimum supported versions.
+
+### Enhancements
+
+* Add support for building with Xcode 12 beta 1. watchOS currently requires
+ removing x86_64 from the supported architectures. Support for the new 64-bit
+ watch simulator will come in a future release.
+
+### Fixed
+* Opening a SyncSession with LOCAL app deployments would not use the correct endpoints.
+* Linking from embedded objects to top-level objects was incorrectly disallowed.
+
+* Opening a Realm file in file format v6 (created by Realm Cocoa versions
+ between 2.4 and 2.10) would crash. (Since 5.0.0, [Core #3764](https://github.com/realm/realm-core/issues/3764)).
+* Upgrading v9 (pre-5.0) Realm files would create a redundant search index for
+ primary key properties. This index would then be removed the next time the
+ Realm was opened, resulting in some extra i/o in the upgrade process.
+ (Since 5.0.0, [Core #3787](https://github.com/realm/realm-core/issues/3787)).
+* Fixed a performance issue with upgrading v9 files with search indexes on
+ non-primary-key properties. (Since 5.0.0, [Core #3767](https://github.com/realm/realm-core/issues/3767)).
+
+### Compatibility
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* MongoDB Realm: 84893c5 or later.
+* APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+* Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
+* Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
+
+10.0.0-beta.1 Release notes (2020-06-08)
+=============================================================
+
+NOTE: This version bumps the Realm file format to version 11. It is not
+possible to downgrade to earlier versions. Older files will automatically be
+upgraded to the new file format. Only [Realm Studio
+10.0.0](https://github.com/realm/realm-studio/releases/tag/v10.0.0-beta.1) or
+later will be able to open the new file format.
+
+### Enhancements
+
+* Add support for next generation sync. Support for syncing to MongoDB instead
+ of Realm Object Server. Applications must be created at realm.mongodb.com
+* The memory mapping scheme for Realm files has changed to better support
+ opening very large files.
+* Add support for the ObjectId data type. This is an automatically-generated
+ unique identifier similar to a GUID or a UUID.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for the Decimal128 data type. This is a 128-bit IEEE 754 decimal
+ floating point number similar to NSDecimalNumber.
+ ([PR #6450](https://github.com/realm/realm-swift/pull/6450)).
+* Add support for embedded objects. Embedded objects are objects which are
+ owned by a single parent object, and are deleted when that parent object is
+ deleted. They are defined by subclassing `EmbeddedObject` /
+ `RLMEmbeddedObject` rather than `Object` / `RLMObject`.
+* Add `-[RLMSyncUser customData]`/`SyncUser.customData`. Custom data is
+ configured in your MongoDB Realm App.
+* Add `-[RLMApp callFunctionNamed:arguments]`/`RealmApp.functions`. This is the
+ entry point for calling Remote MongoDB Realm functions. Functions allow you
+ to define and execute server-side logic for your application. Functions are
+ written in modern JavaScript (ES6+) and execute in a serverless manner. When
+ you call a function, you can dynamically access components of the current
+ application as well as information about the request to execute the function
+ and the logged in user that sent the request.
+* Add `-[RLMApp mongoClientWithServiceName]`/`RealmApp.mongoClient`. This is
+ the entry point for calling your Remote MongoDB Service. The read operations
+ are `-[RLMMongoCollection findWhere:completion:]`, `-[RLMMongoCollection
+ countWhere:completion:]`and `-[RLMMongoCollection
+ aggregateWithPipeline:completion:]`. The write operations are
+ `-[RLMMongoCollection insertOneDocument:completion:]`, `-[RLMMongoCollection
+ insertManyDocuments:completion:]`, `-[RLMMongoCollection
+ updateOneDocument:completion:]`, `-[RLMMongoCollection
+ updateManyDocuments:completion:]`, `-[RLMMongoCollection
+ deleteOneDocument:completion:]`, and `-[RLMMongoCollection
+ deleteManyDocuments:completion:]`. If you are already familiar with MongoDB
+ drivers, it is important to understand that the remote MongoCollection only
+ provides access to the operations available in MongoDB Realm.
+* Change `[RLMSyncUser
+ configurationWithPartitionValue:]`/`SyncUser.configuration(with:)` to accept
+ all BSON types. Partition values can currently be of types `String`, `Int`,
+ or `ObjectId`. Opening a realm by partition value is the equivalent of
+ previously opening a realm by URL. In this case, partitions are meant to be
+ more closely associated with your data. E.g., if you are running a `Dog`
+ kennel, and have a field `breed` that acts as your partition key, you could
+ open up realms based on the breed of the dogs.
+
+### Breaking Changes
+
+* We no longer support Realm Cloud (legacy), but instead the new "MongoDB
+ Realm" Cloud. MongoDB Realm is a serverless platform that enables developers
+ to quickly build applications without having to set up server infrastructure.
+ MongoDB Realm is built on top of MongoDB Atlas, automatically integrating the
+ connection to your database.
+* Remove support for Query-based sync, including the configuration parameters
+ and the `RLMSyncSubscription` and `SyncSubscription` types ([#6437](https://github.com/realm/realm-swift/pull/6437)).
+* Primary key properties are no longer marked as being indexed. This reflects
+ an internal change to how primary keys are handled that should not have any
+ other visible effects. ([#6440](https://github.com/realm/realm-swift/pull/6440)).
+* Remove everything related to sync permissions, including both the path-based
+ permission system and the object-level privileges for query-based sync. ([#6445](https://github.com/realm/realm-swift/pulls/6445))
+* Primary key uniqueness is now enforced when creating new objects during
+ migrations, rather than only at the end of migrations. Previously new objects
+ could be created with duplicate primary keys during a migration as long as
+ the property was changed to a unique value before the end of the migration,
+ but now a unique value must be supplied when creating the object.
+* Remove support for Realm Object Server.
+
+### Compatibility
+
+* File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
+* MongoDB Realm: 84893c5 or later.
+* APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
+* `List.index(of:)` would give incorrect results if it was the very first thing
+ called on that List after a Realm was refreshed following a write which
+ modified the List. (Since 5.0.0, [#6606](https://github.com/realm/realm-swift/issues/6606)).
+* If a ThreadSafeReference was the only remaining reference to a Realm,
+ multiple copies of the file could end up mapped into memory at once. This
+ probably did not have any symptoms other than increased memory usage. (Since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+
+* Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
+* Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
+* Upgraded realm-core from v6.0.6 to v6.0.7
+* Upgraded realm-sync from v5.0.5 to v5.0.6
+* Upgraded realm-core from v6.0.6 to v6.0.8
+* Upgraded realm-sync from v5.0.5 to v5.0.7
+
+5.1.0 Release notes (2020-06-22)
+=============================================================
+
+### Enhancements
+
+* Allow opening full-sync Realms in read-only mode. This disables local schema
+ initialization, which makes it possible to open a Realm which the user does
+ not have write access to without using asyncOpen. In addition, it will report
+ errors immediately when an operation would require writing to the Realm
+ rather than reporting it via the sync error handler only after the server
+ rejects the write.
+
+### Fixed
+
+* Opening a Realm using a configuration object read from an existing Realm
+ would incorrectly bind the new Realm to the original Realm's thread/queue,
+ resulting in "Realm accessed from incorrect thread." exceptions.
+ ([#6574](https://github.com/realm/realm-swift/issues/6574),
+ [#6559](https://github.com/realm/realm-swift/issues/6559), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+5.0.3 Release notes (2020-06-10)
+=============================================================
+
+### Fixed
+
+* `-[RLMObject isFrozen]` always returned false. ([#6568](https://github.com/realm/realm-swift/issues/6568), since 5.0.0).
+* Freezing an object within the write transaction that the object was created
+ in now throws an exception rather than crashing when the object is first
+ used.
+* The schema for frozen Realms was not properly initialized, leading to crashes
+ when accessing a RLMLinkingObjects property.
+ ([#6568](https://github.com/realm/realm-swift/issues/6568), since 5.0.0).
+* Observing `Object.isInvalidated` via a keypath literal would produce a
+ warning in Swift 5.2 due to the property not being marked as @objc.
+ ([#6554](https://github.com/realm/realm-swift/issues/6554))
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+5.0.2 Release notes (2020-06-02)
+=============================================================
+
+### Fixed
+
+* Fix errSecDuplicateItem (-25299) errors when opening a synchronized Realm
+ when upgrading from pre-5.0 versions of Realm.
+ ([#6538](https://github.com/realm/realm-swift/issues/6538), [#6494](https://github.com/realm/realm-swift/issues/6494), since 5.0.0).
+* Opening Realms stored on filesystems which do not support preallocation (such
+ as ExFAT) would give "Operation not supported" exceptions.
+ ([#6508](https://github.com/realm/realm-swift/issues/6508), since 3.2.0).
+* 'NoSuchTable' exceptions would sometimes be thrown after upgrading a Relam
+ file to the v10 format. ([Core #3701](https://github.com/realm/realm-core/issues/3701), since 5.0.0)
+* If the upgrade process was interrupted/killed for various reasons, the
+ following run could stop with some assertions failing. No instances of this
+ happening were reported to us. (Since 5.0.0).
+* Queries filtering a `List` where the query was on an indexed property over a
+ link would sometimes give incomplete results.
+ ([#6540](https://github.com/realm/realm-swift/issues/6540), since 4.1.0 but
+ more common since 5.0.0)
+* Opening a file in read-only mode would attempt to make a spurious write to
+ the file, causing errors if the file was in read-only storage (since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+### Internal
+
+* Upgraded realm-core from v6.0.4 to v6.0.6
+* Upgraded realm-sync from v5.0.3 to v5.0.5
+
+5.0.1 Release notes (2020-05-27)
+=============================================================
+
+### Enhancements
+
+* Add prebuilt binary for Xcode 11.5 to the release package.
+
+### Fixed
+
+* Fix linker error when building a xcframework for Catalyst.
+ ([#6511](https://github.com/realm/realm-swift/issues/6511), since 4.3.1).
+* Fix building for iOS devices when using Swift Package Manager
+ ([#6522](https://github.com/realm/realm-swift/issues/6522), since 5.0.0).
+* `List` and `RealmOptional` properties on frozen objects were not initialized
+ correctly and would always report `nil` or an empty list.
+ ([#6527](https://github.com/realm/realm-swift/issues/6527), since 5.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.5.
+
+5.0.0 Release notes (2020-05-15)
+=============================================================
+
+NOTE: This version bumps the Realm file format to version 10. It is not
+possible to downgrade version 9 or earlier. Files created with older versions
+of Realm will be automatically upgraded. Only
+[Studio 3.11](https://github.com/realm/realm-studio/releases/tag/v3.11.0) or later will be able
+to open the new file format.
+
+### Enhancements
+
+* Storing large binary blobs in Realm files no longer forces the file to be at
+ least 8x the size of the largest blob.
+* Reduce the size of transaction logs stored inside the Realm file, reducing
+ file size growth from large transactions.
+* Add support for frozen objects. `Realm`, `Results`, `List` and `Object` now
+ have `freeze()` methods which return a frozen copy of the object. These
+ objects behave similarly to creating unmanaged deep copies of the source
+ objects. They can be read from any thread and do not update when writes are
+ made to the Realm, but creating frozen objects does not actually copy data
+ out of the Realm and so can be much faster and use less memory. Frozen
+ objects cannot be mutated or observed for changes (as they never change).
+ ([PR #6427](https://github.com/realm/realm-swift/pull/6427)).
+* Add the `isFrozen` property to `Realm`, `Results`, `List` and `Object`.
+* Add `Realm.Configuration.maxNumberOfActiveVersions`. Each time a write
+ transaction is performed, a new version is created inside the Realm, and then
+ any versions which are no longer in use are cleaned up. If too many versions
+ are kept alive while performing writes (either due to a background thread
+ performing a long operation that doesn't let the Realm on that thread
+ refresh, or due to holding onto frozen versions for a long time) the Realm
+ file will grow in size, potentially to the point where it is too large to be
+ opened. Setting this configuration option will make write transactions which
+ would cause the live version count to exceed the limit to instead fail.
+* Add support for queue-confined Realms. Rather than being bound to a specific
+ thread, queue-confined Realms are bound to a serial dispatch queue and can be
+ used within blocks dispatched to that queue regardless of what thread they
+ happen to run on. In addition, change notifications will be delivered to that
+ queue rather than the thread's run loop. ([PR #6478](https://github.com/realm/realm-swift/pull/6478)).
+* Add an option to deliver object and collection notifications to a specific
+ serial queue rather than the current thread. ([PR #6478](https://github.com/realm/realm-swift/pull/6478)).
+* Add Combine publishers for Realm types. Realm collections have a `.publisher`
+ property which publishes the collection each time it changes, and a
+ `.changesetPublisher` which publishes a `RealmCollectionChange` each time the
+ collection changes. Corresponding publishers for Realm Objects can be
+ obtained with the `publisher()` and `changesetPublisher()` global functions.
+* Extend Combine publishers which output Realm types with a `.freeze()`
+ function which will make the publisher instead output frozen objects.
+* String primary keys no longer require a separate index, improving insertion
+ and deletion performance without hurting lookup performance.
+* Reduce the encrypted page reclaimer's impact on battery life when encryption
+ is used. ([Core #3461](https://github.com/realm/realm-core/pull/3461)).
+
+### Fixed
+
+* The uploaded bytes in sync progress notifications was sometimes incorrect and
+ wouldn't exactly equal the uploadable bytes when the uploaded completed.
+* macOS binaries were built with the incorrect deployment target (10.14 rather
+ than 10.9), resulting in linker warnings. ([#6299](https://github.com/realm/realm-swift/issues/6299), since 3.18.0).
+* An internal datastructure for List properties could be double-deleted if the
+ last reference was released from a thread other than the one which the List
+ was created on at the wrong time. This would typically manifest as
+ "pthread_mutex_destroy() failed", but could also result in other kinds of
+ crashes. ([#6333](https://github.com/realm/realm-swift/issues/6333)).
+* Sorting on float or double properties containing NaN values had inconsistent
+ results and would sometimes crash due to out-of-bounds memory accesses.
+ ([#6357](https://github.com/realm/realm-swift/issues/6357)).
+
+### Breaking Changes
+
+* The ObjectChange type in Swift is now generic and includes a reference to the
+ object which changed. When using `observe(on:)` to receive notifications on a
+ dispatch queue, the object will be confined to that queue.
+* The Realm instance passed in the callback to asyncOpen() is now confined to
+ the callback queue passed to asyncOpen() rather than the thread which the
+ callback happens to be called on. This means that the Realm instance may be
+ stored and reused in further blocks dispatched to that queue, but the queue
+ must now be a serial queue.
+* Files containing Date properties written by version of Realm prior to 1.0 can
+ no longer be opened.
+* Files containing Any properties can no longer be opened. This property type
+ was never documented and was deprecated in 1.0.
+* Deleting objects now preserves the order of objects reported by unsorted
+ Results rather than performing a swap operation before the delete. Note that
+ it is still not safe to assume that the order of objects in an unsorted
+ Results is the order that the objects were created in.
+* The minimum supported deployment target for iOS when using Swift Package
+ Manager to install Realm is now iOS 11.
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Realm Studio: 3.11 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.4.1.
+
+### Internal
+
+* Upgraded realm-core from v5.23.8 to v6.0.4
+* Upgraded realm-sync from v4.9.5 to v5.0.3
+
+5.0.0-beta.6 Release notes (2020-05-08)
+=============================================================
+
+### Enhancements
+
+* Add support for queue-confined Realms. Rather than being bound to a specific
+ thread, queue-confined Realms are bound to a serial dispatch queue and can be
+ used within blocks dispatched to that queue regardless of what thread they
+ happen to run on. In addition, change notifications will be delivered to that
+ queue rather than the thread's run loop. ([PR #6478](https://github.com/realm/realm-swift/pull/6478)).
+* Add an option to deliver object and collection notifications to a specific
+ serial queue rather than the current thread. ([PR #6478](https://github.com/realm/realm-swift/pull/6478)).
+
+### Fixed
+
+* The uploaded bytes in sync progress notifications was sometimes incorrect and
+ wouldn't exactly equal the uploadable bytes when the uploaded completed.
+
+### Breaking Changes
+
+* The Realm instance passed in the callback to asyncOpen() is now confined to
+ the callback queue passed to asyncOpen() rather than the thread which the
+ callback happens to be called on. This means that the Realm instance may be
+ stored and reused in further blocks dispatched to that queue, but the queue
+ must now be a serial queue.
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Carthage release for Swift is built with Xcode 11.4.1.
+
+### Internal
+
+* Upgraded realm-core from v6.0.3 to v6.0.4
+* Upgraded realm-sync from v5.0.1 to v5.0.3
+
+4.4.1 Release notes (2020-04-16)
+=============================================================
+
+### Enhancements
+
+* Upgrade Xcode 11.4 binaries to Xcode 11.4.1.
+
+### Fixed
+
+* Fix a "previous <= m_schema_transaction_version_max" assertion failure caused
+ by a race condition that could occur after performing a migration. (Since 3.0.0).
+
+### Compatibility
+
+* File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Carthage release for Swift is built with Xcode 11.4.1.
+
+5.0.0-beta.3 Release notes (2020-02-26)
+=============================================================
+
+Based on 4.3.2 and also includes all changes since 4.3.0.
+
+### Enhancements
+
+* Add support for frozen objects. `Realm`, `Results`, `List` and `Object` now
+ have `freeze()` methods which return a frozen copy of the object. These
+ objects behave similarly to creating unmanaged deep copies of the source
+ objects. They can be read from any thread and do not update when writes are
+ made to the Realm, but creating frozen objects does not actually copy data
+ out of the Realm and so can be much faster and use less memory. Frozen
+ objects cannot be mutated or observed for changes (as they never change).
+ ([PR #6427](https://github.com/realm/realm-swift/pull/6427)).
+* Add the `isFrozen` property to `Realm`, `Results`, `List` and `Object`.
+* Add `Realm.Configuration.maxNumberOfActiveVersions`. Each time a write
+ transaction is performed, a new version is created inside the Realm, and then
+ any versions which are no longer in use are cleaned up. If too many versions
+ are kept alive while performing writes (either due to a background thread
+ performing a long operation that doesn't let the Realm on that thread
+ refresh, or due to holding onto frozen versions for a long time) the Realm
+ file will grow in size, potentially to the point where it is too large to be
+ opened. Setting this configuration option will make write transactions which
+ would cause the live version count to exceed the limit to instead fail.
+
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.3.
+
+### Internal
+
+* Upgraded realm-core from v6.0.0-beta.3 to v6.0.3
+* Upgraded realm-sync from v5.0.0-beta.2 to v5.0.1
+
+5.0.0-beta.2 Release notes (2020-01-13)
+=============================================================
+
+Based on 4.3.0 and also includes all changes since 4.1.1.
+
+### Fixed
+
+* Fix compilation when using CocoaPods targeting iOS versions older than 11 (since 5.0.0-alpha).
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.3.
+
+### Internal
+
+* Upgraded realm-core from v6.0.0-beta.2 to v6.0.0-beta.3
+* Upgraded realm-sync from v5.0.0-beta.1 to v5.0.0-beta.2
+
+5.0.0-beta.1 Release notes (2019-12-13)
+=============================================================
+
+Based on 4.1.1 and also includes all changes since 4.1.0.
+
+NOTE: This version bumps the Realm file format to version 10. It is not possible to downgrade version 9 or earlier. Files created with older versions of Realm will be automatically upgraded.
+
+### Enhancements
+
+* String primary keys no longer require a separate index, improving insertion
+ and deletion performance without hurting lookup performance.
+* Reduce the encrypted page reclaimer's impact on battery life when encryption
+ is used. ([Core #3461](https://github.com/realm/realm-core/pull/3461)).
+
+### Fixed
+
+* Fix an error when a table-backed Results was accessed immediately after
+ deleting the object previously at the index being accessed (since
+ 5.0.0-alpha.1).
+* macOS binaries were built with the incorrect deployment target (10.14 rather
+ than 10.9), resulting in linker warnings. ([#6299](https://github.com/realm/realm-swift/issues/6299), since 3.18.0).
+* An internal datastructure for List properties could be double-deleted if the
+ last reference was released from a thread other than the one which the List
+ was created on at the wrong time. This would typically manifest as
+ "pthread_mutex_destroy() failed", but could also result in other kinds of
+ crashes. ([#6333](https://github.com/realm/realm-swift/issues/6333)).
+* Sorting on float or double properties containing NaN values had inconsistent
+ results and would sometimes crash due to out-of-bounds memory accesses.
+ ([#6357](https://github.com/realm/realm-swift/issues/6357)).
+
+### Known Issues
+
+* Changing which property of an object is the primary key in a migration will
+ break incoming links to objects of that type.
+* Changing the primary key of an object with Data properties in a migration
+ will crash.
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* APIs are backwards compatible with all previous releases in the 5.x.y series.
+* Carthage release for Swift is built with Xcode 11.3.
+
+### Internal
+
+* Upgraded realm-core from v6.0.0-alpha.24 to v6.0.0-beta.2
+* Upgraded realm-sync from 4.7.1-core6.5 to v5.0.0-beta.1
+
+5.0.0-alpha.1 Release notes (2019-11-14)
+=============================================================
+
+Based on 4.1.0.
+
+### Enhancements
+
+* Add `-[RLMRealm fileExistsForConfiguration:]`/`Realm.fileExists(for:)`,
+ which checks if a local Realm file exists for the given configuration.
+* Add `-[RLMRealm deleteFilesForConfiguration:]`/`Realm.deleteFiles(for:)`
+ to delete the Realm file and all auxiliary files for the given configuration.
+* Storing large binary blobs in Realm files no longer forces the file to be at
+ least 8x the size of the largest blob.
+* Reduce the size of transaction logs stored inside the Realm file, reducing
+ file size growth from large transactions.
+
+NOTE: This version bumps the Realm file format to version 10. It is not
+possible to downgrade version 9 or earlier. Files created with older versions
+of Realm will be automatically upgraded. This automatic upgrade process is not
+yet well tested. Do not open Realm files with data you care about with this
+alpha version.
+
+### Breaking Changes
+
+* Files containing Date properties written by version of Realm prior to 1.0 can
+ no longer be opened.
+* Files containing Any properties can no longer be opened. This property type
+ was never documented and was deprecated in 1.0.
+
+### Compatibility
+
+* File format: Generates Realms with format v10 (Reads and upgrades v9)
+* Realm Object Server: 3.21.0 or later.
+* APIs are backwards compatible with all previous releases in the 4.x.y series.
+* Carthage release for Swift is built with Xcode 11.3.
+* Carthage release for Swift is built with Xcode 11.2.1.
+
+### Internal
+
+* Upgraded realm-core from 5.23.6 to v6.0.0-alpha.24.
+* Upgraded realm-sync from 4.8.2 to 4.7.1-core6.5.
+
+4.4.0 Release notes (2020-03-26)
+=============================================================
+
+Swift 4.0 and Xcode 10.3 are now the minimum supported versions.
+
+### Enhancements
+
+* Allow setting the `fileUrl` for synchronized Realms. An appropriate local
+ path based on the sync URL will still be used if it is not overridden.
+ ([PR #6454](https://github.com/realm/realm-swift/pull/6454)).
+* Add Xcode 11.4 binaries to the release package.
+
+### Fixed
+
+* None.
+
+### Compatibility
+
+* File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Carthage release for Swift is built with Xcode 11.4.
+
+4.3.2 Release notes (2020-02-06)
+=============================================================
+
+### Enhancements
+
+* Similar to `autoreleasepool()`, `realm.write()` now returns the value which
+ the block passed to it returns. Returning `Void` from the block is still allowed.
+
+### Fixed
+
+* Fix a memory leak attributed to `property_copyAttributeList` the first time a
+ Realm is opened when using Realm Swift. ([#6409](https://github.com/realm/realm-swift/issues/6409), since 4.0.0).
+* Connecting to a `realms:` sync URL would crash at runtime on iOS 11 (and no
+ other iOS versions) inside the SSL validation code. (Since 4.3.1).
+
+### Compatibility
+
+* File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.21.0 or later.
+* Carthage release for Swift is built with Xcode 11.3.
+
+### Internal
+
+* Upgraded realm-sync from 4.9.4 to 4.9.5.
+
+4.3.1 Release notes (2020-01-16)
+=============================================================
+
+### Enhancements
+
+* Reduce the encrypted page reclaimer's impact on battery life when encryption
+ is used. ([Core #3461](https://github.com/realm/realm-core/pull/3461)).
+
+### Fixed
+
+* macOS binaries were built with the incorrect deployment target (10.14 rather
+ than 10.9), resulting in linker warnings. ([#6299](https://github.com/realm/realm-swift/issues/6299), since 3.18.0).
+* An internal datastructure for List properties could be double-deleted if the
+ last reference was released from a thread other than the one which the List
+ was created on at the wrong time. This would typically manifest as
+ "pthread_mutex_destroy() failed", but could also result in other kinds of
+ crashes. ([#6333](https://github.com/realm/realm-swift/issues/6333)).
+* Sorting on float or double properties containing NaN values had inconsistent
+ results and would sometimes crash due to out-of-bounds memory accesses.
+ ([#6357](https://github.com/realm/realm-swift/issues/6357)).
+* A NOT query on a `List