From 74da8f82162a9bf5559ea543a03d57ba2f4af04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliv=C3=A9r=20Falvai?= Date: Tue, 10 Nov 2026 20:53:52 +0100 Subject: [PATCH] Ship the iOS privacy manifest ios/PrivacyInfo.xcprivacy was never packaged: the podspec had no resource bundle, and Package.swift had no resources (the file was also outside the CodePush target path). Apps got none of its declarations. Move it into ios/CodePush/ and ship it as a resource bundle from the podspec and as a resource of the CodePush SwiftPM target. Declare file timestamps with C617.1 instead of 0A2A.1. 0A2A.1 is for SDKs that only wrap timestamp APIs for the app to call. CodePush reads the timestamps itself, of its bundle files and of files in its update directory inside the app container. Co-Authored-By: Claude Opus 5.5 --- CodePush.podspec | 1 + Package.swift | 1 + ios/CodePush.xcodeproj/project.pbxproj | 2 +- ios/{ => CodePush}/PrivacyInfo.xcprivacy | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) rename ios/{ => CodePush}/PrivacyInfo.xcprivacy (96%) diff --git a/CodePush.podspec b/CodePush.podspec index e3e0aac5..d212b850 100644 --- a/CodePush.podspec +++ b/CodePush.podspec @@ -23,6 +23,7 @@ Pod::Spec.new do |s| 'shared/third_party/hdiffpatch/file_for_patch.{c,h}', ] s.public_header_files = ['ios/CodePush/CodePush.h'] + s.resource_bundles = { 'CodePushPrivacyInfo' => ['ios/CodePush/PrivacyInfo.xcprivacy'] } s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES", # HDiffPatch's bspatch-only usage: no multithreading, no directory diff/patch, and no raw diff --git a/Package.swift b/Package.swift index a24bfea0..23bf5d9e 100644 --- a/Package.swift +++ b/Package.swift @@ -43,6 +43,7 @@ let package = Package( .product(name: "ReactNativeDependenciesHeaders", package: "ReactNative"), ], path: "ios/CodePush", + resources: [.copy("PrivacyInfo.xcprivacy")], publicHeadersPath: "include" ), .target( diff --git a/ios/CodePush.xcodeproj/project.pbxproj b/ios/CodePush.xcodeproj/project.pbxproj index 88e7c72b..417fd916 100644 --- a/ios/CodePush.xcodeproj/project.pbxproj +++ b/ios/CodePush.xcodeproj/project.pbxproj @@ -56,7 +56,7 @@ D23322E9E8EFBE01F1FACFB1 /* CodePushSha256Tests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CodePushSha256Tests.swift; sourceTree = ""; }; E74D80ECD8DD03C4C0772B7B /* Fixtures */ = {isa = PBXFileReference; explicitFileType = folder; includeInIndex = 0; path = Fixtures; sourceTree = ""; }; E9FA144425AE78B97AD6C870 /* CodePushTests-Bridging-Header.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodePushTests-Bridging-Header.h"; sourceTree = ""; }; - FF90DEF92C5A808600CA8692 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + FF90DEF92C5A808600CA8692 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = CodePush/PrivacyInfo.xcprivacy; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ diff --git a/ios/PrivacyInfo.xcprivacy b/ios/CodePush/PrivacyInfo.xcprivacy similarity index 96% rename from ios/PrivacyInfo.xcprivacy rename to ios/CodePush/PrivacyInfo.xcprivacy index 53db8925..a7e33d0c 100644 --- a/ios/PrivacyInfo.xcprivacy +++ b/ios/CodePush/PrivacyInfo.xcprivacy @@ -15,7 +15,7 @@ NSPrivacyAccessedAPICategoryFileTimestamp NSPrivacyAccessedAPITypeReasons - 0A2A.1 + C617.1