From e889d95af4a835b12ce78db7fdbc493fe5969f78 Mon Sep 17 00:00:00 2001 From: echo Date: Wed, 4 Oct 2023 09:29:01 -0700 Subject: [PATCH 1/2] Add first draft of privacy manifest, also bump version to 3.0.0 --- BranchSDK.podspec | 3 +- BranchSDK.xcodeproj/project.pbxproj | 14 ++++-- BranchSDK/BNCConfig.m | 2 +- BranchSDK/PrivacyInfo.xcprivacy | 72 +++++++++++++++++++++++++++++ Framework/PrivacyInfo.xcprivacy | 72 +++++++++++++++++++++++++++++ Package.swift | 7 ++- 6 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 BranchSDK/PrivacyInfo.xcprivacy create mode 100644 Framework/PrivacyInfo.xcprivacy diff --git a/BranchSDK.podspec b/BranchSDK.podspec index 13817fef4..555f13065 100644 --- a/BranchSDK.podspec +++ b/BranchSDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BranchSDK" - s.version = "2.2.1" + s.version = "3.0.0" s.summary = "Create an HTTP URL for any piece of content in your app" s.description = <<-DESC - Want the highest possible conversions on your sharing feature? @@ -18,6 +18,7 @@ Use the Branch SDK (branch.io) to create and power the links that point back to s.ios.deployment_target = '12.0' s.tvos.deployment_target = '12.0' + s.resources = ["BranchSDK/*.{xcprivacy}"] s.ios.source_files = "BranchSDK/*.{h,m}" s.tvos.source_files = "BranchSDK/*.{h,m}" diff --git a/BranchSDK.xcodeproj/project.pbxproj b/BranchSDK.xcodeproj/project.pbxproj index 26ccae7a7..09f164c6c 100644 --- a/BranchSDK.xcodeproj/project.pbxproj +++ b/BranchSDK.xcodeproj/project.pbxproj @@ -315,6 +315,9 @@ 5F79042F28B5C93F003144CD /* NSMutableDictionary+Branch.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F2210352894A33E00C5B190 /* NSMutableDictionary+Branch.m */; }; 5F79043028B5C93F003144CD /* NSString+Branch.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F22102A2894A33E00C5B190 /* NSString+Branch.m */; }; 5F79043128B5C93F003144CD /* UIViewController+Branch.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F2210412894A33E00C5B190 /* UIViewController+Branch.m */; }; + 5FC446652ACCB97000FF1C87 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5FC446642ACCB96000FF1C87 /* PrivacyInfo.xcprivacy */; }; + 5FC446662ACCB97100FF1C87 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5FC446642ACCB96000FF1C87 /* PrivacyInfo.xcprivacy */; }; + 5FC446672ACCB97200FF1C87 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5FC446642ACCB96000FF1C87 /* PrivacyInfo.xcprivacy */; }; 5FF2AFE028E7C22400393216 /* BranchSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FF2AFDF28E7C22100393216 /* BranchSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5FF2AFE128E7C22400393216 /* BranchSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FF2AFDF28E7C22100393216 /* BranchSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5FF9DDFB28EE78A700D62DE1 /* BNCAppGroupsData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F2210A32894A34000C5B190 /* BNCAppGroupsData.m */; }; @@ -479,9 +482,9 @@ E7653F052A9E737700C7C040 /* BNCServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = E7653F042A9E737700C7C040 /* BNCServerAPI.m */; }; E7653F062A9E737700C7C040 /* BNCServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = E7653F042A9E737700C7C040 /* BNCServerAPI.m */; }; E7653F072A9E737700C7C040 /* BNCServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = E7653F042A9E737700C7C040 /* BNCServerAPI.m */; }; - E7653F092A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7653F0A2A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7653F0B2A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7653F092A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; }; + E7653F0A2A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; }; + E7653F0B2A9E73AA00C7C040 /* BNCServerAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E7653F082A9E73AA00C7C040 /* BNCServerAPI.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -677,6 +680,7 @@ 5F73EC0128EDEAC200608601 /* build_static_xcframework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = build_static_xcframework.sh; sourceTree = ""; }; 5F73EC0228EDEAC200608601 /* build_xcframework_noidfa.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = build_xcframework_noidfa.sh; sourceTree = ""; }; 5F79038C28B5765D003144CD /* BranchSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BranchSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5FC446642ACCB96000FF1C87 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 5FF2AFDC28E7BF8A00393216 /* build_xcframework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = build_xcframework.sh; sourceTree = ""; }; 5FF2AFDE28E7C22100393216 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; 5FF2AFDF28E7C22100393216 /* BranchSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BranchSDK.h; sourceTree = ""; }; @@ -969,6 +973,7 @@ children = ( 5FF2AFDF28E7C22100393216 /* BranchSDK.h */, 5FF2AFDE28E7C22100393216 /* module.modulemap */, + 5FC446642ACCB96000FF1C87 /* PrivacyInfo.xcprivacy */, ); path = Framework; sourceTree = ""; @@ -1401,6 +1406,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5FC446652ACCB97000FF1C87 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1432,6 +1438,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5FC446662ACCB97100FF1C87 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1439,6 +1446,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5FC446672ACCB97200FF1C87 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/BranchSDK/BNCConfig.m b/BranchSDK/BNCConfig.m index 26244bb5a..ba11b7d30 100644 --- a/BranchSDK/BNCConfig.m +++ b/BranchSDK/BNCConfig.m @@ -8,7 +8,7 @@ #include "BNCConfig.h" -NSString * const BNC_SDK_VERSION = @"2.2.1"; +NSString * const BNC_SDK_VERSION = @"3.0.0"; NSString * const BNC_LINK_URL = @"https://bnc.lt"; NSString * const BNC_CDN_URL = @"https://cdn.branch.io"; diff --git a/BranchSDK/PrivacyInfo.xcprivacy b/BranchSDK/PrivacyInfo.xcprivacy new file mode 100644 index 000000000..1c0043760 --- /dev/null +++ b/BranchSDK/PrivacyInfo.xcprivacy @@ -0,0 +1,72 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + https://api-safetrack.branch.io + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeDeviceID + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeThirdPartyAdvertising + NSPrivacyCollectedDataTypePurposeDeveloperAdvertising + NSPrivacyCollectedDataTypePurposeAnalytics + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePerformanceData + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeOtherDataTypes + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/Framework/PrivacyInfo.xcprivacy b/Framework/PrivacyInfo.xcprivacy new file mode 100644 index 000000000..1c0043760 --- /dev/null +++ b/Framework/PrivacyInfo.xcprivacy @@ -0,0 +1,72 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + https://api-safetrack.branch.io + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeDeviceID + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeThirdPartyAdvertising + NSPrivacyCollectedDataTypePurposeDeveloperAdvertising + NSPrivacyCollectedDataTypePurposeAnalytics + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePerformanceData + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeOtherDataTypes + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/Package.swift b/Package.swift index 6d66f9c42..95d907d84 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.2 +// swift-tools-version:5.3 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription @@ -13,10 +13,15 @@ let package = Package( name: "BranchSDK", targets: ["BranchSDK"]), ], + dependencies: [ + ], targets: [ .target( name: "BranchSDK", path: "BranchSDK", + resources: [ + .copy("PrivacyInfo.xcprivacy"), + ], publicHeadersPath: "", linkerSettings: [ .linkedFramework("CoreServices"), From 6be238263069dcc6b136187f2c4c8f52f41d7bea Mon Sep 17 00:00:00 2001 From: echo Date: Wed, 4 Oct 2023 09:31:58 -0700 Subject: [PATCH 2/2] Update framework version as well --- BranchSDK.xcodeproj/project.pbxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/BranchSDK.xcodeproj/project.pbxproj b/BranchSDK.xcodeproj/project.pbxproj index 09f164c6c..6c2392513 100644 --- a/BranchSDK.xcodeproj/project.pbxproj +++ b/BranchSDK.xcodeproj/project.pbxproj @@ -1953,7 +1953,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1984,7 +1984,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2186,7 +2186,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_MODULE_NAME = BranchSDK; PRODUCT_NAME = BranchSDK; @@ -2221,7 +2221,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_MODULE_NAME = BranchSDK; PRODUCT_NAME = BranchSDK; @@ -2254,7 +2254,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_NAME = BranchSDK; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2285,7 +2285,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 2.2.1; + MARKETING_VERSION = 3.0.0; PRODUCT_BUNDLE_IDENTIFIER = io.branch.BranchSDK; PRODUCT_NAME = BranchSDK; PROVISIONING_PROFILE_SPECIFIER = "";