diff --git a/Nimble.xcodeproj/project.pbxproj b/Nimble.xcodeproj/project.pbxproj index a5b68f08..5fca9d4f 100644 --- a/Nimble.xcodeproj/project.pbxproj +++ b/Nimble.xcodeproj/project.pbxproj @@ -319,6 +319,7 @@ 8923E60C2B47CE7E00F3961A /* Map.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Map.swift; sourceTree = ""; }; 8923E60E2B47D06E00F3961A /* MapTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTest.swift; sourceTree = ""; }; 892FDF1229D3EA7700523A80 /* AsyncExpression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncExpression.swift; sourceTree = ""; }; + 8952ADDC2B4F159400D9305F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 896962402A5FABD000A7929D /* AsyncAllPass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncAllPass.swift; sourceTree = ""; }; 896962452A5FAD4500A7929D /* AsyncAllPassTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncAllPassTest.swift; sourceTree = ""; }; 898F28AF25D9F4C30052B8D0 /* AlwaysFailMatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlwaysFailMatcher.swift; sourceTree = ""; }; @@ -460,6 +461,7 @@ 1F1A742D1940169200FFFC47 /* Info.plist */, 1FD8CD0C1968AB07008ED995 /* Matchers */, 1F1A742E1940169200FFFC47 /* Nimble.h */, + 8952ADDC2B4F159400D9305F /* PrivacyInfo.xcprivacy */, 1FD8CD241968AB07008ED995 /* Utils */, ); name = Nimble; diff --git a/Package.swift b/Package.swift index de40d97b..0c6ae39f 100644 --- a/Package.swift +++ b/Package.swift @@ -35,7 +35,10 @@ let package = Package( .product(name: "CwlPosixPreconditionTesting", package: "CwlPreconditionTesting", condition: .when(platforms: [.tvOS, .watchOS])) ], - exclude: ["Info.plist"] + exclude: ["Info.plist"], + resources: [ + .copy("PrivacyInfo.xcprivacy") + ] ), .target( name: "NimbleSharedTestHelpers", diff --git a/README.md b/README.md index 4f5b48ab..8137a10b 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ expect(ocean.isClean).toEventually(beTruthy()) - [Result](#result) - [Matching a value to any of a group of matchers](#matching-a-value-to-any-of-a-group-of-matchers) - [Custom Validation](#custom-validation) + - [Mapping a Value to Another Value](#mapping-a-value-to-another-value) - [Writing Your Own Matchers](#writing-your-own-matchers) - [MatcherResult](#matcherresult) - [Lazy Evaluation](#lazy-evaluation) @@ -86,6 +87,7 @@ expect(ocean.isClean).toEventually(beTruthy()) - [Xcode](#xcode) - [Package.Swift](#packageswift) - [Using Nimble without XCTest](#using-nimble-without-xctest) + - [Privacy Statement](#privacy-statement) @@ -2117,3 +2119,11 @@ rm "${SWIFT_STDLIB_TOOL_DESTINATION_DIR}/libswiftXCTest.dylib" You can now use Nimble assertions in your code and handle failures as you see fit. + +## Privacy Statement + +Nimble is a library that is only used for testing and should never be included +in the binary submitted to App Store Connect. + +Despite not being shipped to Apple, Nimble does not and will never collect any +kind of analytics or tracking. diff --git a/Sources/Nimble/PrivacyInfo.xcprivacy b/Sources/Nimble/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..f4679ab8 --- /dev/null +++ b/Sources/Nimble/PrivacyInfo.xcprivacy @@ -0,0 +1,15 @@ + + + + + + NSPrivacyTracking + + +