DISTS: Add PrivacyInfo.xcprivacy to ios7 and tvos

Apple will require a valid privacy manifest file bundled for
applications uploaded to App Store Connect.
The privacy manifest describes the privacy practices of an app,
describing the reasons of use of some core APIs that can be
misused to try to identify the device or user, also known as
fingerprinting.

Read more about which APIs that require a privacy manifest here:
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

Add such manifest to ios7 and tvos ports and make sure they are
bundled with the app.
This commit is contained in:
Lars Sundström authored and Filippos Karapetis committed 2024-09-06 15:49:46 +03:00
1 parent 7cbdb7dcbf
commit 74caec446b
4 files changed
+76

No files matched your search

+8
View File
@@ -167,6 +167,10 @@ bool shouldSkipFileForTarget(const std::string &fileID, const std::string &targe
if (name.length() > 4 && name.substr(0, 4) == "ios-") {
return true;
}
// macOS target: we skip the xcprivacy file required for iOS and tvOS targets
if (ext == "xcprivacy") {
return true;
}
// parent directory
const std::string directory = fileID.substr(0, fileID.length() - fileName.length());
static const std::string iphone_directory = "backends/platform/ios7";
@@ -300,7 +304,9 @@ XcodeProvider::XcodeProvider(StringList &global_warnings, std::map<std::string,
void XcodeProvider::addResourceFiles(const BuildSetup &setup, StringList &includeList, StringList &excludeList) {
includeList.push_back(setup.srcDir + "/dists/ios7/Info.plist");
includeList.push_back(setup.srcDir + "/dists/ios7/PrivacyInfo.xcprivacy");
includeList.push_back(setup.srcDir + "/dists/tvos/Info.plist");
includeList.push_back(setup.srcDir + "/dists/tvos/PrivacyInfo.xcprivacy");
ValueList &resources = getResourceFiles(setup);
for (ValueList::iterator it = resources.begin(); it != resources.end(); ++it) {
@@ -1040,7 +1046,9 @@ XcodeProvider::ValueList& XcodeProvider::getResourceFiles(const BuildSetup &setu
files.push_back("gui/themes/translations.dat");
files.push_back("dists/ios7/ios-help.zip");
files.push_back("dists/ios7/LaunchScreen_ios.storyboard");
files.push_back("dists/ios7/PrivacyInfo.xcprivacy");
files.push_back("dists/tvos/LaunchScreen_tvos.storyboard");
files.push_back("dists/tvos/PrivacyInfo.xcprivacy");
files.push_back("dists/networking/wwwroot.zip");
if (CONTAINS_DEFINE(setup.defines, "ENABLE_GRIM")) {
files.push_back("engines/grim/shaders/grim_dim.fragment");