Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove appIDHasFeaturesEnabled #41

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/SWBBuildService/PlanningOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ extension ProvisioningTaskInputsSourceData
{
init(configurationName: String, sourceData: ProvisioningSourceData, provisioningProfileSupport: ProvisioningProfileSupport, provisioningProfileSpecifier: String, provisioningProfileUUID: String, bundleIdentifier: String, productTypeEntitlements: PropertyListItem, productTypeIdentifier: String, projectEntitlementsFile: String?, projectEntitlements: PropertyListItem?, signingCertificateIdentifier: String, signingRequiresTeam: Bool, teamID: String?, sdkRoot: String, sdkVariant: String?, supportsEntitlements: Bool, wantsBaseEntitlementInjection: Bool, entitlementsDestination: String, localSigningStyle: String, enableCloudSigning: Bool)
{
self.init(configurationName: configurationName, appIDHasFeaturesEnabled: sourceData.appIDHasFeaturesEnabled, provisioningProfileSupport: provisioningProfileSupport, provisioningProfileSpecifier: provisioningProfileSpecifier, provisioningProfileUUID: provisioningProfileUUID, provisioningStyle: sourceData.provisioningStyle, teamID: teamID, bundleIdentifier: bundleIdentifier, productTypeEntitlements: productTypeEntitlements, productTypeIdentifier: productTypeIdentifier, projectEntitlementsFile: projectEntitlementsFile, projectEntitlements: projectEntitlements, signingCertificateIdentifier: signingCertificateIdentifier, signingRequiresTeam: signingRequiresTeam, sdkRoot: sdkRoot, sdkVariant: sdkVariant, supportsEntitlements: supportsEntitlements, wantsBaseEntitlementInjection: wantsBaseEntitlementInjection, entitlementsDestination: entitlementsDestination, localSigningStyle: localSigningStyle, enableCloudSigning: enableCloudSigning)
self.init(configurationName: configurationName, provisioningProfileSupport: provisioningProfileSupport, provisioningProfileSpecifier: provisioningProfileSpecifier, provisioningProfileUUID: provisioningProfileUUID, provisioningStyle: sourceData.provisioningStyle, teamID: teamID, bundleIdentifier: bundleIdentifier, productTypeEntitlements: productTypeEntitlements, productTypeIdentifier: productTypeIdentifier, projectEntitlementsFile: projectEntitlementsFile, projectEntitlements: projectEntitlements, signingCertificateIdentifier: signingCertificateIdentifier, signingRequiresTeam: signingRequiresTeam, sdkRoot: sdkRoot, sdkVariant: sdkVariant, supportsEntitlements: supportsEntitlements, wantsBaseEntitlementInjection: wantsBaseEntitlementInjection, entitlementsDestination: entitlementsDestination, localSigningStyle: localSigningStyle, enableCloudSigning: enableCloudSigning)
}
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBCore/ProjectModel/Target.swift
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ public final class StandardTarget: BuildPhaseTarget
// If any configurations didn't have provisioning source data objects, then create default ones for those configurations.
for configurationName in configurationNames
{
let sourceData = ProvisioningSourceData(configurationName: configurationName, appIDHasFeaturesEnabled: false, provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "")
let sourceData = ProvisioningSourceData(configurationName: configurationName, provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "")
provisioningSourceData.append(sourceData)
}
}
Expand All @@ -570,7 +570,7 @@ public final class StandardTarget: BuildPhaseTarget
// Override the provisioning style using $(CODE_SIGN_STYLE), if defined.
// FIXME: If $(CODE_SIGN_STYLE) evaluates to an unexpected value, we should emit an error somewhere.
if let codeSignStyleValue = scope?.evaluate(BuiltinMacros.CODE_SIGN_STYLE), !codeSignStyleValue.isEmpty, let codeSignStyle = ProvisioningStyle.fromString(codeSignStyleValue) {
return ProvisioningSourceData(configurationName: sourceData.configurationName, appIDHasFeaturesEnabled: sourceData.appIDHasFeaturesEnabled, provisioningStyle: codeSignStyle, bundleIdentifierFromInfoPlist: sourceData.bundleIdentifierFromInfoPlist)
return ProvisioningSourceData(configurationName: sourceData.configurationName, provisioningStyle: codeSignStyle, bundleIdentifierFromInfoPlist: sourceData.bundleIdentifierFromInfoPlist)
}
return sourceData
}
Expand Down
12 changes: 4 additions & 8 deletions Sources/SWBProtocol/PlanningOperationMessages.swift
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ public struct PlanningOperationDidFinish: SessionMessage, Equatable {
/// The source data to send to the client for it to generate the provisioning task inputs for the service.
public struct ProvisioningTaskInputsSourceData: Serializable, Equatable, Sendable {
public let configurationName: String
public let appIDHasFeaturesEnabled: Bool
public let provisioningProfileSupport: ProvisioningProfileSupport
public let provisioningProfileSpecifier: String
public let provisioningProfileUUID: String
Expand All @@ -95,9 +94,8 @@ public struct ProvisioningTaskInputsSourceData: Serializable, Equatable, Sendabl
public let localSigningStyle: String
public let enableCloudSigning: Bool

public init(configurationName: String, appIDHasFeaturesEnabled: Bool, provisioningProfileSupport: ProvisioningProfileSupport, provisioningProfileSpecifier: String, provisioningProfileUUID: String, provisioningStyle: ProvisioningStyle, teamID: String?, bundleIdentifier: String, productTypeEntitlements: PropertyListItem, productTypeIdentifier: String, projectEntitlementsFile: String?, projectEntitlements: PropertyListItem?, signingCertificateIdentifier: String, signingRequiresTeam: Bool, sdkRoot: String, sdkVariant: String?, supportsEntitlements: Bool, wantsBaseEntitlementInjection: Bool, entitlementsDestination: String, localSigningStyle: String, enableCloudSigning: Bool) {
public init(configurationName: String, provisioningProfileSupport: ProvisioningProfileSupport, provisioningProfileSpecifier: String, provisioningProfileUUID: String, provisioningStyle: ProvisioningStyle, teamID: String?, bundleIdentifier: String, productTypeEntitlements: PropertyListItem, productTypeIdentifier: String, projectEntitlementsFile: String?, projectEntitlements: PropertyListItem?, signingCertificateIdentifier: String, signingRequiresTeam: Bool, sdkRoot: String, sdkVariant: String?, supportsEntitlements: Bool, wantsBaseEntitlementInjection: Bool, entitlementsDestination: String, localSigningStyle: String, enableCloudSigning: Bool) {
self.configurationName = configurationName
self.appIDHasFeaturesEnabled = appIDHasFeaturesEnabled
self.provisioningProfileSupport = provisioningProfileSupport
self.provisioningProfileSpecifier = provisioningProfileSpecifier
self.provisioningProfileUUID = provisioningProfileUUID
Expand All @@ -120,16 +118,15 @@ public struct ProvisioningTaskInputsSourceData: Serializable, Equatable, Sendabl
}

/*!
* @deprecated Use init(configurationName:appIDHasFeaturesEnabled:provisioningProfileSupport:provisioningProfileSpecifier:provisioningProfileUUID:provisioningStyle:teamID:bundleIdentifier:productTypeEntitlements:productTypeIdentifier:projectEntitlementsFile:projectEntitlements:signingCertificateIdentifier:signingRequiresTeam:sdkRoot:sdkVariant:supportsEntitlements:wantsBaseEntitlementInjection:entitlementsDestination:localSigningStyle:enableCloudSigning:)
* @deprecated Use init(configurationName:provisioningProfileSupport:provisioningProfileSpecifier:provisioningProfileUUID:provisioningStyle:teamID:bundleIdentifier:productTypeEntitlements:productTypeIdentifier:projectEntitlementsFile:projectEntitlements:signingCertificateIdentifier:signingRequiresTeam:sdkRoot:sdkVariant:supportsEntitlements:wantsBaseEntitlementInjection:entitlementsDestination:localSigningStyle:enableCloudSigning:)
*/
public init(configurationName: String, appIDHasFeaturesEnabled: Bool, provisioningProfileSupport: ProvisioningProfileSupport, provisioningProfileSpecifier: String, provisioningProfileUUID: String, provisioningStyle: ProvisioningStyle, teamID: String?, bundleIdentifier: String, productTypeEntitlements: PropertyListItem, productTypeIdentifier: String, projectEntitlementsFile: String?, projectEntitlements: PropertyListItem?, signingCertificateIdentifier: String, signingRequiresTeam: Bool, sdkRoot: String, sdkVariant: String?, supportsEntitlements: Bool, wantsBaseEntitlementInjection: Bool, entitlementsDestination: String, localSigningStyle: String) {
self.init(configurationName: configurationName, appIDHasFeaturesEnabled: appIDHasFeaturesEnabled, provisioningProfileSupport: provisioningProfileSupport, provisioningProfileSpecifier: provisioningProfileSpecifier, provisioningProfileUUID: provisioningProfileUUID, provisioningStyle: provisioningStyle, teamID: teamID, bundleIdentifier: bundleIdentifier, productTypeEntitlements: productTypeEntitlements, productTypeIdentifier: productTypeIdentifier, projectEntitlementsFile: projectEntitlementsFile, projectEntitlements: projectEntitlements, signingCertificateIdentifier: signingCertificateIdentifier, signingRequiresTeam: signingRequiresTeam, sdkRoot: sdkRoot, sdkVariant: sdkVariant, supportsEntitlements: supportsEntitlements, wantsBaseEntitlementInjection: wantsBaseEntitlementInjection, entitlementsDestination: entitlementsDestination, localSigningStyle: localSigningStyle, enableCloudSigning: false)
public init(configurationName: String, provisioningProfileSupport: ProvisioningProfileSupport, provisioningProfileSpecifier: String, provisioningProfileUUID: String, provisioningStyle: ProvisioningStyle, teamID: String?, bundleIdentifier: String, productTypeEntitlements: PropertyListItem, productTypeIdentifier: String, projectEntitlementsFile: String?, projectEntitlements: PropertyListItem?, signingCertificateIdentifier: String, signingRequiresTeam: Bool, sdkRoot: String, sdkVariant: String?, supportsEntitlements: Bool, wantsBaseEntitlementInjection: Bool, entitlementsDestination: String, localSigningStyle: String) {
self.init(configurationName: configurationName, provisioningProfileSupport: provisioningProfileSupport, provisioningProfileSpecifier: provisioningProfileSpecifier, provisioningProfileUUID: provisioningProfileUUID, provisioningStyle: provisioningStyle, teamID: teamID, bundleIdentifier: bundleIdentifier, productTypeEntitlements: productTypeEntitlements, productTypeIdentifier: productTypeIdentifier, projectEntitlementsFile: projectEntitlementsFile, projectEntitlements: projectEntitlements, signingCertificateIdentifier: signingCertificateIdentifier, signingRequiresTeam: signingRequiresTeam, sdkRoot: sdkRoot, sdkVariant: sdkVariant, supportsEntitlements: supportsEntitlements, wantsBaseEntitlementInjection: wantsBaseEntitlementInjection, entitlementsDestination: entitlementsDestination, localSigningStyle: localSigningStyle, enableCloudSigning: false)
}

public init(from deserializer: any Deserializer) throws {
let count = try deserializer.beginAggregate(20...22)
self.configurationName = try deserializer.deserialize()
self.appIDHasFeaturesEnabled = try deserializer.deserialize()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, we should check the count of fields received to determine whether appIDHasFeaturesEnabled is still present - if it is, we can immediately discard it

self.provisioningProfileSupport = count >= 21 ? try deserializer.deserialize() : .unsupported
self.provisioningProfileSpecifier = try deserializer.deserialize()
self.provisioningProfileUUID = try deserializer.deserialize()
Expand Down Expand Up @@ -157,7 +154,6 @@ public struct ProvisioningTaskInputsSourceData: Serializable, Equatable, Sendabl
public func serialize<T: Serializer>(to serializer: T) {
serializer.serializeAggregate(21) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This count should be updated since one of the serialized fields was deleted

serializer.serialize(configurationName)
serializer.serialize(appIDHasFeaturesEnabled)
serializer.serialize(provisioningProfileSupport)
serializer.serialize(provisioningProfileSpecifier)
serializer.serialize(provisioningProfileUUID)
Expand Down
24 changes: 2 additions & 22 deletions Sources/SWBProtocol/ProjectModel/ProvisioningSourceData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,11 @@ public import SWBUtil

public struct ProvisioningSourceData: Serializable, Sendable {
public let configurationName: String
/// Whether the App ID for this target+configuration has any features enabled.
public let appIDHasFeaturesEnabled: Bool
public let provisioningStyle: ProvisioningStyle
public let bundleIdentifierFromInfoPlist: String

public init(configurationName: String, appIDHasFeaturesEnabled: Bool, provisioningStyle: ProvisioningStyle, bundleIdentifierFromInfoPlist: String) {
public init(configurationName: String, provisioningStyle: ProvisioningStyle, bundleIdentifierFromInfoPlist: String) {
self.configurationName = configurationName
self.appIDHasFeaturesEnabled = appIDHasFeaturesEnabled
self.provisioningStyle = provisioningStyle
self.bundleIdentifierFromInfoPlist = bundleIdentifierFromInfoPlist
}
Expand All @@ -30,33 +27,18 @@ public struct ProvisioningSourceData: Serializable, Sendable {
extension ProvisioningSourceData: Encodable, Decodable {
enum CodingKeys: String, CodingKey {
case configurationName
case appIDHasFeaturesEnabled
case provisioningStyle
case bundleIdentifierFromInfoPlist
}

public init(from decoder: any Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)

let appIDHasFeaturesEnabled: Bool
if let appIDString = try container.decodeIfPresent(String.self, forKey: .appIDHasFeaturesEnabled) {
switch appIDString {
case "true":
appIDHasFeaturesEnabled = true
case "false":
appIDHasFeaturesEnabled = false
default:
throw DecodingError.dataCorruptedError(forKey: .appIDHasFeaturesEnabled, in: container, debugDescription: "\(appIDString) is not a boolean value")
}
} else {
appIDHasFeaturesEnabled = false
}

guard let provisioningStyle = try ProvisioningStyle(rawValue: container.decode(ProvisioningStyle.RawValue.self, forKey: .provisioningStyle)) else {
throw DecodingError.dataCorruptedError(forKey: .provisioningStyle, in: container, debugDescription: "invalid provisioning style")
}

self.init(configurationName: try container.decode(String.self, forKey: .configurationName), appIDHasFeaturesEnabled: appIDHasFeaturesEnabled, provisioningStyle: provisioningStyle, bundleIdentifierFromInfoPlist: try container.decode(String.self, forKey: .bundleIdentifierFromInfoPlist))
self.init(configurationName: try container.decode(String.self, forKey: .configurationName), provisioningStyle: provisioningStyle, bundleIdentifierFromInfoPlist: try container.decode(String.self, forKey: .bundleIdentifierFromInfoPlist))
}
}

Expand All @@ -67,7 +49,6 @@ extension ProvisioningSourceData: PendingSerializableCodable {
public func legacySerialize<T: Serializer>(to serializer: T) {
serializer.serializeAggregate(4) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, the field count here should be updated

serializer.serialize(configurationName)
serializer.serialize(appIDHasFeaturesEnabled)
serializer.serialize(provisioningStyle)
serializer.serialize(bundleIdentifierFromInfoPlist)
}
Expand All @@ -76,7 +57,6 @@ extension ProvisioningSourceData: PendingSerializableCodable {
public init(fromLegacy deserializer: any Deserializer) throws {
let count = try deserializer.beginAggregate(4...5)
self.configurationName = try deserializer.deserialize()
self.appIDHasFeaturesEnabled = try deserializer.deserialize()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the above, we should check the count here to determine if we need to deserialize and then discard the now-unused field

self.provisioningStyle = try deserializer.deserialize()
if count > 4 {
_ = try deserializer.deserialize() as String // legacyTeamID
Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBTestSupport/Projects/AppClips.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ extension TestProject {
TestCopyFilesBuildPhase([TestBuildFile(.target("BarClip"), platformFilters: appClipPlatformFilters)], destinationSubfolder: .builtProductsDir, destinationSubpath: "$(CONTENTS_FOLDER_PATH)/AppClips", onlyForDeployment: false),
],
dependencies: [TestTargetDependency("BarClip", platformFilters: appClipPlatformFilters)],
provisioningSourceData: [.init(configurationName: "Debug", appIDHasFeaturesEnabled: false, provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "com.foo.app")]),
provisioningSourceData: [.init(configurationName: "Debug", provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "com.foo.app")]),
TestStandardTarget(
"BarClip",
type: .appClip,
Expand All @@ -77,7 +77,7 @@ extension TestProject {
TestSourcesBuildPhase(["Source.c"]),
TestResourcesBuildPhase(["Assets.xcassets"]),
],
provisioningSourceData: [.init(configurationName: "Debug", appIDHasFeaturesEnabled: false, provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "com.foo.app.clip")]),
provisioningSourceData: [.init(configurationName: "Debug", provisioningStyle: .automatic, bundleIdentifierFromInfoPlist: "com.foo.app.clip")]),
])

if let fs {
Expand Down
8 changes: 6 additions & 2 deletions Sources/SwiftBuild/SWBProvisioningTaskInputs.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,12 @@ public enum SWBProvisioningProfileSupport: Sendable {
/// Source data for computing provisioning task inputs, to be passed from SwiftBuild.framework to clients.
public struct SWBProvisioningTaskInputsSourceData: Sendable {
public let configurationName: String
public let appIDHasFeaturesEnabled: Bool

@available(*, deprecated, message: "It will need to remain as a deprecated property to maintain ABI compatibility.")
public var appIDHasFeaturesEnabled: Bool {
return false
}

public let provisioningProfileSupport: SWBProvisioningProfileSupport
public let provisioningProfileSpecifier: String
public let provisioningProfileUUID: String
Expand All @@ -50,7 +55,6 @@ public struct SWBProvisioningTaskInputsSourceData: Sendable {

init(_ sourceData: ProvisioningTaskInputsSourceData) throws {
self.configurationName = sourceData.configurationName
self.appIDHasFeaturesEnabled = sourceData.appIDHasFeaturesEnabled
switch sourceData.provisioningProfileSupport {
case .unsupported:
self.provisioningProfileSupport = .unsupported
Expand Down
1 change: 0 additions & 1 deletion Tests/SWBBuildSystemPerfTests/SwiftDriverPerfTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ fileprivate struct SwiftDriverPerfTests: CoreBasedTests, PerfTests {
provisioningSourceData: [
SWBProtocol.ProvisioningSourceData(
configurationName: "Debug",
appIDHasFeaturesEnabled: false,
provisioningStyle: .manual,
bundleIdentifierFromInfoPlist: "$(PRODUCT_BUNDLE_IDENTIFIER)")])
}
Expand Down
3 changes: 0 additions & 3 deletions Tests/SWBCoreTests/PIFLoadingTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1259,7 +1259,6 @@ private final class ProjectModelItemClass: ProjectModelItem {
if let provisioningSourceData = frameworkTarget?.provisioningSourceData(for: "Debug")
{
#expect(provisioningSourceData.configurationName == "Debug")
#expect(!provisioningSourceData.appIDHasFeaturesEnabled)
#expect(provisioningSourceData.provisioningStyle == .automatic)
#expect(provisioningSourceData.bundleIdentifierFromInfoPlist == "")
}
Expand All @@ -1280,7 +1279,6 @@ private final class ProjectModelItemClass: ProjectModelItem {
]
let testProvisioningSourceData: [String: PropertyListItem] = [
"configurationName": "Debug",
"appIDHasFeaturesEnabled": "true",
"provisioningStyle": 1,
"bundleIdentifierFromInfoPlist": "CocoaApp",
]
Expand Down Expand Up @@ -1354,7 +1352,6 @@ private final class ProjectModelItemClass: ProjectModelItem {
if let provisioningSourceData = appTarget?.provisioningSourceData(for: "Debug")
{
#expect(provisioningSourceData.configurationName == "Debug")
#expect(provisioningSourceData.appIDHasFeaturesEnabled)
#expect(provisioningSourceData.provisioningStyle == .manual)
#expect(provisioningSourceData.bundleIdentifierFromInfoPlist == "CocoaApp")
}
Expand Down
Loading