Skip to content

Commit 7271cd1

Browse files
authored
feat: add Apple Privacy Manifest file to comply with App Store requirements
* feat: add privacy info file with basic content * chore: update SPM Package file * chore: update PrivacyInfo file content * chore: update class documentation
1 parent c7e0079 commit 7271cd1

File tree

4 files changed

+107
-2
lines changed

4 files changed

+107
-2
lines changed

Package.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ let package = Package(
2020
),
2121
],
2222
targets: [
23-
.target(name: "RudderStackAnalytics"),
23+
.target(
24+
name: "RudderStackAnalytics",
25+
resources: [
26+
.process("Resources")
27+
]
28+
),
2429
.testTarget(
2530
name: "RudderStackAnalyticsTests",
2631
dependencies: ["RudderStackAnalytics"],

RudderStackAnalytics.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
532904F12E05BBDE00C8EFE2 /* SwiftUIExampleApp.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 532904ED2E05BBDE00C8EFE2 /* SwiftUIExampleApp.xctestplan */; };
1313
539E540E2C98CD7D00982E95 /* RudderStackAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5351AA662C6BE95D003C3C47 /* RudderStackAnalytics.framework */; };
1414
53AC39722E1533F300B8E16C /* RudderOptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53AC39712E1533F300B8E16C /* RudderOptionTests.swift */; };
15+
53AC39B42E16FA6E00B8E16C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 53AC39B32E16FA6E00B8E16C /* PrivacyInfo.xcprivacy */; };
1516
53DEA5E12E03D05A00D6C371 /* KeyValueStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DEA5D62E03D05A00D6C371 /* KeyValueStore.swift */; };
1617
53DEA5E22E03D05A00D6C371 /* ResetUserIdentityAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DEA5CE2E03D05A00D6C371 /* ResetUserIdentityAction.swift */; };
1718
53DEA5E32E03D05A00D6C371 /* NetworkInfoPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DEA5BE2E03D05A00D6C371 /* NetworkInfoPlugin.swift */; };
@@ -145,6 +146,7 @@
145146
5351AA662C6BE95D003C3C47 /* RudderStackAnalytics.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RudderStackAnalytics.framework; sourceTree = BUILT_PRODUCTS_DIR; };
146147
539E540A2C98CD7D00982E95 /* RudderStackAnalyticsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RudderStackAnalyticsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
147148
53AC39712E1533F300B8E16C /* RudderOptionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RudderOptionTests.swift; sourceTree = "<group>"; };
149+
53AC39B32E16FA6E00B8E16C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
148150
53DEA58F2E03D05A00D6C371 /* Analytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Analytics.swift; sourceTree = "<group>"; };
149151
53DEA5902E03D05A00D6C371 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = "<group>"; };
150152
53DEA5912E03D05A00D6C371 /* EventManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventManager.swift; sourceTree = "<group>"; };
@@ -295,6 +297,7 @@
295297
53DEA5CD2E03D05A00D6C371 /* SessionManagement */,
296298
53DEA5D32E03D05A00D6C371 /* StateManagement */,
297299
53DEA5DD2E03D05A00D6C371 /* Storage */,
300+
53AC39B52E16FA7D00B8E16C /* Resources */,
298301
);
299302
path = RudderStackAnalytics;
300303
sourceTree = "<group>";
@@ -347,6 +350,14 @@
347350
name = Products;
348351
sourceTree = "<group>";
349352
};
353+
53AC39B52E16FA7D00B8E16C /* Resources */ = {
354+
isa = PBXGroup;
355+
children = (
356+
53AC39B32E16FA6E00B8E16C /* PrivacyInfo.xcprivacy */,
357+
);
358+
path = Resources;
359+
sourceTree = "<group>";
360+
};
350361
53DEA5922E03D05A00D6C371 /* Base */ = {
351362
isa = PBXGroup;
352363
children = (
@@ -755,6 +766,7 @@
755766
isa = PBXResourcesBuildPhase;
756767
buildActionMask = 2147483647;
757768
files = (
769+
53AC39B42E16FA6E00B8E16C /* PrivacyInfo.xcprivacy in Resources */,
758770
);
759771
runOnlyForDeploymentPostprocessing = 0;
760772
};

Sources/RudderStackAnalytics/Base/Configuration.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class Configuration: NSObject {
3030
var controlPlaneUrl: String
3131

3232
/**
33-
A boolean flag to enable GZip compression for network requests. Defaults to `true`.
33+
A boolean flag to enable GZip compression for network requests. Defaults to `false`.
3434
*/
3535
var gzipEnabled: Bool
3636

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>NSPrivacyAccessedAPITypes</key>
6+
<array>
7+
<dict>
8+
<key>NSPrivacyAccessedAPIType</key>
9+
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
10+
<key>NSPrivacyAccessedAPITypeReasons</key>
11+
<array>
12+
<string>35F9.1</string>
13+
</array>
14+
</dict>
15+
<dict>
16+
<key>NSPrivacyAccessedAPIType</key>
17+
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
18+
<key>NSPrivacyAccessedAPITypeReasons</key>
19+
<array>
20+
<string>CA92.1</string>
21+
</array>
22+
</dict>
23+
</array>
24+
<key>NSPrivacyCollectedDataTypes</key>
25+
<array>
26+
<dict>
27+
<key>NSPrivacyCollectedDataType</key>
28+
<string>NSPrivacyCollectedDataTypeDeviceID</string>
29+
<key>NSPrivacyCollectedDataTypeLinked</key>
30+
<false/>
31+
<key>NSPrivacyCollectedDataTypeTracking</key>
32+
<false/>
33+
<key>NSPrivacyCollectedDataTypePurposes</key>
34+
<array>
35+
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
36+
</array>
37+
</dict>
38+
<dict>
39+
<key>NSPrivacyCollectedDataType</key>
40+
<string>App Name</string>
41+
<key>NSPrivacyCollectedDataTypeLinked</key>
42+
<false/>
43+
<key>NSPrivacyCollectedDataTypeTracking</key>
44+
<false/>
45+
<key>NSPrivacyCollectedDataTypePurposes</key>
46+
<array>
47+
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
48+
</array>
49+
</dict>
50+
<dict>
51+
<key>NSPrivacyCollectedDataType</key>
52+
<string>App Version</string>
53+
<key>NSPrivacyCollectedDataTypeLinked</key>
54+
<false/>
55+
<key>NSPrivacyCollectedDataTypeTracking</key>
56+
<false/>
57+
<key>NSPrivacyCollectedDataTypePurposes</key>
58+
<array>
59+
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
60+
</array>
61+
</dict>
62+
<dict>
63+
<key>NSPrivacyCollectedDataType</key>
64+
<string>NSPrivacyCollectedDataTypeProductInteraction</string>
65+
<key>NSPrivacyCollectedDataTypeLinked</key>
66+
<false/>
67+
<key>NSPrivacyCollectedDataTypeTracking</key>
68+
<false/>
69+
<key>NSPrivacyCollectedDataTypePurposes</key>
70+
<array>
71+
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
72+
</array>
73+
</dict>
74+
<dict>
75+
<key>NSPrivacyCollectedDataType</key>
76+
<string>NSPrivacyCollectedDataTypeOtherDataTypes</string>
77+
<key>NSPrivacyCollectedDataTypeLinked</key>
78+
<false/>
79+
<key>NSPrivacyCollectedDataTypeTracking</key>
80+
<false/>
81+
<key>NSPrivacyCollectedDataTypePurposes</key>
82+
<array>
83+
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
84+
</array>
85+
</dict>
86+
</array>
87+
</dict>
88+
</plist>

0 commit comments

Comments
 (0)