Skip to content

Commit

Permalink
[Release Tooling] Only embed bundles containing privacy manifests (#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
ncooke3 authored Jan 28, 2024
1 parent b7d6209 commit 4914cc2
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions ReleaseTooling/Sources/ZipBuilder/FrameworkBuilder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -635,6 +635,34 @@ struct FrameworkBuilder {
"\(framework): \(error)")
}

// Move any privacy manifest-containing resource bundles into the
// platform framework.
try? fileManager.contentsOfDirectory(
at: frameworkPath.deletingLastPathComponent(),
includingPropertiesForKeys: nil
)
.filter { $0.pathExtension == "bundle" }
// TODO(ncooke3): Once the zip is built with Xcode 15, the following
// `filter` can be removed. The following block exists to preserve
// how resources (e.g. like FIAM's) are packaged for use in Xcode 14.
.filter { bundleURL in
let dirEnum = fileManager.enumerator(atPath: bundleURL.path)
var containsPrivacyManifest = false
while let relativeFilePath = dirEnum?.nextObject() as? String {
if relativeFilePath.hasSuffix("PrivacyInfo.xcprivacy") {
containsPrivacyManifest = true
break
}
}
return containsPrivacyManifest
}
// Bundles are moved rather than copied to prevent them from being
// packaged in a `Resources` directory at the root of the xcframework.
.forEach { try! fileManager.moveItem(
at: $0,
to: platformFrameworkDir.appendingPathComponent($0.lastPathComponent)
) }

// Headers from slice
do {
let headersSrc: URL = frameworkPath.appendingPathComponent("Headers")
Expand Down

0 comments on commit 4914cc2

Please sign in to comment.