diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a3e22b747..15cf3e13e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +x.y.z Release notes (yyyy-MM-dd) +============================================================= +### Enhancements +* Add a privacy manifest to both frameworks. + +### Fixed +* ([#????](https://github.com/realm/realm-swift/issues/????), since v?.?.?) +* None. + + + +### Compatibility +* Realm Studio: 14.0.1 or later. +* APIs are backwards compatible with all previous releases in the 10.x.y series. +* Carthage release for Swift is built with Xcode 15.2.0. +* CocoaPods: 1.10 or later. +* Xcode: 14.2-15.2.0. + +### Internal +* Upgraded realm-core from ? to ? + 10.45.3 Release notes (2024-01-08) ============================================================= diff --git a/Package.swift b/Package.swift index fce2c2c259..6b1829d6ca 100644 --- a/Package.swift +++ b/Package.swift @@ -254,6 +254,9 @@ let package = Package( "Realm/RLMUser.mm", "Realm/RLMUserAPIKey.mm" ], + resources: [ + .copy("Realm/PrivacyInfo.xcprivacy") + ], publicHeadersPath: "include", cxxSettings: cxxSettings, linkerSettings: [ @@ -268,6 +271,9 @@ let package = Package( "Nonsync.swift", "RealmSwift-Info.plist", "Tests", + ], + resources: [ + .copy("PrivacyInfo.xcprivacy") ] ), .target( diff --git a/Realm.podspec b/Realm.podspec index c358282a37..fc0810c0e7 100644 --- a/Realm.podspec +++ b/Realm.podspec @@ -147,6 +147,7 @@ Pod::Spec.new do |s| 'OTHER_LDFLAGS' => '$(REALM_LD_CLASSIC)', } s.preserve_paths = %w(include scripts) + s.resource_bundles = {'realm_objc_privacy' => ['Realm/PrivacyInfo.xcprivacy']} s.ios.deployment_target = '11.0' s.osx.deployment_target = '10.13' diff --git a/Realm.xcodeproj/project.pbxproj b/Realm.xcodeproj/project.pbxproj index d640c259c4..2c5e5b2809 100644 --- a/Realm.xcodeproj/project.pbxproj +++ b/Realm.xcodeproj/project.pbxproj @@ -189,6 +189,8 @@ 3FD0D7C729675A2E0031C196 /* RLMAsyncTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FD0D7C529675A2E0031C196 /* RLMAsyncTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3FD0D7C929675A2E0031C196 /* RLMAsyncTask.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3FD0D7C629675A2E0031C196 /* RLMAsyncTask.mm */; }; 3FD0D7CE2967CA1E0031C196 /* RLMMongoCollection_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = CF76F7D224816AAA00890DD2 /* RLMMongoCollection_Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3FD6D1A92B4C9EFB00A4FEBE /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3FD6D1A82B4C9EFB00A4FEBE /* PrivacyInfo.xcprivacy */; }; + 3FD6D1AC2B4CA56D00A4FEBE /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3FD6D1AB2B4CA56C00A4FEBE /* PrivacyInfo.xcprivacy */; }; 3FDAB841290B4CCB00168F24 /* RLMError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FDAB83E290B4CCB00168F24 /* RLMError.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3FDAB845290B4CCB00168F24 /* RLMError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3FDAB840290B4CCB00168F24 /* RLMError.mm */; }; 3FDAB848290B658300168F24 /* file-format-version-21.realm in Resources */ = {isa = PBXBuildFile; fileRef = 3FDAB847290B658300168F24 /* file-format-version-21.realm */; }; @@ -754,6 +756,8 @@ 3FD0D7C529675A2E0031C196 /* RLMAsyncTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RLMAsyncTask.h; sourceTree = ""; }; 3FD0D7C629675A2E0031C196 /* RLMAsyncTask.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RLMAsyncTask.mm; sourceTree = ""; }; 3FD0D7CB29675AE10031C196 /* RLMAsyncTask_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RLMAsyncTask_Private.h; sourceTree = ""; }; + 3FD6D1A82B4C9EFB00A4FEBE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 3FD6D1AB2B4CA56C00A4FEBE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3FDAB83E290B4CCB00168F24 /* RLMError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RLMError.h; sourceTree = ""; }; 3FDAB83F290B4CCB00168F24 /* RLMError_Private.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = RLMError_Private.hpp; sourceTree = ""; }; 3FDAB840290B4CCB00168F24 /* RLMError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RLMError.mm; sourceTree = ""; }; @@ -1351,6 +1355,7 @@ 5D660FE71BE98D670021E04F /* ObjectSchema.swift */, 5D660FE81BE98D670021E04F /* Optional.swift */, 3F149CCA2668112A00111D65 /* PersistedProperty.swift */, + 3FD6D1AB2B4CA56C00A4FEBE /* PrivacyInfo.xcprivacy */, 0CD1632526D3DD7B0027C49B /* Projection.swift */, 5D660FE91BE98D670021E04F /* Property.swift */, ACF08B6626DD936200686CBC /* Query.swift */, @@ -1791,6 +1796,7 @@ isa = PBXGroup; children = ( 023B19F71A423BD20067FB81 /* libc++.dylib */, + 3FD6D1A82B4C9EFB00A4FEBE /* PrivacyInfo.xcprivacy */, E81A1F621955FC9300FDED82 /* Realm-Info.plist */, 02E334C21A5F3C45009F8810 /* Realm.modulemap */, ); @@ -2256,6 +2262,7 @@ files = ( 5D659ED21BE04556006515A0 /* CHANGELOG.md in Resources */, 5D659ED51BE04556006515A0 /* LICENSE in Resources */, + 3FD6D1A92B4C9EFB00A4FEBE /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2263,6 +2270,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3FD6D1AC2B4CA56D00A4FEBE /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Realm/PrivacyInfo.xcprivacy b/Realm/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..56c9b2f6e8 --- /dev/null +++ b/Realm/PrivacyInfo.xcprivacy @@ -0,0 +1,23 @@ + + + + + NSPrivacyTrackingDomains + + NSPrivacyCollectedDataTypes + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPITypeReasons + + C617.1 + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + + + NSPrivacyTracking + + + diff --git a/RealmSwift.podspec b/RealmSwift.podspec index 9e1c21f5aa..ba9ba73454 100644 --- a/RealmSwift.podspec +++ b/RealmSwift.podspec @@ -28,6 +28,7 @@ Pod::Spec.new do |s| s.dependency 'Realm', "= #{s.version}" s.source_files = 'RealmSwift/*.swift', 'RealmSwift/Impl/*.swift', 'Realm/Swift/*.swift' s.exclude_files = 'RealmSwift/Nonsync.swift' + s.resource_bundles = {'realm_swift_privacy' => ['RealmSwift/PrivacyInfo.xcprivacy']} s.pod_target_xcconfig = { 'APPLICATION_EXTENSION_API_ONLY' => 'YES', diff --git a/RealmSwift/PrivacyInfo.xcprivacy b/RealmSwift/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..987771fa7f --- /dev/null +++ b/RealmSwift/PrivacyInfo.xcprivacy @@ -0,0 +1,14 @@ + + + + + NSPrivacyTrackingDomains + + NSPrivacyCollectedDataTypes + + NSPrivacyAccessedAPITypes + + NSPrivacyTracking + + + diff --git a/examples/installation/CocoaPods.xcodeproj/xcshareddata/xcschemes/App.xcscheme b/examples/installation/CocoaPods.xcodeproj/xcshareddata/xcschemes/App.xcscheme new file mode 100644 index 0000000000..49ea8b3fea --- /dev/null +++ b/examples/installation/CocoaPods.xcodeproj/xcshareddata/xcschemes/App.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +