From e97b002655a093096ede6d4989d07cf2cc108abc Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Tue, 25 Sep 2018 21:08:11 +1000 Subject: [PATCH 01/20] upgrade to xcodeproj 5 --- Package.resolved | 26 +- Package.swift | 6 +- Sources/ProjectSpec/Config.swift | 1 - Sources/ProjectSpec/Dependency.swift | 1 - Sources/ProjectSpec/DeploymentTarget.swift | 1 - Sources/ProjectSpec/Project.swift | 1 - Sources/ProjectSpec/Scheme.swift | 10 +- Sources/ProjectSpec/Settings.swift | 2 +- Sources/ProjectSpec/SpecOptions.swift | 1 - Sources/ProjectSpec/Target.swift | 2 +- Sources/ProjectSpec/TargetScheme.swift | 2 +- Sources/ProjectSpec/TargetSource.swift | 6 +- Sources/ProjectSpec/XCProjExtensions.swift | 2 +- Sources/XcodeGen/main.swift | 5 +- Sources/XcodeGenKit/PBXProjGenerator.swift | 244 +- Sources/XcodeGenKit/ProjectGenerator.swift | 2 +- Sources/XcodeGenKit/SettingsBuilder.swift | 5 +- Sources/XcodeGenKit/SettingsPresetFile.swift | 2 +- Sources/XcodeGenKit/SourceGenerator.swift | 78 +- Sources/XcodeGenKit/XCProjExtensions.swift | 38 +- .../Project.xcodeproj/project.pbxproj | 5468 ++++++++--------- .../xcshareddata/xcschemes/App_iOS.xcscheme | 12 +- .../xcschemes/App_watchOS.xcscheme | 8 +- .../xcshareddata/xcschemes/Framework.xcscheme | 10 +- .../xcschemes/iMessageApp.xcscheme | 8 +- Tests/XcodeGenKitTests/GeneratorHelpers.swift | 8 +- .../ProjectFixtureTests.swift | 18 +- .../ProjectGeneratorTests.swift | 113 +- Tests/XcodeGenKitTests/ProjectSpecTests.swift | 2 +- .../SourceGeneratorTests.swift | 53 +- Tests/XcodeGenKitTests/SpecLoadingTests.swift | 2 +- Tests/XcodeGenKitTests/TestHelpers.swift | 2 +- 32 files changed, 3066 insertions(+), 3073 deletions(-) diff --git a/Package.resolved b/Package.resolved index a82af1f5..eed901f3 100644 --- a/Package.resolved +++ b/Package.resolved @@ -46,15 +46,6 @@ "version": "3.1.4" } }, - { - "package": "ShellOut", - "repositoryURL": "https://github.com/JohnSundell/ShellOut.git", - "state": { - "branch": null, - "revision": "f1c253a34a40df4bfd268b09fdb101b059f6d52d", - "version": "2.1.0" - } - }, { "package": "Spectre", "repositoryURL": "https://github.com/kylef/Spectre.git", @@ -65,12 +56,21 @@ } }, { - "package": "xcproj", - "repositoryURL": "https://github.com/tuist/xcodeproj.git", + "package": "SwiftPM", + "repositoryURL": "https://github.com/apple/swift-package-manager", "state": { "branch": null, - "revision": "5253c22f208558264e3a64a3a29f11537ca1b41a", - "version": "4.3.1" + "revision": "6983434787dec4e543e9d398a0a9acf63ccd4da1", + "version": "0.2.1" + } + }, + { + "package": "xcodeproj", + "repositoryURL": "https://github.com/tuist/xcodeproj.git", + "state": { + "branch": "master", + "revision": "f7f497b00e41dae704815ecebfd030b85f82c240", + "version": null } }, { diff --git a/Package.swift b/Package.swift index b942cd34..93e4c9d5 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", from: "4.3.1"), + .package(url: "https://github.com/tuist/xcodeproj.git", .branchItem("master")), ], targets: [ .target(name: "XcodeGen", dependencies: [ @@ -27,12 +27,12 @@ let package = Package( .target(name: "XcodeGenKit", dependencies: [ "ProjectSpec", "JSONUtilities", - "xcproj", + "xcodeproj", "PathKit", ]), .target(name: "ProjectSpec", dependencies: [ "JSONUtilities", - "xcproj", + "xcodeproj", "Yams", ]), .testTarget(name: "XcodeGenKitTests", dependencies: [ diff --git a/Sources/ProjectSpec/Config.swift b/Sources/ProjectSpec/Config.swift index 20c7c4ab..2e343e57 100644 --- a/Sources/ProjectSpec/Config.swift +++ b/Sources/ProjectSpec/Config.swift @@ -1,6 +1,5 @@ import Foundation import JSONUtilities -import xcproj public struct Config: Equatable { public var name: String diff --git a/Sources/ProjectSpec/Dependency.swift b/Sources/ProjectSpec/Dependency.swift index 324f703a..84602873 100644 --- a/Sources/ProjectSpec/Dependency.swift +++ b/Sources/ProjectSpec/Dependency.swift @@ -1,6 +1,5 @@ import Foundation import JSONUtilities -import xcproj public struct Dependency: Equatable { diff --git a/Sources/ProjectSpec/DeploymentTarget.swift b/Sources/ProjectSpec/DeploymentTarget.swift index 190ce071..e8640d13 100644 --- a/Sources/ProjectSpec/DeploymentTarget.swift +++ b/Sources/ProjectSpec/DeploymentTarget.swift @@ -1,6 +1,5 @@ import Foundation import JSONUtilities -import xcproj public struct DeploymentTarget: Equatable { diff --git a/Sources/ProjectSpec/Project.swift b/Sources/ProjectSpec/Project.swift index bb6eeebb..482d3986 100644 --- a/Sources/ProjectSpec/Project.swift +++ b/Sources/ProjectSpec/Project.swift @@ -1,7 +1,6 @@ import Foundation import JSONUtilities import PathKit -import xcproj import Yams public struct Project: BuildSettingsContainer { diff --git a/Sources/ProjectSpec/Scheme.swift b/Sources/ProjectSpec/Scheme.swift index d6d87836..1bd83431 100644 --- a/Sources/ProjectSpec/Scheme.swift +++ b/Sources/ProjectSpec/Scheme.swift @@ -1,6 +1,6 @@ import Foundation import JSONUtilities -import xcproj +import xcodeproj public typealias BuildType = XCScheme.BuildAction.Entry.BuildFor @@ -311,7 +311,7 @@ extension BuildType: JSONPrimitiveConvertible { } } -extension XCScheme.EnvironmentVariable: JSONObjectConvertible, Equatable { +extension XCScheme.EnvironmentVariable: JSONObjectConvertible { private static func parseValue(_ value: Any) -> String { if let bool = value as? Bool { @@ -346,10 +346,4 @@ extension XCScheme.EnvironmentVariable: JSONObjectConvertible, Equatable { return [] } } - - public static func == (lhs: XCScheme.EnvironmentVariable, rhs: XCScheme.EnvironmentVariable) -> Bool { - return lhs.variable == rhs.variable && - lhs.value == rhs.value && - lhs.enabled == rhs.enabled - } } diff --git a/Sources/ProjectSpec/Settings.swift b/Sources/ProjectSpec/Settings.swift index c1a5dad5..26d061bf 100644 --- a/Sources/ProjectSpec/Settings.swift +++ b/Sources/ProjectSpec/Settings.swift @@ -1,7 +1,7 @@ import Foundation import JSONUtilities import PathKit -import xcproj +import xcodeproj public struct Settings: Equatable, JSONObjectConvertible, CustomStringConvertible { diff --git a/Sources/ProjectSpec/SpecOptions.swift b/Sources/ProjectSpec/SpecOptions.swift index 6b4adfc4..9d559578 100644 --- a/Sources/ProjectSpec/SpecOptions.swift +++ b/Sources/ProjectSpec/SpecOptions.swift @@ -1,6 +1,5 @@ import Foundation import JSONUtilities -import xcproj public struct SpecOptions: Equatable { diff --git a/Sources/ProjectSpec/Target.swift b/Sources/ProjectSpec/Target.swift index a38e5b13..4cdb7b88 100644 --- a/Sources/ProjectSpec/Target.swift +++ b/Sources/ProjectSpec/Target.swift @@ -1,6 +1,6 @@ import Foundation import JSONUtilities -import xcproj +import xcodeproj public struct LegacyTarget: Equatable { public var toolPath: String diff --git a/Sources/ProjectSpec/TargetScheme.swift b/Sources/ProjectSpec/TargetScheme.swift index 72194461..50d49f88 100644 --- a/Sources/ProjectSpec/TargetScheme.swift +++ b/Sources/ProjectSpec/TargetScheme.swift @@ -1,6 +1,6 @@ import Foundation import JSONUtilities -import xcproj +import xcodeproj public struct TargetScheme: Equatable { public var testTargets: [String] diff --git a/Sources/ProjectSpec/TargetSource.swift b/Sources/ProjectSpec/TargetSource.swift index 08bc65cd..91264e51 100644 --- a/Sources/ProjectSpec/TargetSource.swift +++ b/Sources/ProjectSpec/TargetSource.swift @@ -1,7 +1,7 @@ import Foundation import JSONUtilities import PathKit -import xcproj +import xcodeproj public struct TargetSource: Equatable { @@ -57,7 +57,7 @@ public struct TargetSource: Equatable { case sharedSupport case plugins - public var destination: xcproj.PBXCopyFilesBuildPhase.SubFolder? { + public var destination: xcodeproj.PBXCopyFilesBuildPhase.SubFolder? { switch self { case .absolutePath: return .absolutePath case .productsDirectory: return .productsDirectory @@ -82,7 +82,7 @@ public struct TargetSource: Equatable { } } - public var buildPhase: xcproj.BuildPhase? { + public var buildPhase: xcodeproj.BuildPhase? { switch self { case .sources: return .sources case .headers: return .headers diff --git a/Sources/ProjectSpec/XCProjExtensions.swift b/Sources/ProjectSpec/XCProjExtensions.swift index 0b3096dc..85f74b4d 100644 --- a/Sources/ProjectSpec/XCProjExtensions.swift +++ b/Sources/ProjectSpec/XCProjExtensions.swift @@ -1,6 +1,6 @@ import Foundation import PathKit -import xcproj +import xcodeproj extension PBXProductType { diff --git a/Sources/XcodeGen/main.swift b/Sources/XcodeGen/main.swift index 7531e821..b7288ab2 100644 --- a/Sources/XcodeGen/main.swift +++ b/Sources/XcodeGen/main.swift @@ -4,7 +4,8 @@ import JSONUtilities import PathKit import ProjectSpec import XcodeGenKit -import xcproj +import xcodeproj +import Basic let version = try Version("1.11.2") @@ -54,7 +55,7 @@ func generate(spec: String, project: String, isQuiet: Bool, justVersion: Bool) { if projectFile.exists { try projectFile.copy(tempPath) } - try xcodeProject.write(path: tempPath, override: true) + try xcodeProject.write(path: AbsolutePath(tempPath.absolute().string), override: true) try? projectFile.delete() try tempPath.copy(projectFile) try? tempPath.delete() diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index de814fd0..962bc445 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -1,8 +1,7 @@ import Foundation -import JSONUtilities import PathKit import ProjectSpec -import xcproj +import xcodeproj import Yams public class PBXProjGenerator { @@ -12,13 +11,13 @@ public class PBXProjGenerator { let pbxProj: PBXProj var sourceGenerator: SourceGenerator! - var targetObjects: [String: ObjectReference] = [:] - var targetAggregateObjects: [String: ObjectReference] = [:] - var targetBuildFiles: [String: ObjectReference] = [:] - var targetFileReferences: [String: String] = [:] + var targetObjects: [String: PBXTarget] = [:] + var targetAggregateObjects: [String: PBXAggregateTarget] = [:] + var targetBuildFiles: [String: PBXBuildFile] = [:] + var targetFileReferences: [String: PBXObjectReference] = [:] - var carthageFrameworksByPlatform: [String: Set] = [:] - var frameworkFiles: [String] = [] + var carthageFrameworksByPlatform: [String: Set] = [:] + var frameworkFiles: [PBXObjectReference] = [] var generated = false @@ -28,21 +27,21 @@ public class PBXProjGenerator { public init(project: Project) { self.project = project - pbxProj = PBXProj(rootObject: "", objectVersion: 46) + pbxProj = PBXProj(objectVersion: 46) sourceGenerator = SourceGenerator(project: project) { [unowned self] id, object in - self.addObject(id: id, object) + _ = self.addObject(id: id, object) } } - func addObject(id: String, _ object: PBXObject) -> String { - let reference = pbxProj.objects.generateReference(object, id) - pbxProj.objects.addObject(object, reference: reference) - return reference + func addObject(id: String, _ object: T) -> T { +// let reference = pbxProj.objects.generateReference(object, id) + pbxProj.objects.addObject(object) + return object } - func createObject(id: String, _ object: T) -> ObjectReference { - let reference = addObject(id: id, object) - return ObjectReference(reference: reference, object: object) + func createObject(id: String, _ object: T) -> T { + pbxProj.objects.addObject(object) + return object } public func generate() throws -> PBXProj { @@ -55,9 +54,9 @@ public class PBXProjGenerator { try sourceGenerator.getFileGroups(path: group) } - let buildConfigs: [ObjectReference] = project.configs.map { config in + let buildConfigs: [XCBuildConfiguration] = project.configs.map { config in let buildSettings = project.getProjectBuildSettings(config: config) - var baseConfigurationReference: String? + var baseConfigurationReference: PBXObjectReference? if let configPath = project.configFiles[config.name] { baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) } @@ -71,21 +70,21 @@ public class PBXProjGenerator { ) } - let configName = project.options.defaultConfig ?? buildConfigs.first?.object.name ?? "" + let configName = project.options.defaultConfig ?? buildConfigs.first?.name ?? "" let buildConfigList = createObject( id: project.name, XCConfigurationList( - buildConfigurations: buildConfigs.map { $0.reference }, + buildConfigurationsReferences: buildConfigs.map { $0.reference }, defaultConfigurationName: configName ) ) - var derivedGroups: [ObjectReference] = [] + var derivedGroups: [PBXGroup] = [] let mainGroup = createObject( id: "Project", PBXGroup( - children: [], + childrenReferences: [], sourceTree: .group, usesTabs: project.options.usesTabs, indentWidth: project.options.indentWidth, @@ -97,14 +96,14 @@ public class PBXProjGenerator { id: project.name, PBXProject( name: project.name, - buildConfigurationList: buildConfigList.reference, + buildConfigurationListReference: buildConfigList.reference, compatibilityVersion: "Xcode 3.2", - mainGroup: mainGroup.reference, + mainGroupReference: mainGroup.reference, developmentRegion: project.options.developmentLanguage ?? "en" ) ) - pbxProj.rootObject = pbxProject.reference + pbxProj.rootObjectReference = pbxProject.reference for target in project.targets { let targetObject: PBXTarget @@ -125,7 +124,7 @@ public class PBXProjGenerator { var explicitFileType: String? var lastKnownFileType: String? - let fileType = PBXFileReference.fileType(path: Path(target.filename)) + let fileType = Xcode.fileType(path: Path(target.filename)) if target.platform == .macOS || target.platform == .watchOS || target.type == .framework { explicitFileType = fileType } else { @@ -146,8 +145,8 @@ public class PBXProjGenerator { targetFileReferences[target.name] = fileReference.reference targetBuildFiles[target.name] = createObject( - id: fileReference.reference, - PBXBuildFile(fileRef: fileReference.reference) + id: "legacy target build file" + target.name, + PBXBuildFile(fileReference: fileReference.reference) ) } } @@ -170,7 +169,7 @@ public class PBXProjGenerator { let productGroup = createObject( id: "Products", PBXGroup( - children: Array(targetFileReferences.values), + childrenReferences: Array(targetFileReferences.values), sourceTree: .group, name: "Products" ) @@ -179,23 +178,23 @@ public class PBXProjGenerator { if !carthageFrameworksByPlatform.isEmpty { var platforms: [PBXGroup] = [] - var platformReferences: [String] = [] + var platformReferences: [PBXObjectReference] = [] for (platform, fileReferences) in carthageFrameworksByPlatform { - let platformGroup: ObjectReference = createObject( + let platformGroup: PBXGroup = createObject( id: "Carthage" + platform, PBXGroup( - children: fileReferences.sorted(), + childrenReferences: fileReferences.sorted(), sourceTree: .group, path: platform ) ) platformReferences.append(platformGroup.reference) - platforms.append(platformGroup.object) + platforms.append(platformGroup) } let carthageGroup = createObject( id: "Carthage", PBXGroup( - children: platformReferences.sorted(), + childrenReferences: platformReferences.sorted(), sourceTree: .group, name: "Carthage", path: carthageBuildPath @@ -208,7 +207,7 @@ public class PBXProjGenerator { let group = createObject( id: "Frameworks", PBXGroup( - children: frameworkFiles, + childrenReferences: frameworkFiles, sourceTree: .group, name: "Frameworks" ) @@ -216,12 +215,12 @@ public class PBXProjGenerator { derivedGroups.append(group) } - mainGroup.object.children = Array(sourceGenerator.rootGroups) + mainGroup.childrenReferences = Array(sourceGenerator.rootGroups) sortGroups(group: mainGroup) // add derived groups at the end derivedGroups.forEach(sortGroups) - mainGroup.object.children += derivedGroups - .sorted { $0.object.nameOrPath.localizedStandardCompare($1.object.nameOrPath) == .orderedAscending } + mainGroup.childrenReferences += derivedGroups + .sorted { $0.nameOrPath.localizedStandardCompare($1.nameOrPath) == .orderedAscending } .map { $0.reference } let projectAttributes: [String: Any] = ["LastUpgradeCheck": project.xcodeVersion] @@ -231,24 +230,24 @@ public class PBXProjGenerator { let knownRegions = sourceGenerator.knownRegions.sorted() pbxProject.object.knownRegions = knownRegions.isEmpty ? ["en"] : knownRegions - let allTargets: [ObjectReference] = Array(targetObjects.values) + Array(targetAggregateObjects.values.map { ObjectReference(reference: $0.reference, object: $0.object) }) + let allTargets: [PBXTarget] = Array(targetObjects.values) + Array(targetAggregateObjects.values) pbxProject.object.targets = allTargets - .sorted { $0.object.name < $1.object.name } + .sorted { $0.name < $1.name } .map { $0.reference } - pbxProject.object.attributes = projectAttributes + pbxProject.attributes = projectAttributes return pbxProj } func generateAggregateTarget(_ target: AggregateTarget) throws { - let aggregateTarget = targetAggregateObjects[target.name]!.object + let aggregateTarget = targetAggregateObjects[target.name]! - let configs: [ObjectReference] = project.configs.map { config in + let configs: [XCBuildConfiguration] = project.configs.map { config in let buildSettings = project.getBuildSettings(settings: target.settings, config: config) - var baseConfigurationReference: String? + var baseConfigurationReference: PBXObjectReference? if let configPath = target.configFiles[config.name] { baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) } @@ -260,30 +259,30 @@ public class PBXProjGenerator { return createObject(id: config.name + target.name, buildConfig) } - let dependencies: [String] = target.targets.map { generateTargetDependency(from: target.name, to: $0).reference } + let dependencies: [PBXObjectReference] = target.targets.map { generateTargetDependency(from: target.name, to: $0).reference } let buildConfigList = createObject(id: target.name, XCConfigurationList( - buildConfigurations: configs.map { $0.reference }, + buildConfigurationsReferences: configs.map { $0.reference }, defaultConfigurationName: "" )) - var buildPhases: [String] = [] + var buildPhases: [PBXObjectReference] = [] buildPhases += try target.buildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } - aggregateTarget.buildPhases = buildPhases - aggregateTarget.buildConfigurationList = buildConfigList.reference - aggregateTarget.dependencies = dependencies + aggregateTarget.buildPhasesReferences = buildPhases + aggregateTarget.buildConfigurationListReference = buildConfigList.reference + aggregateTarget.dependenciesReferences = dependencies } - func generateTargetDependency(from: String, to target: String) -> ObjectReference { + func generateTargetDependency(from: String, to target: String) -> PBXTargetDependency { guard let targetReference = targetObjects[target]?.reference ?? targetAggregateObjects[target]?.reference else { fatalError("target not found") } let targetProxy = createObject( id: "\(from)-\(target)", PBXContainerItemProxy( - containerPortal: pbxProj.rootObject, - remoteGlobalIDString: targetReference, + containerPortalReference: pbxProj.rootObjectReference!, + remoteGlobalIDReference: targetReference, proxyType: .nativeTarget, remoteInfo: target ) @@ -292,14 +291,14 @@ public class PBXProjGenerator { let targetDependency = createObject( id: "\(from)-\(target)", PBXTargetDependency( - target: targetReference, - targetProxy: targetProxy.reference + targetReference: targetReference, + targetProxyReference: targetProxy.reference ) ) return targetDependency } - func generateBuildScript(targetName: String, buildScript: BuildScript) throws -> String { + func generateBuildScript(targetName: String, buildScript: BuildScript) throws -> PBXObjectReference { let shellScript: String switch buildScript.script { @@ -310,7 +309,7 @@ public class PBXProjGenerator { } let shellScriptPhase = PBXShellScriptBuildPhase( - files: [], + fileReferences: [], name: buildScript.name ?? "Run Script", inputPaths: buildScript.inputFiles, outputPaths: buildScript.outputFiles, @@ -324,15 +323,15 @@ public class PBXProjGenerator { func generateTargetAttributes() -> [String: Any]? { - var targetAttributes: [String: [String: Any]] = [:] + var targetAttributes: [PBXObjectReference: [String: Any]] = [:] - let uiTestTargets = pbxProj.objects.nativeTargets.objectReferences.filter { $0.object.productType == .uiTestBundle } + let uiTestTargets = pbxProj.objects.nativeTargets.values.filter { $0.productType == .uiTestBundle } for uiTestTarget in uiTestTargets { // look up TEST_TARGET_NAME build setting func testTargetName(_ target: PBXTarget) -> String? { - guard let configurationList = target.buildConfigurationList else { return nil } - guard let buildConfigurationReferences = self.pbxProj.objects.configurationLists[configurationList]?.buildConfigurations else { return nil } + guard let configurationList = target.buildConfigurationListReference else { return nil } + guard let buildConfigurationReferences = self.pbxProj.objects.configurationLists[configurationList]?.buildConfigurationsReferences else { return nil } let configs = buildConfigurationReferences .compactMap { ref in self.pbxProj.objects.buildConfigurations[ref] } @@ -342,13 +341,13 @@ public class PBXProjGenerator { .first } - guard let name = testTargetName(uiTestTarget.object) else { continue } + guard let name = testTargetName(uiTestTarget) else { continue } guard let target = self.pbxProj.objects.targets(named: name).first else { continue } targetAttributes[uiTestTarget.reference, default: [:]].merge(["TestTargetID": target.reference]) } - func generateTargetAttributes(_ target: ProjectTarget, targetReference: String) { + func generateTargetAttributes(_ target: ProjectTarget, targetReference: PBXObjectReference) { if !target.attributes.isEmpty { targetAttributes[targetReference, default: [:]].merge(target.attributes) } @@ -392,33 +391,24 @@ public class PBXProjGenerator { return targetAttributes.isEmpty ? nil : ["TargetAttributes": targetAttributes] } - func sortGroups(group: ObjectReference) { + func sortGroups(group: PBXGroup) { // sort children - let children = group.object.children - .compactMap { reference -> ObjectReference? in - guard let fileElement = pbxProj.objects.getFileElement(reference: reference) else { - return nil - } - return ObjectReference(reference: reference, object: fileElement) - } + let children = group.childrenReferences + .compactMap { pbxProj.objects.getFileElement(reference: $0) } .sorted { child1, child2 in - let sortOrder1 = child1.object.getSortOrder(groupSortPosition: project.options.groupSortPosition) - let sortOrder2 = child2.object.getSortOrder(groupSortPosition: project.options.groupSortPosition) + let sortOrder1 = child1.getSortOrder(groupSortPosition: project.options.groupSortPosition) + let sortOrder2 = child2.getSortOrder(groupSortPosition: project.options.groupSortPosition) if sortOrder1 == sortOrder2 { - return child1.object.nameOrPath.localizedStandardCompare(child2.object.nameOrPath) == .orderedAscending + return child1.nameOrPath.localizedStandardCompare(child2.nameOrPath) == .orderedAscending } else { return sortOrder1 < sortOrder2 } } - group.object.children = children.map { $0.reference }.filter { $0 != group.reference } + group.childrenReferences = children.map { $0.reference }.filter { $0 != group.reference } // sort sub groups - let childGroups = group.object.children.compactMap { reference -> ObjectReference? in - guard let group = pbxProj.objects.groups[reference] else { - return nil - } - return ObjectReference(reference: reference, object: group) } + let childGroups = group.childrenReferences.compactMap { pbxProj.objects.groups[$0] } childGroups.forEach(sortGroups) } @@ -433,14 +423,14 @@ public class PBXProjGenerator { var searchForPlist = true var anyDependencyRequiresObjCLinking = false - var dependencies: [String] = [] - var targetFrameworkBuildFiles: [String] = [] + var dependencies: [PBXObjectReference] = [] + var targetFrameworkBuildFiles: [PBXObjectReference] = [] var frameworkBuildPaths = Set() - var copyFilesBuildPhasesFiles: [TargetSource.BuildPhase.CopyFilesSettings: [String]] = [:] - var copyFrameworksReferences: [String] = [] - var copyResourcesReferences: [String] = [] - var copyWatchReferences: [String] = [] - var extensions: [String] = [] + var copyFilesBuildPhasesFiles: [TargetSource.BuildPhase.CopyFilesSettings: [PBXObjectReference]] = [:] + var copyFrameworksReferences: [PBXObjectReference] = [] + var copyResourcesReferences: [PBXObjectReference] = [] + var copyWatchReferences: [PBXObjectReference] = [] + var extensions: [PBXObjectReference] = [] var carthageFrameworksToEmbed: [String] = [] let targetDependencies = (target.transitivelyLinkDependencies ?? project.options.transitivelyLinkDependencies) ? @@ -479,10 +469,10 @@ public class PBXProjGenerator { || (dependecyLinkage == .static && target.type.isExecutable) ) if link { - let dependencyBuildFile = targetBuildFiles[dependencyTargetName]! + let dependencyBuildFileReference = targetBuildFiles[dependencyTargetName]!.fileReference! let buildFile = createObject( - id: dependencyBuildFile.reference + target.name, - PBXBuildFile(fileRef: dependencyBuildFile.object.fileRef!) + id: "target dependency build file" + target.name, + PBXBuildFile(fileReference: dependencyBuildFileReference) ) targetFrameworkBuildFiles.append(buildFile.reference) @@ -498,9 +488,9 @@ public class PBXProjGenerator { )) if embed { let embedFile = createObject( - id: dependencyFileReference + target.name, + id: "target dependency embed build file" + target.name, PBXBuildFile( - fileRef: dependencyFileReference, + fileReference: dependencyFileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? !dependencyTarget.type.isExecutable) ) ) @@ -522,7 +512,7 @@ public class PBXProjGenerator { case .framework: guard target.type != .staticLibrary else { break } - let fileReference: String + let fileReference: PBXObjectReference if dependency.implicit { fileReference = sourceGenerator.getFileReference( path: Path(dependency.reference), @@ -537,8 +527,8 @@ public class PBXProjGenerator { } let buildFile = createObject( - id: "framework" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference) + id: "framework file reference" + target.name, + PBXBuildFile(fileReference: fileReference) ) targetFrameworkBuildFiles.append(buildFile.reference) @@ -548,8 +538,8 @@ public class PBXProjGenerator { if embed { let embedFile = createObject( - id: "framework embed" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) + id: "framework embed file" + target.name, + PBXBuildFile(fileReference: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) copyFrameworksReferences.append(embedFile.reference) } @@ -568,8 +558,8 @@ public class PBXProjGenerator { let fileReference = sourceGenerator.getFileReference(path: frameworkPath, inPath: platformPath) let buildFile = createObject( - id: "carthage" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference) + id: "carthage dependency build file" + target.name, + PBXBuildFile(fileReference: fileReference) ) carthageFrameworksByPlatform[target.platform.carthageDirectoryName, default: []].insert(fileReference) @@ -595,8 +585,8 @@ public class PBXProjGenerator { if embed { if directlyEmbedCarthage { let embedFile = createObject( - id: "carthage embed" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) + id: "carthage embed" + target.name, + PBXBuildFile(fileReference: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) copyFrameworksReferences.append(embedFile.reference) } else { @@ -606,9 +596,9 @@ public class PBXProjGenerator { } let fileReference = targetFileReferences[target.name] - var buildPhases: [String] = [] + var buildPhases: [PBXObjectReference] = [] - func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [String] { + func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXObjectReference] { let files = sourceFiles .reduce(into: [SourceFile]()) { output, sourceFile in if !output.contains(where: { $0.fileReference == sourceFile.fileReference }) { @@ -616,17 +606,17 @@ public class PBXProjGenerator { } } .sorted { $0.path.lastComponent < $1.path.lastComponent } - return files.map { createObject(id: $0.fileReference + target.name, $0.buildFile) } + return files.map { createObject(id: $0.path.string + target.name, $0.buildFile) } .map { $0.reference } } - func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [String] { + func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [PBXObjectReference] { let filteredSourceFiles = sourceFiles .filter { $0.buildPhase?.buildPhase == buildPhase } return getBuildFilesForSourceFiles(filteredSourceFiles) } - func getBuildFilesForCopyFilesPhases() -> [TargetSource.BuildPhase.CopyFilesSettings: [String]] { + func getBuildFilesForCopyFilesPhases() -> [TargetSource.BuildPhase.CopyFilesSettings: [PBXObjectReference]] { var sourceFilesByCopyFiles: [TargetSource.BuildPhase.CopyFilesSettings: [SourceFile]] = [:] for sourceFile in sourceFiles { guard case let .copyFiles(copyFilesSettings)? = sourceFile.buildPhase else { continue } @@ -639,17 +629,17 @@ public class PBXProjGenerator { let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { - let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) + let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(fileReferences: headersBuildPhaseFiles)) buildPhases.append(headersBuildPhase.reference) } let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) - let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(files: sourcesBuildPhaseFiles)) + let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(fileReferences: sourcesBuildPhaseFiles)) buildPhases.append(sourcesBuildPhase.reference) let resourcesBuildPhaseFiles = getBuildFilesForPhase(.resources) + copyResourcesReferences if !resourcesBuildPhaseFiles.isEmpty { - let resourcesBuildPhase = createObject(id: target.name, PBXResourcesBuildPhase(files: resourcesBuildPhaseFiles)) + let resourcesBuildPhase = createObject(id: target.name, PBXResourcesBuildPhase(fileReferences: resourcesBuildPhaseFiles)) buildPhases.append(resourcesBuildPhase.reference) } @@ -665,7 +655,7 @@ public class PBXProjGenerator { let script = createObject( id: "Swift.h" + target.name, PBXShellScriptBuildPhase( - files: [], + fileReferences: [], name: "Copy Swift Objective-C Interface Header", inputPaths: inputPaths, outputPaths: outputPaths, @@ -684,7 +674,7 @@ public class PBXProjGenerator { PBXCopyFilesBuildPhase( dstPath: copyFiles.subpath, dstSubfolderSpec: copyFiles.destination.destination, - files: buildPhaseFiles + fileReferences: buildPhaseFiles ) ) @@ -696,7 +686,7 @@ public class PBXProjGenerator { let frameworkBuildPhase = createObject( id: target.name, - PBXFrameworksBuildPhase(files: targetFrameworkBuildFiles) + PBXFrameworksBuildPhase(fileReferences: targetFrameworkBuildFiles) ) buildPhases.append(frameworkBuildPhase.reference) } @@ -709,7 +699,7 @@ public class PBXProjGenerator { dstPath: "", dstSubfolderSpec: .plugins, name: "Embed App Extensions", - files: extensions + fileReferences: extensions ) ) @@ -725,7 +715,7 @@ public class PBXProjGenerator { dstPath: "", dstSubfolderSpec: .frameworks, name: "Embed Frameworks", - files: copyFrameworksReferences + fileReferences: copyFrameworksReferences ) ) @@ -740,7 +730,7 @@ public class PBXProjGenerator { dstPath: "$(CONTENTS_FOLDER_PATH)/Watch", dstSubfolderSpec: .productsDirectory, name: "Embed Watch Content", - files: copyWatchReferences + fileReferences: copyWatchReferences ) ) @@ -757,7 +747,7 @@ public class PBXProjGenerator { let carthageScript = createObject( id: "Carthage" + target.name, PBXShellScriptBuildPhase( - files: [], + fileReferences: [], name: "Carthage", inputPaths: inputPaths, outputPaths: outputPaths, @@ -786,7 +776,7 @@ public class PBXProjGenerator { buildPhases += try target.postbuildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } - let configs: [ObjectReference] = project.configs.map { config in + let configs: [XCBuildConfiguration] = project.configs.map { config in var buildSettings = project.getTargetBuildSettings(target: target, config: config) // automatically set INFOPLIST_FILE path @@ -860,7 +850,7 @@ public class PBXProjGenerator { } } - var baseConfigurationReference: String? + var baseConfigurationReference: PBXObjectReference? if let configPath = target.configFiles[config.name] { baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) } @@ -873,18 +863,18 @@ public class PBXProjGenerator { } let buildConfigList = createObject(id: target.name, XCConfigurationList( - buildConfigurations: configs.map { $0.reference }, + buildConfigurationsReferences: configs.map { $0.reference }, defaultConfigurationName: "" )) - let targetObject = targetObjects[target.name]!.object + let targetObject = targetObjects[target.name]! targetObject.name = target.name - targetObject.buildConfigurationList = buildConfigList.reference - targetObject.buildPhases = buildPhases - targetObject.dependencies = dependencies + targetObject.buildConfigurationListReference = buildConfigList.reference + targetObject.buildPhasesReferences = buildPhases + targetObject.dependenciesReferences = dependencies targetObject.productName = target.name - targetObject.buildRules = buildRules + targetObject.buildRulesReferences = buildRules targetObject.productReference = fileReference if !target.isLegacy { targetObject.productType = target.type @@ -927,7 +917,7 @@ public class PBXProjGenerator { if let target = projectTarget as? Target { for dependency in target.dependencies { // don't overwrite frameworks, to allow top level ones to rule - if frameworks.contains(reference: dependency.reference) { + if frameworks[dependency.reference] != nil { continue } @@ -971,7 +961,7 @@ public class PBXProjGenerator { for dependency in target.dependencies { // don't overwrite dependencies, to allow top level ones to rule - if dependencies.contains(reference: dependency.reference) { + if dependencies[dependency.reference] != nil { continue } diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index c1c70f58..9336a249 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -2,7 +2,7 @@ import Foundation import JSONUtilities import PathKit import ProjectSpec -import xcproj +import xcodeproj import Yams public class ProjectGenerator { diff --git a/Sources/XcodeGenKit/SettingsBuilder.swift b/Sources/XcodeGenKit/SettingsBuilder.swift index c5974e9f..348f6275 100644 --- a/Sources/XcodeGenKit/SettingsBuilder.swift +++ b/Sources/XcodeGenKit/SettingsBuilder.swift @@ -2,8 +2,9 @@ import Foundation import JSONUtilities import PathKit import ProjectSpec -import xcproj +import xcodeproj import Yams +import Basic extension Project { @@ -129,7 +130,7 @@ extension Project { if let settings = configFileSettings[configFilePath.string] { return settings } else { - guard let configFile = try? XCConfig(path: configFilePath) else { return nil } + guard let configFile = try? XCConfig(path: AbsolutePath(configFilePath.absolute().string)) else { return nil } let settings = configFile.flattenedBuildSettings() configFileSettings[configFilePath.string] = settings return settings diff --git a/Sources/XcodeGenKit/SettingsPresetFile.swift b/Sources/XcodeGenKit/SettingsPresetFile.swift index 4fa276b3..5122bc96 100644 --- a/Sources/XcodeGenKit/SettingsPresetFile.swift +++ b/Sources/XcodeGenKit/SettingsPresetFile.swift @@ -1,6 +1,6 @@ import Foundation import ProjectSpec -import xcproj +import xcodeproj public enum SettingsPresetFile { case config(ConfigType) diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index a56614e3..5c443249 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -1,24 +1,24 @@ import Foundation import PathKit import ProjectSpec -import xcproj +import xcodeproj struct SourceFile { let path: Path - let fileReference: String + let fileReference: PBXObjectReference let buildFile: PBXBuildFile let buildPhase: TargetSource.BuildPhase? } class SourceGenerator { - var rootGroups: Set = [] - private var fileReferencesByPath: [String: String] = [:] - private var groupsByPath: [Path: ObjectReference] = [:] - private var variantGroupsByPath: [Path: ObjectReference] = [:] + var rootGroups: Set = [] + private var fileReferencesByPath: [String: PBXObjectReference] = [:] + private var groupsByPath: [Path: PBXGroup] = [:] + private var variantGroupsByPath: [Path: PBXVariantGroup] = [:] private let project: Project - var addObjectClosure: (String, PBXObject) -> String + var addObjectClosure: (String, PBXObject) -> Void var targetSourceExcludePaths: Set = [] var defaultExcludedFiles = [ ".DS_Store", @@ -28,18 +28,19 @@ class SourceGenerator { private(set) var knownRegions: Set = [] - init(project: Project, addObjectClosure: @escaping (String, PBXObject) -> String) { + init(project: Project, addObjectClosure: @escaping (String, PBXObject) -> Void) { self.project = project self.addObjectClosure = addObjectClosure } - func addObject(id: String, _ object: PBXObject) -> String { - return addObjectClosure(id, object) + func createObject(id: String, _ object: T) -> T { + addObjectClosure(id, object) + return object } - func createObject(id: String, _ object: T) -> ObjectReference { - let reference = addObject(id: id, object) - return ObjectReference(reference: reference, object: object) + func addObject(id: String, _ object: T) -> T { + addObjectClosure(id, object) + return object } func getAllSourceFiles(targetType: PBXProductType, sources: [TargetSource]) throws -> [SourceFile] { @@ -90,7 +91,7 @@ class SourceGenerator { settings["COMPILER_FLAGS"] = targetSource.compilerFlags.joined(separator: " ") } - let buildFile = PBXBuildFile(fileRef: fileReference, settings: settings.isEmpty ? nil : settings) + let buildFile = PBXBuildFile(fileReference: fileReference, settings: settings.isEmpty ? nil : settings) return SourceFile( path: path, fileReference: fileReference, @@ -99,7 +100,7 @@ class SourceGenerator { ) } - func getContainedFileReference(path: Path) -> String { + func getContainedFileReference(path: Path) -> PBXObjectReference { let createIntermediateGroups = project.options.createIntermediateGroups let parentPath = path.parent() @@ -117,7 +118,7 @@ class SourceGenerator { return fileReference } - func getFileReference(path: Path, inPath: Path, name: String? = nil, sourceTree: PBXSourceTree = .group, lastKnownFileType: String? = nil) -> String { + func getFileReference(path: Path, inPath: Path, name: String? = nil, sourceTree: PBXSourceTree = .group, lastKnownFileType: String? = nil) -> PBXObjectReference { let fileReferenceKey = path.string.lowercased() if let fileReference = fileReferencesByPath[fileReferenceKey] { return fileReference @@ -127,7 +128,7 @@ class SourceGenerator { if fileReferencePath.string == fileReferenceName { fileReferenceName = nil } - let lastKnownFileType = lastKnownFileType ?? PBXFileReference.fileType(path: path) + let lastKnownFileType = lastKnownFileType ?? Xcode.fileType(path: path) if path.extension == "xcdatamodeld" { let versionedModels = (try? path.children()) ?? [] @@ -151,7 +152,7 @@ class SourceGenerator { // If no current version path is found we fall back to alphabetical // order by taking the last item in the sortedPaths array let currentVersionPath = findCurrentCoreDataModelVersionPath(using: versionedModels) ?? sortedPaths.last - let currentVersion: ObjectReference? = { + let currentVersion: PBXFileReference? = { guard let indexOf = sortedPaths.index(where: { $0 == currentVersionPath }) else { return nil } return modelFileReference[indexOf] }() @@ -160,10 +161,10 @@ class SourceGenerator { path: fileReferencePath.string, sourceTree: sourceTree, versionGroupType: "wrapper.xcdatamodel", - children: modelFileReference.map { $0.reference } + childrenReferences: modelFileReference.map { $0.reference } )) - fileReferencesByPath[fileReferenceKey] = versionGroup - return versionGroup + fileReferencesByPath[fileReferenceKey] = versionGroup.reference + return versionGroup.reference } else { // For all extensions other than `xcdatamodeld` let fileReference = createObject( @@ -207,12 +208,12 @@ class SourceGenerator { /// Create a group or return an existing one at the path. /// Any merged children are added to a new group or merged into an existing one. - private func getGroup(path: Path, name: String? = nil, mergingChildren children: [String], createIntermediateGroups: Bool, isBaseGroup: Bool) -> ObjectReference { - let groupReference: ObjectReference + private func getGroup(path: Path, name: String? = nil, mergingChildren children: [PBXObjectReference], createIntermediateGroups: Bool, isBaseGroup: Bool) -> PBXGroup { + let groupReference: PBXGroup if let cachedGroup = groupsByPath[path] { // only add the children that aren't already in the cachedGroup - cachedGroup.object.children = Array(Set(cachedGroup.object.children + children)) + cachedGroup.childrenReferences = Array(Set(cachedGroup.childrenReferences + children)) groupReference = cachedGroup } else { @@ -230,7 +231,7 @@ class SourceGenerator { path.byRemovingBase(path: project.basePath).string : path.lastComponent let group = PBXGroup( - children: children, + childrenReferences: children, sourceTree: .group, name: groupName != groupPath ? groupName : nil, path: groupPath @@ -246,13 +247,12 @@ class SourceGenerator { } /// Creates a variant group or returns an existing one at the path - private func getVariantGroup(path: Path, inPath: Path) -> ObjectReference { - let variantGroup: ObjectReference + private func getVariantGroup(path: Path, inPath: Path) -> PBXVariantGroup { + let variantGroup: PBXVariantGroup if let cachedGroup = variantGroupsByPath[path] { variantGroup = cachedGroup } else { let group = PBXVariantGroup( - children: [], sourceTree: .group, name: path.lastComponent ) @@ -305,7 +305,7 @@ class SourceGenerator { /// creates all the source files and groups they belong to for a given targetSource private func getGroupSources(targetType: PBXProductType, targetSource: TargetSource, path: Path, isBaseGroup: Bool) - throws -> (sourceFiles: [SourceFile], groups: [ObjectReference]) { + throws -> (sourceFiles: [SourceFile], groups: [PBXGroup]) { let children = try getSourceChildren(targetSource: targetSource, dirPath: path) @@ -321,11 +321,11 @@ class SourceGenerator { .filter { $0.extension == "lproj" } .sorted { $0.lastComponent < $1.lastComponent } - var groupChildren: [String] = filePaths.map { getFileReference(path: $0, inPath: path) } + var groupChildren: [PBXObjectReference] = filePaths.map { getFileReference(path: $0, inPath: path) } var allSourceFiles: [SourceFile] = filePaths.map { generateSourceFile(targetType: targetType, targetSource: targetSource, path: $0) } - var groups: [ObjectReference] = [] + var groups: [PBXGroup] = [] for path in directories { let subGroups = try getGroupSources(targetType: targetType, targetSource: targetSource, path: path, isBaseGroup: false) @@ -364,12 +364,12 @@ class SourceGenerator { .sorted() { let variantGroup = getVariantGroup(path: filePath, inPath: path) groupChildren.append(variantGroup.reference) - baseLocalisationVariantGroups.append(variantGroup.object) + baseLocalisationVariantGroups.append(variantGroup) let sourceFile = SourceFile( path: filePath, fileReference: variantGroup.reference, - buildFile: PBXBuildFile(fileRef: variantGroup.reference), + buildFile: PBXBuildFile(fileReference: variantGroup.reference), buildPhase: .resources ) allSourceFiles.append(sourceFile) @@ -399,15 +399,15 @@ class SourceGenerator { ) if let variantGroup = variantGroup { - if !variantGroup.children.contains(fileReference) { - variantGroup.children.append(fileReference) + if !variantGroup.childrenReferences.contains(fileReference) { + variantGroup.childrenReferences.append(fileReference) } } else { // add SourceFile to group if there is no Base.lproj directory let sourceFile = SourceFile( path: filePath, fileReference: fileReference, - buildFile: PBXBuildFile(fileRef: fileReference), + buildFile: PBXBuildFile(fileReference: fileReference), buildPhase: .resources ) allSourceFiles.append(sourceFile) @@ -440,7 +440,7 @@ class SourceGenerator { let createIntermediateGroups = project.options.createIntermediateGroups var sourceFiles: [SourceFile] = [] - let sourceReference: String + let sourceReference: PBXObjectReference var sourcePath = path switch type { case .folder: @@ -489,7 +489,7 @@ class SourceGenerator { let (groupSourceFiles, groups) = try getGroupSources(targetType: targetType, targetSource: targetSource, path: path, isBaseGroup: true) let group = groups.first! if let name = targetSource.name { - group.object.name = name + group.name = name } sourceFiles += groupSourceFiles @@ -504,7 +504,7 @@ class SourceGenerator { } // Add groups for all parents recursively - private func createIntermediaGroups(for groupReference: String, at path: Path) { + private func createIntermediaGroups(for groupReference: PBXObjectReference, at path: Path) { let parentPath = path.parent() guard parentPath != project.basePath && path.string.contains(project.basePath.string) else { diff --git a/Sources/XcodeGenKit/XCProjExtensions.swift b/Sources/XcodeGenKit/XCProjExtensions.swift index edf9fe5e..539ded37 100644 --- a/Sources/XcodeGenKit/XCProjExtensions.swift +++ b/Sources/XcodeGenKit/XCProjExtensions.swift @@ -1,5 +1,6 @@ import Foundation -import xcproj +import xcodeproj +import PathKit extension PBXFileElement { @@ -12,7 +13,7 @@ extension PBXProj { public func printGroups() -> String { guard let project = objects.projects.first?.value, - let mainGroup = objects.groups.getReference(project.mainGroup) else { + let mainGroup = objects.groups.getReference(project.mainGroupReference) else { return "" } return printGroup(group: mainGroup) @@ -20,7 +21,7 @@ extension PBXProj { public func printGroup(group: PBXGroup) -> String { var string = group.nameOrPath - for reference in group.children { + for reference in group.childrenReferences { if let group = objects.groups.getReference(reference) { string += "\n 📁 " + printGroup(group: group).replacingOccurrences(of: "\n ", with: "\n ") } else if let fileReference = objects.fileReferences.getReference(reference) { @@ -34,3 +35,34 @@ extension PBXProj { return string } } + +extension PBXObjects { + + public func getFileElement(reference: PBXObjectReference) -> PBXFileElement? { + return groups[reference] ?? + fileReferences[reference] ?? + versionGroups[reference] ?? + variantGroups[reference] + } +} + +extension Dictionary { + + public var valueArray: Array { + return Array(values) + } +} + +extension Dictionary where Key == PBXObjectReference { + + public func getReference(_ reference: PBXObjectReference) -> Value? { + return self[reference] + } +} + +extension Xcode { + + public static func fileType(path: Path) -> String? { + return path.extension.flatMap { Xcode.filetype(extension: $0) } + } +} diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index badfd0f1..1a7e1f9f 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXAggregateTarget section */ - AT_445731917037 /* SuperTarget */ = { + AB59C0690172FF119F045336C1F1CA0D /* SuperTarget */ = { isa = PBXAggregateTarget; - buildConfigurationList = CL_445731917037 /* Build configuration list for PBXAggregateTarget "SuperTarget" */; + buildConfigurationList = DF19D3419A77EDFF6F8498EFC3E36048 /* Build configuration list for PBXAggregateTarget "SuperTarget" */; buildPhases = ( - SSBP_8280041834 /* MyScript */, + 69E4B11A07FF06F8306B5646CA2403EF /* MyScript */, ); dependencies = ( - TD_208010900457 /* PBXTargetDependency */, - TD_747418473860 /* PBXTargetDependency */, + 3E978D446B3957A557629CD1DF47004B /* PBXTargetDependency */, + 3FFD524CC10F62CA07750D1026106CB3 /* PBXTargetDependency */, ); name = SuperTarget; productName = SuperTarget; @@ -23,829 +23,826 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - BF_138356261076 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_363921640403 /* InterfaceController.swift */; }; - BF_139519317795 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_452853029807 /* Alamofire.framework */; }; - BF_167705969896 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_145531354566 /* TestProjectUITests.swift */; }; - BF_182635022050 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_830053537293 /* Assets.xcassets */; }; - BF_184447863946 = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; }; - BF_186245454304 /* LocalizedStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_118219888726 /* LocalizedStoryboard.storyboard */; }; - BF_190684453680 = {isa = PBXBuildFile; fileRef = FR_376569054786 /* XPC Service.xpc */; }; - BF_206432481076 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_340586388409 /* ExtensionDelegate.swift */; }; - BF_211435872001 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = VG_473000061463 /* Localizable.strings */; }; - BF_212221512596 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_470929579339 /* StaticLibrary.swift */; }; - BF_215463341392 /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; }; - BF_217053936758 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; - BF_225293845818 = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; }; - BF_237760701422 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_987043315473 /* Assets.xcassets */; }; - BF_239684316986 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_243071719122 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; - BF_259448131292 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_268392110450 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_587738154368 /* Assets.xcassets */; }; - BF_279581961655 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_868653349092 /* Assets.xcassets */; }; - BF_280535243540 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_609193904586 /* Main.storyboard */; }; - BF_284620660317 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = FR_238161558082 /* MyBundle.bundle */; }; - BF_292474606791 = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; }; - BF_303822704662 = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; }; - BF_304637845091 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_151462316179 /* main.m */; }; - BF_308631758818 /* XPC Service.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_376569054786 /* XPC Service.xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_314868376788 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = VG_746876637628 /* Localizable.stringsdict */; }; - BF_324363145049 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; }; - BF_331192862207 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_481575785861 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - BF_334321520545 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_377082606829 /* Assets.xcassets */; }; - BF_334778067417 = {isa = PBXBuildFile; fileRef = FR_783122899910 /* App_iOS_Tests.xctest */; }; - BF_337656089700 = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; - BF_360196406184 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_722239415598 /* TestProjectTests.swift */; }; - BF_415651546539 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; - BF_425679397292 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_441538117869 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BF_456457948943 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; - BF_458111705914 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; }; - BF_461044234706 /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_496472559782 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_501771188469 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_503484983186 /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_196911129660 /* MoreUnder.swift */; }; - BF_510053944904 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_518775144316 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_229826849033 /* SomeXPCService.xpc */; }; - BF_526105569599 = {isa = PBXBuildFile; fileRef = FR_437179166843 /* StaticLibrary_Swift.a */; }; - BF_535236390262 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; }; - BF_538515166673 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_256263906698 /* LaunchScreen.storyboard */; }; - BF_552913093094 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_561304997165 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; - BF_563614389392 = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; }; - BF_597639300414 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; }; - BF_607543323797 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; - BF_612351978356 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_264279911176 /* Interface.storyboard */; }; - BF_624802436672 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; - BF_632297340262 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; - BF_647038614509 /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BF_650026899468 = {isa = PBXBuildFile; fileRef = FR_602719163962 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_670499288392 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = VG_229021855709 /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - BF_681504666330 = {isa = PBXBuildFile; fileRef = FR_825232110500 /* App_iOS.app */; }; - BF_703054643820 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_310979699934 /* MessagesViewController.swift */; }; - BF_704149935229 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; - BF_721498080533 /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = FR_257073931060 /* ResourceFolder */; }; - BF_725992639588 = {isa = PBXBuildFile; fileRef = FR_480982116789 /* App_macOS.app */; }; - BF_732745079658 = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; }; - BF_734036107922 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_742449020987 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; }; - BF_747443236192 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BF_752022362638 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; - BF_757906110813 = {isa = PBXBuildFile; fileRef = FR_662315837182 /* Framework.framework */; }; - BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; - BF_803757127643 = {isa = PBXBuildFile; fileRef = FR_739513596122 /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_807556340853 /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_837374194182 /* Empty.h */; }; - BF_813358525536 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_828878846239 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_201160695646 /* MainInterface.storyboard */; }; - BF_830383951771 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_304712043717 /* NotificationController.swift */; }; - BF_854463933379 = {isa = PBXBuildFile; fileRef = FR_438704538506 /* Framework.framework */; }; - BF_854691035877 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; }; - BF_855988705556 /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_602719163945 /* XPC_Service.m */; }; - BF_860391087135 /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_408537768279 /* StandaloneAssets.xcassets */; }; - BF_863842036151 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_870702193513 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BF_892119987440 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_854336462818 /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - BF_897881229855 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_898051828670 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; - BF_901390118565 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; - BF_905038616071 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_905617636654 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_940936137577 = {isa = PBXBuildFile; fileRef = FR_123503999387 /* App_iOS_UITests.xctest */; }; - BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; + 01E1BB1F24B4A80B8FC21EC54DDAFCFB /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */; }; + 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */; }; + 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12BB537967032E2ECE176F4F6BD7FEF1 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */; }; + 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */; }; + 142F53A6CDA1596543042CFD876E1B17 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; + 1469E5437CDCEAB8B753538C36C6EC91 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */; }; + 155B03B91592C42BB787EB5FB9FA4625 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 166B4DE0C553AC808EA56CB57358CD95 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C71345D3886B5E2221F4441BD871D5 /* Alamofire.framework */; }; + 1D1EBBAD810AB8280C138C76BE8AF7B5 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 277BE1159CD7855C287566F29F8939BA /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */; }; + 27D1C1B8C60FD46B541C840BFBA7DD44 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 2A8A171902ADC287F600AAB4C3020AA3 /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */; }; + 2B3F156D5B5BB22B1A6955B8B43F417F /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */; }; + 2CCCB0657766F9F9527F77A9F42AAF9E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */; }; + 2F3C2D29AD1524C2DAA8601042880BF1 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */; }; + 304090AFAC1ED0D09C95B0CB2BEFEB9E /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */; }; + 3243ACA306AD909C8186921F288640DB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E005A2734C32783354AAB8546A12718B /* Localizable.strings */; }; + 334AA8E27C083421E9B411D7CD5D3458 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 34D18588625C4E99A9A1265B3B918A50 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 370B3DF5D5741094E48BE3C0E00B68E7 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */; }; + 3D49538E97F4592012896021971B0166 /* LocalizedStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */; }; + 3E8A30F173DFFDBDDD0EBDA2D21A0D77 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */; }; + 3F6CF73FD22CC393D7A5EA3B0C66C24C /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; + 44B62E9C097529F3D5C7A44A5F777A61 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + 45FE59E8EE4FE189573959804F6F6076 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 486E2AABDE448C496C0FCC393A35E669 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49C46F18756F4E9EE9E1CC328F79A2AD /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */; }; + 4A99C1479D453718EDAFA771656D6958 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 5163749E505B01D5ACB99C653525D046 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */; }; + 51FCB6F2D56B68E627A35C53729E423A /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */; }; + 55E7240008DD5452802A41DA6FC7A16F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + 59A1A5DC48B33CCB164751AF5F9B4EF6 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 5A6137039176A4E48CF6B399372D56EA /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 6013ED0F37BB222A6B44D0CB89CE69AE /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60677C8B465E055458D1DF51F0EC0A90 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */; }; + 631A7BEDCB97C03DC5E6AED97FDF408E /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */; }; + 68642C69AC9333487FC491E6FA98261E /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */; }; + 702E56BFA3B2A830E24D74FCA3A33D55 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + 718D11FA2B62EFF8783CF9693CEFC64F /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */; }; + 766C78D100B581A2A469B47A02A0E6D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + 7AE6DE3A93E56909084D4F93795B3C93 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */; }; + 7AF2CCC3F2ECDC1FE82B2C05BEF75B71 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */; }; + 7C2B87BE6AEC5813069E896736FA68A3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */; }; + 809CDDAA142679CDCFCF376C9CA71C09 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */; }; + 8CF2462D2181DDDA1A8E8A1F176F9A47 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 959956C14A10B778A0CF1618CA4BC63C /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */; }; + 9F2CA54E38CDF41C367FAC8E304AF4C5 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */; }; + A37247C6EE3138C4083810BA1BA6C7FD /* XPC Service.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A4E000AF88BD17B9A2B08452C17C2EEF /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */; }; + A6CCC432869EB6B8A65A89B565B57EA5 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */; }; + AA5AF277386012CD6CC015073239E50F /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */; }; + AD00993C2491D03BD3A1B6E48D685C29 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */; }; + AUTO_5VZIHqJ600tEPf73suYa = {isa = PBXBuildFile; fileRef = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; }; + AUTO_7MKZu584cIQuU5pdvEAL = {isa = PBXBuildFile; fileRef = EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */; }; + AUTO_9aaVkTyiyQWj9chRFSXC = {isa = PBXBuildFile; fileRef = C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */; }; + AUTO_CX9m7izxITPbe6k7gIMS = {isa = PBXBuildFile; fileRef = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; }; + AUTO_FHqmKTu8R9eQcDSHtBl2 = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AUTO_FI4P0L7mD3dfGGVPVNvx = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; + AUTO_GN80IEuWvCvUcPwoAVnt = {isa = PBXBuildFile; fileRef = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; }; + AUTO_LFQ2NgxpvrhYJSYshySZ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + AUTO_Ni16m8Y84i5PMkMaGKaR = {isa = PBXBuildFile; fileRef = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; }; + AUTO_OkqadiIPIeuHfZsWVaT8 = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + AUTO_cBeRILf3hWlctfWZW9JQ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + AUTO_eO1L3NPJcUbCdbs0LA8S = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AUTO_elwIMiarYGjkKHoLYkNz = {isa = PBXBuildFile; fileRef = 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */; }; + AUTO_iHu2o18WOxDYzCUar5IX = {isa = PBXBuildFile; fileRef = AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */; }; + AUTO_m5qNHcIsAuTywjDdFCMx = {isa = PBXBuildFile; fileRef = 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */; }; + AUTO_sv3hFquUhPl9qfllDvyL = {isa = PBXBuildFile; fileRef = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; }; + AUTO_vusM5sNOIMe1bxFDS6ZY = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + BD4C8B77EF89CF7F4ED0D1C4713397E4 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; + BD8FA9115EB29C8438DE82A4C33C249A /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BE38983978B6D70795D2924F52F3081D /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */; }; + C4F880A62908F7CD24C87CE5D67B0196 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; + C5DD61FED061701F52A2AE59334C3964 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EF485495979F5EF324B541071E00D33B /* Assets.xcassets */; }; + D8E194DE99C1389B4335B7112DEA7DC4 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */; }; + D9338C1374B8F82194B44B6F73075123 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */; }; + DB95C341F44FE1E093C948F4F734515B /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */; }; + DDEAB9F0EBC3BBC4D641C06A86BFD425 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */; }; + E249D28B974B22ED41B7BAE7A1CC7468 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + E831CFC1214156450B81B78792D4A0C1 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */; }; + EBC3AA70BAD516864D119DDEEE2C436D /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; + F16AD8A4E1A6E1189CE048C03CEA9469 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; + F25CA48D38ED8577DF81395CFBFF0FA5 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + F7E9F427669FE7710D0A19AA4E1156F4 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */; }; + FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; + FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - CIP_10972496596 /* PBXContainerItemProxy */ = { + 09709070DE34AF9CD99E9E5EB9990FEA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_472296042419; - remoteInfo = Framework_iOS; - }; - CIP_19329118292 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_507023492251; - remoteInfo = "App_watchOS Extension"; - }; - CIP_20801090045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_825232110500; + remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; remoteInfo = App_iOS; }; - CIP_23558050412 /* PBXContainerItemProxy */ = { + 0BF678D2C5D11E654050E6FD6AF1321C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_525119120469; - remoteInfo = Framework_macOS; - }; - CIP_28856087625 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_935153865209; + remoteGlobalIDString = 24B389B0959F4A6CB05BB732DABDFE40; remoteInfo = iMessageApp; }; - CIP_31792113134 /* PBXContainerItemProxy */ = { + 29DD3982DDC8FB1816F3413908D59361 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_618687462494; - remoteInfo = iMessageExtension; - }; - CIP_33710394010 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; - CIP_62903878492 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; - CIP_66745555235 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; - CIP_67619158112 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_825232110500; - remoteInfo = App_iOS; - }; - CIP_72152212817 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; - CIP_74378499241 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_376569054786; - remoteInfo = "XPC Service"; - }; - CIP_74741847386 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_472296042419; + remoteGlobalIDString = FE8D0077B0ADF688264AFA16A3FC213E; remoteInfo = Framework_iOS; }; - CIP_78441234790 /* PBXContainerItemProxy */ = { + 322420B31CCE201E90F298BE48129574 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_399755008402; + remoteGlobalIDString = 6805881B1B6A80ABD523DAF4AFA493E2; + remoteInfo = Framework_macOS; + }; + 454E9650A00080FE30274224CC9F46C0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CBCC05D0B8E90F960AA198981827667B; + remoteInfo = "App_watchOS Extension"; + }; + 5A941DAF3EECD0D974E9330E048ABAF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; remoteInfo = StaticLibrary_ObjC; }; - CIP_82410178775 /* PBXContainerItemProxy */ = { + 61EAE260C32C57D1ADCEAA01E33B62F0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_324671077936; + remoteGlobalIDString = 9F21B9C99E75314E51854589C0A2D40C; remoteInfo = App_watchOS; }; - CIP_88714386547 /* PBXContainerItemProxy */ = { + 707E4E6909BBD1E09760167B4CFEC227 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_825232110500; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; + remoteInfo = StaticLibrary_ObjC; + }; + 91B2DBDD3AE5AF1D532D18340182CF27 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; + remoteInfo = StaticLibrary_ObjC; + }; + 931421A32656354E62549752A08EDBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; remoteInfo = App_iOS; }; - CIP_95747640947 /* PBXContainerItemProxy */ = { + 9B58798122BFEA3C65A8FF0A3351860D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_399755008402; + remoteGlobalIDString = F61DEA90F1B7331EE9B26BBA1F66D1F3; + remoteInfo = "XPC Service"; + }; + C3EE26A1AAD19418C160843CDB61D97D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; + remoteInfo = StaticLibrary_ObjC; + }; + CC516AFC796533BF02DD6B96F8DD7E74 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; + remoteInfo = App_iOS; + }; + DE00464172E7A41CC51991B9136AA5BD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8A0FE14A3A3815C1F26B447C6178089C; + remoteInfo = iMessageExtension; + }; + E09571F16E5252817F36D382C4132D85 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; + remoteInfo = StaticLibrary_ObjC; + }; + EEB2D30EB7369BDB638EBEEF136463C2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FE8D0077B0ADF688264AFA16A3FC213E; + remoteInfo = Framework_iOS; + }; + FF9930E567A8C8A64F553637C661978F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C21579FB597F51FACE99F831124CEB70; remoteInfo = StaticLibrary_ObjC; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - CFBP_2836118931 /* Embed Watch Content */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; - dstSubfolderSpec = 16; - files = ( - BF_747443236192 /* App_watchOS.app in Embed Watch Content */, - ); - name = "Embed Watch Content"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_3265670993 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - BF_607543323797 /* StaticLibrary_ObjC.h in CopyFiles */, - BF_752022362638 /* module.modulemap in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_4082141876 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - BF_863842036151 /* Alamofire.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_4626438721 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - BF_501771188469 /* Alamofire.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_4684049960 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - BF_441538117869 /* App_watchOS Extension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_4930089528 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - BF_552913093094 /* Framework.framework in Embed Frameworks */, - BF_897881229855 /* Alamofire.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_5460766702 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - BF_870702193513 /* iMessageExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_6493932244 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - BF_905038616071 /* Framework.framework in Embed Frameworks */, - BF_461044234706 /* SomeFramework.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_7191905390 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - BF_807556340853 /* Empty.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CFBP_8368933518 /* CopyFiles */ = { + 0B85189BAB2D1568EECF81226FF3FF97 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "$(CONTENTS_FOLDER_PATH)/XPCServices"; dstSubfolderSpec = 16; files = ( - BF_308631758818 /* XPC Service.xpc in CopyFiles */, - BF_518775144316 /* SomeXPCService.xpc in CopyFiles */, + A37247C6EE3138C4083810BA1BA6C7FD /* XPC Service.xpc in CopyFiles */, + 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1130301AAAB06CA6AE2DBC09B9F82B74 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 1D1EBBAD810AB8280C138C76BE8AF7B5 /* Framework.framework in Embed Frameworks */, + BD8FA9115EB29C8438DE82A4C33C249A /* SomeFramework.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 31035708668339C7624CD18BC4971F27 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 4A99C1479D453718EDAFA771656D6958 /* Alamofire.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 64735A35127234188A50A9CC433F3D43 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 45FE59E8EE4FE189573959804F6F6076 /* App_watchOS Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 800C402270322E33CF2C5DBBAE32DD06 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 155B03B91592C42BB787EB5FB9FA4625 /* App_watchOS.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; + 8748CD344E8DDE93B221AA670D93DA94 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + DDEAB9F0EBC3BBC4D641C06A86BFD425 /* StaticLibrary_ObjC.h in CopyFiles */, + E831CFC1214156450B81B78792D4A0C1 /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8C62857F0DCEBB22C299F26FCCE769F9 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 34D18588625C4E99A9A1265B3B918A50 /* iMessageExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 916C69163E65CD06E8BD0CCC8D8227C2 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 59A1A5DC48B33CCB164751AF5F9B4EF6 /* Alamofire.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + DBC722FD0EE319959445B8F14D3EE091 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 334AA8E27C083421E9B411D7CD5D3458 /* Framework.framework in Embed Frameworks */, + 27D1C1B8C60FD46B541C840BFBA7DD44 /* Alamofire.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + FE39362C1CB6263D81609FF7975359EE /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + 631A7BEDCB97C03DC5E6AED97FDF408E /* Empty.h in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - FR_118219888726 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; - FR_123503999387 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_145531354566 /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; - FR_151462316179 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - FR_172952167809 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; - FR_183521624014 /* MyFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyFramework.h; sourceTree = ""; }; - FR_196911129660 /* MoreUnder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreUnder.swift; sourceTree = ""; }; - FR_201160695646 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; - FR_229826849033 /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = ""; }; - FR_232605427418 /* Mintfile */ = {isa = PBXFileReference; path = Mintfile; sourceTree = ""; }; - FR_238161558082 /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = ""; }; - FR_247808626608 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_256263906698 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - FR_257073931060 /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; - FR_257516580010 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; - FR_263408310401 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; - FR_264279911176 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; - FR_293137352077 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_304712043717 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; - FR_310979699934 /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; - FR_324671077936 /* App_watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_watchOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_340586388409 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; - FR_363921640403 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; - FR_376569054786 /* XPC Service.xpc */ = {isa = PBXFileReference; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_377082606829 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FR_399755008402 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_408537768279 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; - FR_410645050443 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; - FR_437179166843 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_438704538506 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_452853029807 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; - FR_461737784133 /* module.modulemap */ = {isa = PBXFileReference; path = module.modulemap; sourceTree = ""; }; - FR_470929579339 /* StaticLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLibrary.swift; sourceTree = ""; }; - FR_472296042419 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_473000061463 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; - FR_479281060337 /* Folder */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Folder; sourceTree = SOURCE_ROOT; }; - FR_480982116789 /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_481575785861 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - FR_500792082643 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LocalizedStoryboard.strings; sourceTree = ""; }; - FR_505327409380 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_507023492251 /* App_watchOS Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "App_watchOS Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_525119120469 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_530852296303 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_570918052822 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; - FR_587738154368 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FR_602633703434 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; - FR_602719163945 /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; - FR_602719163962 /* XPC_Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_Service.h; sourceTree = ""; }; - FR_609193904586 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - FR_618687462494 /* iMessageExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = iMessageExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_635802719871 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = ""; }; - FR_643034527839 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_654302359039 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = ""; }; - FR_655678458041 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_660690926982 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; - FR_662315837182 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_665156855283 /* module.modulemap */ = {isa = PBXFileReference; path = module.modulemap; sourceTree = ""; }; - FR_675266829517 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; - FR_698230898030 /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; - "FR_698230898030-1" /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; - FR_722239415598 /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; - FR_725187762757 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_739513596122 /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; - FR_746876637628 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.stringsdict; sourceTree = ""; }; - FR_748548478992 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; - FR_752394658615 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; - FR_771029596306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - FR_775316160345 /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; - FR_783122899910 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_796781152159 /* Model 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 2.xcdatamodel"; sourceTree = ""; }; - FR_803921963291 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_815403394914 /* Headers */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Headers; sourceTree = SOURCE_ROOT; }; - FR_825232110500 /* App_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_830053537293 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FR_837374194182 /* Empty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = ""; }; - FR_854336462818 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - FR_868653349092 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FR_935153865209 /* iMessageApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iMessageApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_948931241088 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FR_987043315473 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; + 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; + 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; + 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = ""; }; + 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; + 0BFEFFB973F5EEEF285D98AB90CFC9B0 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = ""; }; + 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; + 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 11DBDC38AD04D9F24454201311335431 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; + 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreUnder.swift; sourceTree = ""; }; + 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; + 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Headers; sourceTree = SOURCE_ROOT; }; + 247D8122E426D1FC239D36918CE3C0C5 /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; + 25F603F3FBBAB0B8947331C9190A6282 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = iMessageExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 2923CD786EB965107819EFF08193E672 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2E871C49A75D636E1E87F8904C5BA3D9 /* en */ = {isa = PBXFileReference; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; + 31F27C0F2868434258A846C4ADE4B35A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 354650483D8F76CB15A0FB0A99D2657F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; + 3F8D809984627520BE1811A1AC9B1AD9 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; + 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "App_watchOS Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; + 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; + 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; + 5FA5EA11F66D659044AB1FB5496EBF25 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = ""; }; + 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; + 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; + 6B9588F9AA980468B26837ADE36D0D2E /* Base */ = {isa = PBXFileReference; name = Base; path = Base.lproj/Localizable.stringsdict; sourceTree = ""; }; + 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = ""; }; + 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 72AE3D8A409EF0F4D17EA0BD0EC3BFFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLibrary.swift; sourceTree = ""; }; + 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_Service.h; sourceTree = ""; }; + 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; + 7AF3ACEAC55D3B6352EED8415D5B2951 /* Mintfile */ = {isa = PBXFileReference; path = Mintfile; sourceTree = ""; }; + 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyFramework.h; sourceTree = ""; }; + 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; + 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; + 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; + 88CE11E8D928D43BCC70F12A5576D511 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8AFEF032B9B258B97EFBD5B5AA741E8C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A444869BCBB55167EF043EEFFD075A78 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A59DAE760F32225493BDC5D378468EA9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AFDDC1A69B4B2637D36C39EE01DF23C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; + B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; + BD07DCE20104773C42E7617A09A55BD5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; + C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = ""; }; + C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C8822458902508063262BA655921BA2F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_watchOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iMessageApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + D99F14029800E2D9F2434C4B6D718A5E /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; + DB194C9EF763551CE2D5131407E8CF1C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LocalizedStoryboard.strings; sourceTree = ""; }; + DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */ = {isa = PBXFileReference; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; + E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + EC5C7923578F1110EE9EE74505530753 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + EF485495979F5EF324B541071E00D33B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + F04030C0892CAC78F4B4376F938018E3 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; + F435E28C9379AF718A5D502BF3B2FB26 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; + F56A7C74F4A75492F063A0A5BDBBF65C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; + F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; + F9C71345D3886B5E2221F4441BD871D5 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; + FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 2.xcdatamodel"; sourceTree = ""; }; + FFA022D59DE3CD80EDCC5CCEC6DB29C7 /* Folder */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Folder; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - FBP_32467107793 /* Frameworks */ = { + 1D124A23C4D38CE6B023194E85A64BBA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_415651546539 /* Alamofire.framework in Frameworks */, + 01E1BB1F24B4A80B8FC21EC54DDAFCFB /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_43870453850 /* Frameworks */ = { + 266AF93F95F8ECC5F62E443DD79D4263 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_898051828670 /* Alamofire.framework in Frameworks */, + 12BB537967032E2ECE176F4F6BD7FEF1 /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_47229604241 /* Frameworks */ = { + 3730EBC6001089E597081CA9CF12AF52 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_742449020987 /* Alamofire.framework in Frameworks */, + 2B3F156D5B5BB22B1A6955B8B43F417F /* Alamofire.framework in Frameworks */, + F25CA48D38ED8577DF81395CFBFF0FA5 /* Framework.framework in Frameworks */, + 142F53A6CDA1596543042CFD876E1B17 /* StaticLibrary_ObjC.a in Frameworks */, + 2A8A171902ADC287F600AAB4C3020AA3 /* SomeFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_48098211678 /* Frameworks */ = { + 6F3C985C6701880E8731C4AAFBDC9FEF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_535236390262 /* Alamofire.framework in Frameworks */, - BF_597639300414 /* Framework.framework in Frameworks */, - BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */, + 959956C14A10B778A0CF1618CA4BC63C /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_50702349225 /* Frameworks */ = { + 78E2554EF343D4CF421577E8651E5480 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_217053936758 /* Alamofire.framework in Frameworks */, + 60677C8B465E055458D1DF51F0EC0A90 /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_52511912046 /* Frameworks */ = { + C79A51DBA8AF7631AEF22BA83E104A04 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_854691035877 /* Alamofire.framework in Frameworks */, + 166B4DE0C553AC808EA56CB57358CD95 /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_66231583718 /* Frameworks */ = { + C8CA7D5902F866D50BF6F9A24BF1D10A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_139519317795 /* Alamofire.framework in Frameworks */, + 2F3C2D29AD1524C2DAA8601042880BF1 /* Alamofire.framework in Frameworks */, + FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */, + 3F6CF73FD22CC393D7A5EA3B0C66C24C /* StaticLibrary_ObjC.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FBP_82523211050 /* Frameworks */ = { + F6C2490C6497837A21966090C77C3602 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_458111705914 /* Alamofire.framework in Frameworks */, - BF_324363145049 /* Framework.framework in Frameworks */, - BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */, - BF_215463341392 /* SomeFramework.framework in Frameworks */, + 718D11FA2B62EFF8783CF9693CEFC64F /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - G_1235039993875 /* App_iOS_UITests */ = { + 0637537049544BDB5A2EB886E765A6C8 /* Module */ = { isa = PBXGroup; children = ( - FR_643034527839 /* Info.plist */, - FR_145531354566 /* TestProjectUITests.swift */, - ); - path = App_iOS_UITests; - sourceTree = ""; - }; - G_1646573205915 /* iMessage MessagesExtension */ = { - isa = PBXGroup; - children = ( - FR_830053537293 /* Assets.xcassets */, - FR_948931241088 /* Info.plist */, - VG_201160695646 /* MainInterface.storyboard */, - FR_310979699934 /* MessagesViewController.swift */, - ); - path = "iMessage MessagesExtension"; - sourceTree = ""; - }; - G_1885780145626 /* CopyFiles */ = { - isa = PBXGroup; - children = ( - FR_837374194182 /* Empty.h */, - ); - path = CopyFiles; - sourceTree = ""; - }; - G_1952740716080 /* Frameworks */ = { - isa = PBXGroup; - children = ( - G_2883690153011 /* Carthage */, - FR_654302359039 /* SomeFramework.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - G_2262017438925 /* iOS */ = { - isa = PBXGroup; - children = ( - FR_410645050443 /* Alamofire.framework */, - ); - path = iOS; - sourceTree = ""; - }; - G_2262017442691 /* Mac */ = { - isa = PBXGroup; - children = ( - FR_257516580010 /* Alamofire.framework */, - ); - path = Mac; - sourceTree = ""; - }; - G_2883690153011 /* Carthage */ = { - isa = PBXGroup; - children = ( - G_2262017438925 /* iOS */, - G_2262017442691 /* Mac */, - G_8628897169668 /* tvOS */, - G_8244488572839 /* watchOS */, - ); - name = Carthage; - path = Carthage/Build; - sourceTree = ""; - }; - G_3234630030493 /* FileGroup */ = { - isa = PBXGroup; - children = ( - G_8030722683864 /* UnderFileGroup */, - ); - path = FileGroup; - sourceTree = ""; - }; - G_3246710779368 /* App_watchOS */ = { - isa = PBXGroup; - children = ( - FR_587738154368 /* Assets.xcassets */, - FR_293137352077 /* Info.plist */, - VG_264279911176 /* Interface.storyboard */, - ); - path = App_watchOS; - sourceTree = ""; - }; - G_3765690547864 /* XPC Service */ = { - isa = PBXGroup; - children = ( - FR_803921963291 /* Info.plist */, - FR_151462316179 /* main.m */, - FR_602719163962 /* XPC_Service.h */, - FR_602719163945 /* XPC_Service.m */, - FR_739513596122 /* XPC_ServiceProtocol.h */, - ); - path = "XPC Service"; - sourceTree = ""; - }; - G_3997550084026 /* StaticLibrary_ObjC */ = { - isa = PBXGroup; - children = ( - G_5938599606592 /* Module */, - FR_698230898030 /* StaticLibrary_ObjC.h */, - "FR_698230898030-1" /* StaticLibrary_ObjC.m */, - ); - path = StaticLibrary_ObjC; - sourceTree = ""; - }; - G_4371791668439 /* StaticLibrary_Swift */ = { - isa = PBXGroup; - children = ( - FR_470929579339 /* StaticLibrary.swift */, - ); - path = StaticLibrary_Swift; - sourceTree = ""; - }; - G_4661500274312 /* Framework */ = { - isa = PBXGroup; - children = ( - FR_172952167809 /* FrameworkFile.swift */, - FR_247808626608 /* Info.plist */, - FR_183521624014 /* MyFramework.h */, - ); - path = Framework; - sourceTree = ""; - }; - G_4793969390202 /* Vendor */ = { - isa = PBXGroup; - children = ( - FR_229826849033 /* SomeXPCService.xpc */, - ); - path = Vendor; - sourceTree = ""; - }; - G_5070234922517 /* App_watchOS Extension */ = { - isa = PBXGroup; - children = ( - FR_987043315473 /* Assets.xcassets */, - FR_340586388409 /* ExtensionDelegate.swift */, - FR_530852296303 /* Info.plist */, - FR_363921640403 /* InterfaceController.swift */, - FR_304712043717 /* NotificationController.swift */, - FR_748548478992 /* PushNotificationPayload.apns */, - ); - path = "App_watchOS Extension"; - sourceTree = ""; - }; - G_5938599606592 /* Module */ = { - isa = PBXGroup; - children = ( - FR_665156855283 /* module.modulemap */, + 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */, ); path = Module; sourceTree = ""; }; - G_6651250437419 /* StandaloneFiles */ = { + 09F7EC373CEDA69072DC9D77495F0E25 /* App_iOS_UITests */ = { isa = PBXGroup; children = ( - FR_675266829517 /* Standalone.swift */, - FR_408537768279 /* StandaloneAssets.xcassets */, + 31F27C0F2868434258A846C4ADE4B35A /* Info.plist */, + 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */, ); - path = StandaloneFiles; + path = App_iOS_UITests; sourceTree = ""; }; - G_7189434949822 /* Resources */ = { + 17999F76E13B84D118972DC03BCEA6F2 /* App_iOS_Tests */ = { isa = PBXGroup; children = ( - FR_238161558082 /* MyBundle.bundle */, - ); - path = Resources; - sourceTree = ""; - }; - G_7831228999101 /* App_iOS_Tests */ = { - isa = PBXGroup; - children = ( - FR_655678458041 /* Info.plist */, - FR_722239415598 /* TestProjectTests.swift */, + BD07DCE20104773C42E7617A09A55BD5 /* Info.plist */, + 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */, ); path = App_iOS_Tests; sourceTree = ""; }; - G_8030722683864 /* UnderFileGroup */ = { + 1AAEB7BBE834CAB4A205069AE3E0AF11 /* Frameworks */ = { isa = PBXGroup; children = ( - FR_196911129660 /* MoreUnder.swift */, + F4476AACF02F14D7CACC61F1763C176B /* Carthage */, + 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */, ); - path = UnderFileGroup; + name = Frameworks; sourceTree = ""; }; - G_8244488572839 /* watchOS */ = { + 215025EF88E84A49861B7B0A717D575C /* Configs */ = { isa = PBXGroup; children = ( - FR_752394658615 /* Alamofire.framework */, + 0BFEFFB973F5EEEF285D98AB90CFC9B0 /* base.xcconfig */, + C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */, ); - path = watchOS; + path = Configs; sourceTree = ""; }; - G_8252321105004 /* App */ = { + 384C5FF5A3C798619B2A3F5A9C654EE3 /* Resources */ = { isa = PBXGroup; children = ( - FR_854336462818 /* AppDelegate.swift */, - FR_868653349092 /* Assets.xcassets */, - FR_725187762757 /* Info.plist */, - VG_256263906698 /* LaunchScreen.storyboard */, - VG_473000061463 /* Localizable.strings */, - VG_746876637628 /* Localizable.stringsdict */, - VG_118219888726 /* LocalizedStoryboard.storyboard */, - VG_609193904586 /* Main.storyboard */, - VG_229021855709 /* Model.xcdatamodeld */, - FR_461737784133 /* module.modulemap */, - FR_481575785861 /* ViewController.swift */, + C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */, + ); + path = Resources; + sourceTree = ""; + }; + 4AD39BFA18B0D81C8C8BA3425FE6E91A /* Framework */ = { + isa = PBXGroup; + children = ( + 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */, + 25F603F3FBBAB0B8947331C9190A6282 /* Info.plist */, + 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */, + ); + path = Framework; + sourceTree = ""; + }; + 56936C3686A0928B34562E16F94536C8 /* App_watchOS */ = { + isa = PBXGroup; + children = ( + 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */, + 88CE11E8D928D43BCC70F12A5576D511 /* Info.plist */, + C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */, + ); + path = App_watchOS; + sourceTree = ""; + }; + 5BC30B8BA34DE0A67196277EA184BAAC /* CopyFiles */ = { + isa = PBXGroup; + children = ( + 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */, + ); + path = CopyFiles; + sourceTree = ""; + }; + 61FC1E8D4842FD2FBD2E37F067E943F9 /* iOS */ = { + isa = PBXGroup; + children = ( + 6237064EDBE405135BC1CE7DE20A131C /* Alamofire.framework */, + ); + path = iOS; + sourceTree = ""; + }; + 63A2C5F06E17FA2652DDA338F0A32501 /* StaticLibrary_ObjC */ = { + isa = PBXGroup; + children = ( + 0637537049544BDB5A2EB886E765A6C8 /* Module */, + 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */, + B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */, + ); + path = StaticLibrary_ObjC; + sourceTree = ""; + }; + 874A71D4E37BA319FD212D21173C1CED /* iMessage MessagesExtension */ = { + isa = PBXGroup; + children = ( + 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */, + 72AE3D8A409EF0F4D17EA0BD0EC3BFFA /* Info.plist */, + 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */, + 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */, + ); + path = "iMessage MessagesExtension"; + sourceTree = ""; + }; + B2AA9B645D928F657D399D8F62BB4DDC /* App_watchOS Extension */ = { + isa = PBXGroup; + children = ( + 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */, + B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */, + AFDDC1A69B4B2637D36C39EE01DF23C3 /* Info.plist */, + 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */, + 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */, + 11DBDC38AD04D9F24454201311335431 /* PushNotificationPayload.apns */, + ); + path = "App_watchOS Extension"; + sourceTree = ""; + }; + BA50A516F5BBC843E3CD4B1845B99334 /* App */ = { + isa = PBXGroup; + children = ( + 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */, + 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */, + A444869BCBB55167EF043EEFFD075A78 /* Info.plist */, + 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */, + E005A2734C32783354AAB8546A12718B /* Localizable.strings */, + 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */, + 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */, + 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */, + 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */, + 3F8D809984627520BE1811A1AC9B1AD9 /* module.modulemap */, + D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */, ); name = App; path = App_iOS; sourceTree = ""; }; - G_8268950006174 /* iMessage */ = { + BEB2E21F3B6F8B8E6CA0CB877DE3D47D /* Vendor */ = { isa = PBXGroup; children = ( - FR_377082606829 /* Assets.xcassets */, - FR_505327409380 /* Info.plist */, + 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */, + ); + path = Vendor; + sourceTree = ""; + }; + C27E200F9D2708164A4BDD75B7A861BC /* StandaloneFiles */ = { + isa = PBXGroup; + children = ( + 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */, + 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */, + ); + path = StandaloneFiles; + sourceTree = ""; + }; + C30E33740CB17218735DAE1FFFC565AE /* FileGroup */ = { + isa = PBXGroup; + children = ( + D81BDF703E98A5351121B96103BD52A6 /* UnderFileGroup */, + ); + path = FileGroup; + sourceTree = ""; + }; + D59738133ECA1ACC9C32CAD22FBEF0F4 /* StaticLibrary_Swift */ = { + isa = PBXGroup; + children = ( + 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */, + ); + path = StaticLibrary_Swift; + sourceTree = ""; + }; + D81BDF703E98A5351121B96103BD52A6 /* UnderFileGroup */ = { + isa = PBXGroup; + children = ( + 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */, + ); + path = UnderFileGroup; + sourceTree = ""; + }; + DA18B6EB7FF6E1DAACDFA5EB93833C54 /* watchOS */ = { + isa = PBXGroup; + children = ( + 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */, + ); + path = watchOS; + sourceTree = ""; + }; + E0B77C999E8E6D192A135A06E7331C27 /* Mac */ = { + isa = PBXGroup; + children = ( + 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */, + ); + path = Mac; + sourceTree = ""; + }; + ECD23E49A0CA25E14EC0D028673840D6 /* iMessage */ = { + isa = PBXGroup; + children = ( + EF485495979F5EF324B541071E00D33B /* Assets.xcassets */, + 2923CD786EB965107819EFF08193E672 /* Info.plist */, ); path = iMessage; sourceTree = ""; }; - G_8340618952527 /* Configs */ = { + EDFE6B7A5CE9583846B704EE371675F2 = { isa = PBXGroup; children = ( - FR_635802719871 /* base.xcconfig */, - FR_660690926982 /* config.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - G_8448771205358 = { - isa = PBXGroup; - children = ( - G_8252321105004 /* App */, - G_7831228999101 /* App_iOS_Tests */, - G_1235039993875 /* App_iOS_UITests */, - G_3246710779368 /* App_watchOS */, - G_5070234922517 /* App_watchOS Extension */, - G_8340618952527 /* Configs */, - G_1885780145626 /* CopyFiles */, - G_3234630030493 /* FileGroup */, - G_4661500274312 /* Framework */, - G_8268950006174 /* iMessage */, - G_1646573205915 /* iMessage MessagesExtension */, - G_7189434949822 /* Resources */, - G_6651250437419 /* StandaloneFiles */, - G_3997550084026 /* StaticLibrary_ObjC */, - G_4371791668439 /* StaticLibrary_Swift */, - G_4793969390202 /* Vendor */, - G_3765690547864 /* XPC Service */, - FR_479281060337 /* Folder */, - FR_815403394914 /* Headers */, - FR_232605427418 /* Mintfile */, - FR_257073931060 /* ResourceFolder */, - FR_775316160345 /* SomeFile */, - G_1952740716080 /* Frameworks */, - G_8620238527590 /* Products */, + BA50A516F5BBC843E3CD4B1845B99334 /* App */, + 17999F76E13B84D118972DC03BCEA6F2 /* App_iOS_Tests */, + 09F7EC373CEDA69072DC9D77495F0E25 /* App_iOS_UITests */, + 56936C3686A0928B34562E16F94536C8 /* App_watchOS */, + B2AA9B645D928F657D399D8F62BB4DDC /* App_watchOS Extension */, + 215025EF88E84A49861B7B0A717D575C /* Configs */, + 5BC30B8BA34DE0A67196277EA184BAAC /* CopyFiles */, + C30E33740CB17218735DAE1FFFC565AE /* FileGroup */, + 4AD39BFA18B0D81C8C8BA3425FE6E91A /* Framework */, + ECD23E49A0CA25E14EC0D028673840D6 /* iMessage */, + 874A71D4E37BA319FD212D21173C1CED /* iMessage MessagesExtension */, + 384C5FF5A3C798619B2A3F5A9C654EE3 /* Resources */, + C27E200F9D2708164A4BDD75B7A861BC /* StandaloneFiles */, + 63A2C5F06E17FA2652DDA338F0A32501 /* StaticLibrary_ObjC */, + D59738133ECA1ACC9C32CAD22FBEF0F4 /* StaticLibrary_Swift */, + BEB2E21F3B6F8B8E6CA0CB877DE3D47D /* Vendor */, + F37F48EF1C25643F0E408DC3E115895A /* XPC Service */, + FFA022D59DE3CD80EDCC5CCEC6DB29C7 /* Folder */, + 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */, + 7AF3ACEAC55D3B6352EED8415D5B2951 /* Mintfile */, + 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */, + 247D8122E426D1FC239D36918CE3C0C5 /* SomeFile */, + 1AAEB7BBE834CAB4A205069AE3E0AF11 /* Frameworks */, + FC1E35057FBB1EE0597B70D0D9EDF4EE /* Products */, ); indentWidth = 2; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; - G_8620238527590 /* Products */ = { + EF06950CAC36EBAD861CAD7CA561D440 /* tvOS */ = { isa = PBXGroup; children = ( - FR_783122899910 /* App_iOS_Tests.xctest */, - FR_123503999387 /* App_iOS_UITests.xctest */, - FR_825232110500 /* App_iOS.app */, - FR_480982116789 /* App_macOS.app */, - FR_507023492251 /* App_watchOS Extension.appex */, - FR_324671077936 /* App_watchOS.app */, - FR_525119120469 /* Framework.framework */, - FR_662315837182 /* Framework.framework */, - FR_438704538506 /* Framework.framework */, - FR_472296042419 /* Framework.framework */, - FR_935153865209 /* iMessageApp.app */, - FR_618687462494 /* iMessageExtension.appex */, - FR_399755008402 /* StaticLibrary_ObjC.a */, - FR_437179166843 /* StaticLibrary_Swift.a */, - FR_376569054786 /* XPC Service.xpc */, - ); - name = Products; - sourceTree = ""; - }; - G_8628897169668 /* tvOS */ = { - isa = PBXGroup; - children = ( - FR_452853029807 /* Alamofire.framework */, + F9C71345D3886B5E2221F4441BD871D5 /* Alamofire.framework */, ); path = tvOS; sourceTree = ""; }; + F37F48EF1C25643F0E408DC3E115895A /* XPC Service */ = { + isa = PBXGroup; + children = ( + 8AFEF032B9B258B97EFBD5B5AA741E8C /* Info.plist */, + AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */, + 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */, + 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */, + F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */, + ); + path = "XPC Service"; + sourceTree = ""; + }; + F4476AACF02F14D7CACC61F1763C176B /* Carthage */ = { + isa = PBXGroup; + children = ( + 61FC1E8D4842FD2FBD2E37F067E943F9 /* iOS */, + E0B77C999E8E6D192A135A06E7331C27 /* Mac */, + EF06950CAC36EBAD861CAD7CA561D440 /* tvOS */, + DA18B6EB7FF6E1DAACDFA5EB93833C54 /* watchOS */, + ); + name = Carthage; + path = Carthage/Build; + sourceTree = ""; + }; + FC1E35057FBB1EE0597B70D0D9EDF4EE /* Products */ = { + isa = PBXGroup; + children = ( + C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */, + EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */, + 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */, + AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */, + 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */, + CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */, + E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, + E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, + E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, + E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, + D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */, + 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */, + 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */, + 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */, + DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */, + ); + name = Products; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - HBP_43870453850 /* Headers */ = { + 440F7F1F9382CEDD92D75B89E25552D5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BF_239684316986 /* Headers in Headers */, - BF_813358525536 /* MyFramework.h in Headers */, + E249D28B974B22ED41B7BAE7A1CC7468 /* Headers in Headers */, + 486E2AABDE448C496C0FCC393A35E669 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - HBP_47229604241 /* Headers */ = { + 9C424B9F3AFC563C6A6CE8FA124F8801 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BF_510053944904 /* Headers in Headers */, - BF_425679397292 /* MyFramework.h in Headers */, + FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */, + 6013ED0F37BB222A6B44D0CB89CE69AE /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - HBP_52511912046 /* Headers */ = { + A08871F94C4ADE4FF10D349F4ECC06C9 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BF_905617636654 /* Headers in Headers */, - BF_496472559782 /* MyFramework.h in Headers */, + 44B62E9C097529F3D5C7A44A5F777A61 /* Headers in Headers */, + 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - HBP_66231583718 /* Headers */ = { + B6AA01763EF8349E60D1FA4E652778F3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BF_259448131292 /* Headers in Headers */, - BF_734036107922 /* MyFramework.h in Headers */, + 702E56BFA3B2A830E24D74FCA3A33D55 /* Headers in Headers */, + 8CF2462D2181DDDA1A8E8A1F176F9A47 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXLegacyTarget section */ - LT_479264660374 /* Legacy */ = { + D47258787A296733EB9A496796369EDC /* Legacy */ = { isa = PBXLegacyTarget; - buildConfigurationList = CL_479264660374 /* Build configuration list for PBXLegacyTarget "Legacy" */; + buildConfigurationList = 7523052A5C96494802A0431E05947F67 /* Build configuration list for PBXLegacyTarget "Legacy" */; buildPhases = ( - SBP_47926466037 /* Sources */, + 634CFCBFE3760F2A0288F1BF42B66FF9 /* Sources */, ); buildToolPath = /usr/bin/true; dependencies = ( @@ -857,191 +854,87 @@ /* End PBXLegacyTarget section */ /* Begin PBXNativeTarget section */ - NT_123503999387 /* App_iOS_UITests */ = { + 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_123503999387 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; + buildConfigurationList = 59C3AA3AEA5802DA17DF9B42615D9B6B /* Build configuration list for PBXNativeTarget "iMessageApp" */; buildPhases = ( - SBP_12350399938 /* Sources */, - CFBP_4082141876 /* Embed Frameworks */, + 1C8F955BEA261BDB36838B408C2D7D23 /* Sources */, + DFB4932D20872BF046F9902EB430C6B6 /* Resources */, + 8C62857F0DCEBB22C299F26FCCE769F9 /* Embed App Extensions */, ); buildRules = ( ); dependencies = ( - TD_676191581124 /* PBXTargetDependency */, + D976477E0195A8FFD5043C8BBD4B67C4 /* PBXTargetDependency */, ); - name = App_iOS_UITests; - productName = App_iOS_UITests; - productReference = FR_123503999387 /* App_iOS_UITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; + name = iMessageApp; + productName = iMessageApp; + productReference = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; + productType = "com.apple.product-type.application.messages"; }; - NT_324671077936 /* App_watchOS */ = { + 2563A01E1A5E949F2AE1CD7308779FE3 /* Framework_tvOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_324671077936 /* Build configuration list for PBXNativeTarget "App_watchOS" */; + buildConfigurationList = 0AA719054B034D653457F3861CE722A9 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; buildPhases = ( - SBP_32467107793 /* Sources */, - RBP_32467107793 /* Resources */, - FBP_32467107793 /* Frameworks */, - CFBP_4684049960 /* Embed App Extensions */, - SSBP_5954948530 /* Carthage */, + E74DACDAB11D89D5B824405B81E48D89 /* Sources */, + B6AA01763EF8349E60D1FA4E652778F3 /* Headers */, + C79A51DBA8AF7631AEF22BA83E104A04 /* Frameworks */, + ADF413AF548A97CB33898BB4F6211314 /* MyScript */, ); buildRules = ( ); dependencies = ( - TD_193291182921 /* PBXTargetDependency */, + 63D97355ECD5B9E4B835338653920BC1 /* PBXTargetDependency */, ); - name = App_watchOS; - productName = App_watchOS; - productReference = FR_324671077936 /* App_watchOS.app */; - productType = "com.apple.product-type.application.watchapp2"; + name = Framework_tvOS; + productName = Framework_tvOS; + productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; + productType = "com.apple.product-type.framework"; }; - NT_376569054786 /* XPC Service */ = { + 347AE2E7B939A276DEE77148A708FDE4 /* Framework_watchOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_376569054786 /* Build configuration list for PBXNativeTarget "XPC Service" */; + buildConfigurationList = CCF68725DCD5EF7FD03872D0B98C32F0 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; buildPhases = ( - SBP_37656905478 /* Sources */, + A0301004CBF36C0004B23102202FA9FE /* Sources */, + 9C424B9F3AFC563C6A6CE8FA124F8801 /* Headers */, + F6C2490C6497837A21966090C77C3602 /* Frameworks */, + DABB7DFD3C5DB4EAC8C5D24C79EA4E35 /* MyScript */, ); buildRules = ( ); dependencies = ( - ); - name = "XPC Service"; - productName = "XPC Service"; - productReference = FR_376569054786 /* XPC Service.xpc */; - productType = "com.apple.product-type.xpc-service"; - }; - NT_399755008402 /* StaticLibrary_ObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_399755008402 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */; - buildPhases = ( - SBP_39975500840 /* Sources */, - CFBP_3265670993 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_ObjC; - productName = StaticLibrary_ObjC; - productReference = FR_399755008402 /* StaticLibrary_ObjC.a */; - productType = "com.apple.product-type.library.static"; - }; - NT_437179166843 /* StaticLibrary_Swift */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_437179166843 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */; - buildPhases = ( - SBP_43717916684 /* Sources */, - SSBP_5390042403 /* Copy Swift Objective-C Interface Header */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_Swift; - productName = StaticLibrary_Swift; - productReference = FR_437179166843 /* StaticLibrary_Swift.a */; - productType = "com.apple.product-type.library.static"; - }; - NT_438704538506 /* Framework_watchOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_438704538506 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; - buildPhases = ( - HBP_43870453850 /* Headers */, - SBP_43870453850 /* Sources */, - FBP_43870453850 /* Frameworks */, - SSBP_2467869845 /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - TD_784412347908 /* PBXTargetDependency */, + 7E5A83C554576126BB5DB76070940A42 /* PBXTargetDependency */, ); name = Framework_watchOS; productName = Framework_watchOS; - productReference = FR_438704538506 /* Framework.framework */; + productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; - NT_472296042419 /* Framework_iOS */ = { + 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_472296042419 /* Build configuration list for PBXNativeTarget "Framework_iOS" */; + buildConfigurationList = 9BA95DBD7B862EE1F43DC68338281D0E /* Build configuration list for PBXNativeTarget "Framework_macOS" */; buildPhases = ( - HBP_47229604241 /* Headers */, - SBP_47229604241 /* Sources */, - FBP_47229604241 /* Frameworks */, - SSBP_3886691194 /* MyScript */, + 1411E21883A09388E140C6D123029288 /* Sources */, + A08871F94C4ADE4FF10D349F4ECC06C9 /* Headers */, + 266AF93F95F8ECC5F62E443DD79D4263 /* Frameworks */, + 78EF33E6A08B3BB88D8805DC3588843C /* MyScript */, ); buildRules = ( ); dependencies = ( - TD_667455552356 /* PBXTargetDependency */, - ); - name = Framework_iOS; - productName = Framework_iOS; - productReference = FR_472296042419 /* Framework.framework */; - productType = "com.apple.product-type.framework"; - }; - NT_480982116789 /* App_macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_480982116789 /* Build configuration list for PBXNativeTarget "App_macOS" */; - buildPhases = ( - SBP_48098211678 /* Sources */, - CFBP_8368933518 /* CopyFiles */, - FBP_48098211678 /* Frameworks */, - CFBP_4930089528 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - TD_235580504123 /* PBXTargetDependency */, - TD_629038784927 /* PBXTargetDependency */, - TD_743784992411 /* PBXTargetDependency */, - ); - name = App_macOS; - productName = App_macOS; - productReference = FR_480982116789 /* App_macOS.app */; - productType = "com.apple.product-type.application"; - }; - NT_507023492251 /* App_watchOS Extension */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_507023492251 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */; - buildPhases = ( - SBP_50702349225 /* Sources */, - RBP_50702349225 /* Resources */, - FBP_50702349225 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "App_watchOS Extension"; - productName = "App_watchOS Extension"; - productReference = FR_507023492251 /* App_watchOS Extension.appex */; - productType = "com.apple.product-type.watchkit2-extension"; - }; - NT_525119120469 /* Framework_macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_525119120469 /* Build configuration list for PBXNativeTarget "Framework_macOS" */; - buildPhases = ( - HBP_52511912046 /* Headers */, - SBP_52511912046 /* Sources */, - FBP_52511912046 /* Frameworks */, - SSBP_8255377629 /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - TD_337103940101 /* PBXTargetDependency */, + B7FA3A9932789DFBE8BEDD648C9424B2 /* PBXTargetDependency */, ); name = Framework_macOS; productName = Framework_macOS; - productReference = FR_525119120469 /* Framework.framework */; + productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; - NT_618687462494 /* iMessageExtension */ = { + 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */; + buildConfigurationList = 330B76D4702856DD55067456FD7A4F4A /* Build configuration list for PBXNativeTarget "iMessageExtension" */; buildPhases = ( - SBP_61868746249 /* Sources */, - RBP_61868746249 /* Resources */, + 35714896F7B0D8F151E1A3B4C04AE0DB /* Sources */, + 32ECF2BB5AFA1C4E9A0F6DFE1417110E /* Resources */, ); buildRules = ( ); @@ -1049,113 +942,204 @@ ); name = iMessageExtension; productName = iMessageExtension; - productReference = FR_618687462494 /* iMessageExtension.appex */; + productReference = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; productType = "com.apple.product-type.app-extension.messages"; }; - NT_662315837182 /* Framework_tvOS */ = { + 8CDD0FC5B69DB55054CAECF513716138 /* App_iOS_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_662315837182 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; + buildConfigurationList = 4DF366239AC6F6E9EE59EEA525319ABA /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; buildPhases = ( - HBP_66231583718 /* Headers */, - SBP_66231583718 /* Sources */, - FBP_66231583718 /* Frameworks */, - SSBP_6331376344 /* MyScript */, + E74227370CF6081A47B8C2AB02479899 /* Sources */, + 31035708668339C7624CD18BC4971F27 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - TD_957476409477 /* PBXTargetDependency */, - ); - name = Framework_tvOS; - productName = Framework_tvOS; - productReference = FR_662315837182 /* Framework.framework */; - productType = "com.apple.product-type.framework"; - }; - NT_783122899910 /* App_iOS_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_783122899910 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; - buildPhases = ( - SBP_78312289991 /* Sources */, - CFBP_4626438721 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - TD_887143865471 /* PBXTargetDependency */, + 85A9116EE91FAB1AA6CA20FD4203A941 /* PBXTargetDependency */, ); name = App_iOS_Tests; productName = App_iOS_Tests; - productReference = FR_783122899910 /* App_iOS_Tests.xctest */; + productReference = C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - NT_825232110500 /* App_iOS */ = { + 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_825232110500 /* Build configuration list for PBXNativeTarget "App_iOS" */; + buildConfigurationList = 13FC8BD638A49F585CF46B85EF6E6E4E /* Build configuration list for PBXNativeTarget "App_watchOS" */; buildPhases = ( - SBP_82523211050 /* Sources */, - RBP_82523211050 /* Resources */, - CFBP_7191905390 /* CopyFiles */, - FBP_82523211050 /* Frameworks */, - CFBP_6493932244 /* Embed Frameworks */, - CFBP_2836118931 /* Embed Watch Content */, - SSBP_8106229290 /* Carthage */, - SSBP_5106020372 /* Strip Unused Architectures from Frameworks */, - SSBP_8706434794 /* MyScript */, + 8E6FC06C82186DB3FA95E51EFE18711C /* Sources */, + 24E393E5BC60BE4C18A4E88099C92B0B /* Resources */, + 1D124A23C4D38CE6B023194E85A64BBA /* Frameworks */, + 64735A35127234188A50A9CC433F3D43 /* Embed App Extensions */, + 2F13215A0801F44C3CCF154F3EE02A7B /* Carthage */, ); buildRules = ( ); dependencies = ( - TD_824101787753 /* PBXTargetDependency */, - TD_109724965966 /* PBXTargetDependency */, - TD_721522128177 /* PBXTargetDependency */, - TD_288560876254 /* PBXTargetDependency */, + 586BE274C55FC00DE6BE62A0AAC127F6 /* PBXTargetDependency */, + ); + name = App_watchOS; + productName = App_watchOS; + productReference = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + B145BCFEB550C3DDF48510BB85CDE8DC /* App_iOS_UITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 933D4300D58AA7B25E208357C65F2AD3 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; + buildPhases = ( + D037068D88E7DAEB3A373602EE996609 /* Sources */, + 916C69163E65CD06E8BD0CCC8D8227C2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + A835D5FBAD20741BCF95975E1CD63A7A /* PBXTargetDependency */, + ); + name = App_iOS_UITests; + productName = App_iOS_UITests; + productReference = EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7066464807EABA4728B984B10A24E931 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */; + buildPhases = ( + 6186DB37B6D48F0D14D3C9300D18BE16 /* Sources */, + 8748CD344E8DDE93B221AA670D93DA94 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC; + productName = StaticLibrary_ObjC; + productReference = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; + CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = FC084246C395F08CB12677620BAF2399 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */; + buildPhases = ( + 910907240480D0AFBF32A79A4008D866 /* Sources */, + 918FF44B84209799C8ECD292189E6D55 /* Resources */, + 78E2554EF343D4CF421577E8651E5480 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "App_watchOS Extension"; + productName = "App_watchOS Extension"; + productReference = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; + D20DB1C7D23BB53FF8FD09BAF451A294 /* StaticLibrary_Swift */ = { + isa = PBXNativeTarget; + buildConfigurationList = F40A414D7A0A13368AC9FB64BA5C73AC /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */; + buildPhases = ( + A305A9C4673244353334E95DCDFD735D /* Sources */, + 06FB4F63AAEECCDD060382A3AF8AEF4B /* Copy Swift Objective-C Interface Header */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_Swift; + productName = StaticLibrary_Swift; + productReference = 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */; + productType = "com.apple.product-type.library.static"; + }; + DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5B1322FEBB7A746BD1BF9227D37A7421 /* Build configuration list for PBXNativeTarget "App_iOS" */; + buildPhases = ( + 1C758FAD884F96BE234FBB1BBE295E97 /* Sources */, + FEFBCD77CD631C182084B94EC52BEE33 /* Resources */, + FE39362C1CB6263D81609FF7975359EE /* CopyFiles */, + 3730EBC6001089E597081CA9CF12AF52 /* Frameworks */, + 1130301AAAB06CA6AE2DBC09B9F82B74 /* Embed Frameworks */, + 800C402270322E33CF2C5DBBAE32DD06 /* Embed Watch Content */, + 712CA3288AD8B0F43FAA19930C53500B /* Carthage */, + 974A437754992A1B4A30613EC766AE2C /* Strip Unused Architectures from Frameworks */, + 70D0BCF93538A104153586A9BF269386 /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + 10B5BED93CB8C9A5B7BB81E996C7F071 /* PBXTargetDependency */, + 5189C5E269DD98A187BF59169A4FC1D1 /* PBXTargetDependency */, + FA8E2412D27AAD48D0F75809A484D599 /* PBXTargetDependency */, + 16156D2E07BFBB09D5921589B483FF23 /* PBXTargetDependency */, ); name = App_iOS; productName = App_iOS; - productReference = FR_825232110500 /* App_iOS.app */; + productReference = 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */; productType = "com.apple.product-type.application"; }; - NT_935153865209 /* iMessageApp */ = { + E165F00BB866D2A7087C93650EDB1138 /* App_macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = CL_935153865209 /* Build configuration list for PBXNativeTarget "iMessageApp" */; + buildConfigurationList = 837376727FE2CF4AE46785F0E9561ED1 /* Build configuration list for PBXNativeTarget "App_macOS" */; buildPhases = ( - SBP_93515386520 /* Sources */, - RBP_93515386520 /* Resources */, - CFBP_5460766702 /* Embed App Extensions */, + 25185271EDE7FEEC99372505A683359C /* Sources */, + 0B85189BAB2D1568EECF81226FF3FF97 /* CopyFiles */, + C8CA7D5902F866D50BF6F9A24BF1D10A /* Frameworks */, + DBC722FD0EE319959445B8F14D3EE091 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - TD_317921131342 /* PBXTargetDependency */, + BCAEBFE2D144CD4E9F4042CB793B6FFB /* PBXTargetDependency */, + 8583B3541D71924D376A891CCAD90C80 /* PBXTargetDependency */, + 632C4C9ABCE4E550CC5CC6F87B5C4DBD /* PBXTargetDependency */, ); - name = iMessageApp; - productName = iMessageApp; - productReference = FR_935153865209 /* iMessageApp.app */; - productType = "com.apple.product-type.application.messages"; + name = App_macOS; + productName = App_macOS; + productReference = AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */; + productType = "com.apple.product-type.application"; + }; + F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */ = { + isa = PBXNativeTarget; + buildConfigurationList = 526C1EB2E50CDBABCB448EE2FDF2E5D8 /* Build configuration list for PBXNativeTarget "XPC Service" */; + buildPhases = ( + E32AAD525623BF5008484D641327F1AD /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "XPC Service"; + productName = "XPC Service"; + productReference = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; + productType = "com.apple.product-type.xpc-service"; + }; + FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = ABBCABD06AD7666C13DD9BAF0C16276E /* Build configuration list for PBXNativeTarget "Framework_iOS" */; + buildPhases = ( + AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */, + 440F7F1F9382CEDD92D75B89E25552D5 /* Headers */, + 6F3C985C6701880E8731C4AAFBDC9FEF /* Frameworks */, + 2983C9312429A22DF5437C4020B9937E /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + 0F0F18C8C8E08CF4C25A4DA89DB09A3A /* PBXTargetDependency */, + ); + name = Framework_iOS; + productName = Framework_iOS; + productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - P_8448771205358 /* Project object */ = { + 48BA824E9883B72747F77581255D9C94 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0930; - TargetAttributes = { - AT_445731917037 = { - CUSTOM = value; - }; - NT_123503999387 = { - TestTargetID = NT_825232110500; - }; - NT_480982116789 = { - ProvisioningStyle = Automatic; - }; - NT_825232110500 = { - ProvisioningStyle = Automatic; - }; - }; + TargetAttributes = "[xcodeproj.PBXObjectReference: [\"TestTargetID\": xcodeproj.PBXObjectReference], xcodeproj.PBXObjectReference: [\"CUSTOM\": \"value\"], xcodeproj.PBXObjectReference: [\"ProvisioningStyle\": \"Automatic\"], xcodeproj.PBXObjectReference: [\"ProvisioningStyle\": \"Automatic\"]]"; }; - buildConfigurationList = CL_844877120535 /* Build configuration list for PBXProject "Project" */; + buildConfigurationList = 0D5965C1A1D5123D687DA32AC9B957F8 /* Build configuration list for PBXProject "Project" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = en; hasScannedForEncodings = 0; @@ -1163,129 +1147,87 @@ Base, en, ); - mainGroup = G_8448771205358; + mainGroup = EDFE6B7A5CE9583846B704EE371675F2; projectDirPath = ""; projectRoot = ""; targets = ( - NT_825232110500 /* App_iOS */, - NT_783122899910 /* App_iOS_Tests */, - NT_123503999387 /* App_iOS_UITests */, - NT_480982116789 /* App_macOS */, - NT_324671077936 /* App_watchOS */, - NT_507023492251 /* App_watchOS Extension */, - NT_472296042419 /* Framework_iOS */, - NT_525119120469 /* Framework_macOS */, - NT_662315837182 /* Framework_tvOS */, - NT_438704538506 /* Framework_watchOS */, - LT_479264660374 /* Legacy */, - NT_399755008402 /* StaticLibrary_ObjC */, - NT_437179166843 /* StaticLibrary_Swift */, - AT_445731917037 /* SuperTarget */, - NT_376569054786 /* XPC Service */, - NT_935153865209 /* iMessageApp */, - NT_618687462494 /* iMessageExtension */, + DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */, + 8CDD0FC5B69DB55054CAECF513716138 /* App_iOS_Tests */, + B145BCFEB550C3DDF48510BB85CDE8DC /* App_iOS_UITests */, + E165F00BB866D2A7087C93650EDB1138 /* App_macOS */, + 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */, + CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */, + FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */, + 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */, + 2563A01E1A5E949F2AE1CD7308779FE3 /* Framework_tvOS */, + 347AE2E7B939A276DEE77148A708FDE4 /* Framework_watchOS */, + D47258787A296733EB9A496796369EDC /* Legacy */, + C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */, + D20DB1C7D23BB53FF8FD09BAF451A294 /* StaticLibrary_Swift */, + AB59C0690172FF119F045336C1F1CA0D /* SuperTarget */, + F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */, + 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */, + 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - RBP_32467107793 /* Resources */ = { + 24E393E5BC60BE4C18A4E88099C92B0B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_268392110450 /* Assets.xcassets in Resources */, - BF_612351978356 /* Interface.storyboard in Resources */, + 5163749E505B01D5ACB99C653525D046 /* Assets.xcassets in Resources */, + 370B3DF5D5741094E48BE3C0E00B68E7 /* Interface.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - RBP_50702349225 /* Resources */ = { + 32ECF2BB5AFA1C4E9A0F6DFE1417110E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_237760701422 /* Assets.xcassets in Resources */, + 7C2B87BE6AEC5813069E896736FA68A3 /* Assets.xcassets in Resources */, + 9F2CA54E38CDF41C367FAC8E304AF4C5 /* MainInterface.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - RBP_61868746249 /* Resources */ = { + 918FF44B84209799C8ECD292189E6D55 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_182635022050 /* Assets.xcassets in Resources */, - BF_828878846239 /* MainInterface.storyboard in Resources */, + 3E8A30F173DFFDBDDD0EBDA2D21A0D77 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - RBP_82523211050 /* Resources */ = { + DFB4932D20872BF046F9902EB430C6B6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_279581961655 /* Assets.xcassets in Resources */, - BF_538515166673 /* LaunchScreen.storyboard in Resources */, - BF_211435872001 /* Localizable.strings in Resources */, - BF_314868376788 /* Localizable.stringsdict in Resources */, - BF_186245454304 /* LocalizedStoryboard.storyboard in Resources */, - BF_280535243540 /* Main.storyboard in Resources */, - BF_284620660317 /* MyBundle.bundle in Resources */, - BF_721498080533 /* ResourceFolder in Resources */, - BF_860391087135 /* StandaloneAssets.xcassets in Resources */, - BF_647038614509 /* iMessageApp.app in Resources */, + C5DD61FED061701F52A2AE59334C3964 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - RBP_93515386520 /* Resources */ = { + FEFBCD77CD631C182084B94EC52BEE33 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_334321520545 /* Assets.xcassets in Resources */, + D9338C1374B8F82194B44B6F73075123 /* Assets.xcassets in Resources */, + 2CCCB0657766F9F9527F77A9F42AAF9E /* LaunchScreen.storyboard in Resources */, + 3243ACA306AD909C8186921F288640DB /* Localizable.strings in Resources */, + DB95C341F44FE1E093C948F4F734515B /* Localizable.stringsdict in Resources */, + 3D49538E97F4592012896021971B0166 /* LocalizedStoryboard.storyboard in Resources */, + 7AE6DE3A93E56909084D4F93795B3C93 /* Main.storyboard in Resources */, + 809CDDAA142679CDCFCF376C9CA71C09 /* MyBundle.bundle in Resources */, + BE38983978B6D70795D2924F52F3081D /* ResourceFolder in Resources */, + AA5AF277386012CD6CC015073239E50F /* StandaloneAssets.xcassets in Resources */, + 5A6137039176A4E48CF6B399372D56EA /* iMessageApp.app in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - SSBP_2467869845 /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"You ran a script\"\n"; - }; - SSBP_3886691194 /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"You ran a script\"\n"; - }; - SSBP_5106020372 /* Strip Unused Architectures from Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Strip Unused Architectures from Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "################################################################################\n#\n# Copyright 2015 Realm Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n################################################################################\n\n# This script strips all non-valid architectures from dynamic libraries in\n# the application's `Frameworks` directory.\n#\n# The following environment variables are required:\n#\n# BUILT_PRODUCTS_DIR\n# FRAMEWORKS_FOLDER_PATH\n# VALID_ARCHS\n# EXPANDED_CODE_SIGN_IDENTITY\n\n\n# Signs a framework with the provided identity\ncode_sign() {\n # Use the current code_sign_identitiy\n echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1\"\n /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"\n}\n\n# Set working directory to product’s embedded frameworks\ncd \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nif [ \"$ACTION\" = \"install\" ]; then\n echo \"Copy .bcsymbolmap files to .xcarchive\"\n find . -name '*.bcsymbolmap' -type f -exec mv {} \"${CONFIGURATION_BUILD_DIR}\" \\;\nelse\n # Delete *.bcsymbolmap files from framework bundle unless archiving\n find . -name '*.bcsymbolmap' -type f -exec rm -rf \"{}\" +\\;\nfi\n\necho \"Stripping frameworks\"\n\nfor file in $(find . -type f -perm +111); do\n # Skip non-dynamic libraries\n if ! [[ \"$(file \"$file\")\" == *\"dynamically linked shared library\"* ]]; then\n continue\n fi\n # Get architectures for current file\n archs=\"$(lipo -info \"${file}\" | rev | cut -d ':' -f1 | rev)\"\n stripped=\"\"\n for arch in $archs; do\n if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n # Strip non-valid architectures in-place\n lipo -remove \"$arch\" -output \"$file\" \"$file\" || exit 1\n stripped=\"$stripped $arch\"\n fi\n done\n if [[ \"$stripped\" != \"\" ]]; then\n echo \"Stripped $file of architectures:$stripped\"\n if [ \"${CODE_SIGNING_REQUIRED}\" == \"YES\" ]; then\n code_sign \"${file}\"\n fi\n fi\ndone\n"; - }; - SSBP_5390042403 /* Copy Swift Objective-C Interface Header */ = { + 06FB4F63AAEECCDD060382A3AF8AEF4B /* Copy Swift Objective-C Interface Header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1301,7 +1243,21 @@ shellPath = /bin/sh; shellScript = "ditto \"${SCRIPT_INPUT_FILE_0}\" \"${SCRIPT_OUTPUT_FILE_0}\"\n"; }; - SSBP_5954948530 /* Carthage */ = { + 2983C9312429A22DF5437C4020B9937E /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script\"\n"; + }; + 2F13215A0801F44C3CCF154F3EE02A7B /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1317,7 +1273,7 @@ shellPath = /bin/sh; shellScript = "carthage copy-frameworks\n"; }; - SSBP_6331376344 /* MyScript */ = { + 69E4B11A07FF06F8306B5646CA2403EF /* MyScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1329,9 +1285,23 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "echo \"You ran a script\"\n"; + shellScript = "echo \"do the thing\""; }; - SSBP_8106229290 /* Carthage */ = { + 70D0BCF93538A104153586A9BF269386 /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script!\"\n"; + }; + 712CA3288AD8B0F43FAA19930C53500B /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1347,7 +1317,7 @@ shellPath = /bin/sh; shellScript = "carthage copy-frameworks\n"; }; - SSBP_8255377629 /* MyScript */ = { + 78EF33E6A08B3BB88D8805DC3588843C /* MyScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1361,21 +1331,21 @@ shellPath = /bin/sh; shellScript = "echo \"You ran a script\"\n"; }; - SSBP_8280041834 /* MyScript */ = { + 974A437754992A1B4A30613EC766AE2C /* Strip Unused Architectures from Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = MyScript; + name = "Strip Unused Architectures from Frameworks"; outputPaths = ( ); - runOnlyForDeploymentPostprocessing = 0; + runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; - shellScript = "echo \"do the thing\""; + shellScript = "################################################################################\n#\n# Copyright 2015 Realm Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n################################################################################\n\n# This script strips all non-valid architectures from dynamic libraries in\n# the application's `Frameworks` directory.\n#\n# The following environment variables are required:\n#\n# BUILT_PRODUCTS_DIR\n# FRAMEWORKS_FOLDER_PATH\n# VALID_ARCHS\n# EXPANDED_CODE_SIGN_IDENTITY\n\n\n# Signs a framework with the provided identity\ncode_sign() {\n # Use the current code_sign_identitiy\n echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1\"\n /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"\n}\n\n# Set working directory to product’s embedded frameworks\ncd \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nif [ \"$ACTION\" = \"install\" ]; then\n echo \"Copy .bcsymbolmap files to .xcarchive\"\n find . -name '*.bcsymbolmap' -type f -exec mv {} \"${CONFIGURATION_BUILD_DIR}\" \\;\nelse\n # Delete *.bcsymbolmap files from framework bundle unless archiving\n find . -name '*.bcsymbolmap' -type f -exec rm -rf \"{}\" +\\;\nfi\n\necho \"Stripping frameworks\"\n\nfor file in $(find . -type f -perm +111); do\n # Skip non-dynamic libraries\n if ! [[ \"$(file \"$file\")\" == *\"dynamically linked shared library\"* ]]; then\n continue\n fi\n # Get architectures for current file\n archs=\"$(lipo -info \"${file}\" | rev | cut -d ':' -f1 | rev)\"\n stripped=\"\"\n for arch in $archs; do\n if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n # Strip non-valid architectures in-place\n lipo -remove \"$arch\" -output \"$file\" \"$file\" || exit 1\n stripped=\"$stripped $arch\"\n fi\n done\n if [[ \"$stripped\" != \"\" ]]; then\n echo \"Stripped $file of architectures:$stripped\"\n if [ \"${CODE_SIGNING_REQUIRED}\" == \"YES\" ]; then\n code_sign \"${file}\"\n fi\n fi\ndone\n"; }; - SSBP_8706434794 /* MyScript */ = { + ADF413AF548A97CB33898BB4F6211314 /* MyScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1387,538 +1357,311 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "echo \"You ran a script!\"\n"; + shellScript = "echo \"You ran a script\"\n"; + }; + DABB7DFD3C5DB4EAC8C5D24C79EA4E35 /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script\"\n"; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - SBP_12350399938 /* Sources */ = { + 1411E21883A09388E140C6D123029288 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_167705969896 /* TestProjectUITests.swift in Sources */, + BD4C8B77EF89CF7F4ED0D1C4713397E4 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_32467107793 /* Sources */ = { + 1C758FAD884F96BE234FBB1BBE295E97 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 766C78D100B581A2A469B47A02A0E6D9 /* AppDelegate.swift in Sources */, + FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */, + 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */, + 304090AFAC1ED0D09C95B0CB2BEFEB9E /* Standalone.swift in Sources */, + 55E7240008DD5452802A41DA6FC7A16F /* ViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1C8F955BEA261BDB36838B408C2D7D23 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_37656905478 /* Sources */ = { + 25185271EDE7FEEC99372505A683359C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_855988705556 /* XPC_Service.m in Sources */, - BF_304637845091 /* main.m in Sources */, + 277BE1159CD7855C287566F29F8939BA /* Standalone.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_39975500840 /* Sources */ = { + 35714896F7B0D8F151E1A3B4C04AE0DB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_632297340262 /* StaticLibrary_ObjC.m in Sources */, + AD00993C2491D03BD3A1B6E48D685C29 /* MessagesViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_43717916684 /* Sources */ = { + 6186DB37B6D48F0D14D3C9300D18BE16 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_212221512596 /* StaticLibrary.swift in Sources */, + 1469E5437CDCEAB8B753538C36C6EC91 /* StaticLibrary_ObjC.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_43870453850 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF_624802436672 /* FrameworkFile.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - SBP_47229604241 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF_456457948943 /* FrameworkFile.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - SBP_47926466037 /* Sources */ = { + 634CFCBFE3760F2A0288F1BF42B66FF9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_48098211678 /* Sources */ = { + 8E6FC06C82186DB3FA95E51EFE18711C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_704149935229 /* Standalone.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_50702349225 /* Sources */ = { + 910907240480D0AFBF32A79A4008D866 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_206432481076 /* ExtensionDelegate.swift in Sources */, - BF_138356261076 /* InterfaceController.swift in Sources */, - BF_830383951771 /* NotificationController.swift in Sources */, + D8E194DE99C1389B4335B7112DEA7DC4 /* ExtensionDelegate.swift in Sources */, + A6CCC432869EB6B8A65A89B565B57EA5 /* InterfaceController.swift in Sources */, + 49C46F18756F4E9EE9E1CC328F79A2AD /* NotificationController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_52511912046 /* Sources */ = { + A0301004CBF36C0004B23102202FA9FE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_901390118565 /* FrameworkFile.swift in Sources */, + C4F880A62908F7CD24C87CE5D67B0196 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_61868746249 /* Sources */ = { + A305A9C4673244353334E95DCDFD735D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_703054643820 /* MessagesViewController.swift in Sources */, + A4E000AF88BD17B9A2B08452C17C2EEF /* StaticLibrary.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_66231583718 /* Sources */ = { + AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_243071719122 /* FrameworkFile.swift in Sources */, + EBC3AA70BAD516864D119DDEEE2C436D /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_78312289991 /* Sources */ = { + D037068D88E7DAEB3A373602EE996609 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_360196406184 /* TestProjectTests.swift in Sources */, + F7E9F427669FE7710D0A19AA4E1156F4 /* TestProjectUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_82523211050 /* Sources */ = { + E32AAD525623BF5008484D641327F1AD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF_892119987440 /* AppDelegate.swift in Sources */, - BF_670499288392 /* Model.xcdatamodeld in Sources */, - BF_503484983186 /* MoreUnder.swift in Sources */, - BF_561304997165 /* Standalone.swift in Sources */, - BF_331192862207 /* ViewController.swift in Sources */, + 51FCB6F2D56B68E627A35C53729E423A /* XPC_Service.m in Sources */, + 7AF2CCC3F2ECDC1FE82B2C05BEF75B71 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_93515386520 /* Sources */ = { + E74227370CF6081A47B8C2AB02479899 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 68642C69AC9333487FC491E6FA98261E /* TestProjectTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E74DACDAB11D89D5B824405B81E48D89 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F16AD8A4E1A6E1189CE048C03CEA9469 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - TD_109724965966 /* PBXTargetDependency */ = { + 0F0F18C8C8E08CF4C25A4DA89DB09A3A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_472296042419 /* Framework_iOS */; - targetProxy = CIP_10972496596 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = C3EE26A1AAD19418C160843CDB61D97D /* PBXContainerItemProxy */; }; - TD_193291182921 /* PBXTargetDependency */ = { + 10B5BED93CB8C9A5B7BB81E996C7F071 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_507023492251 /* App_watchOS Extension */; - targetProxy = CIP_19329118292 /* PBXContainerItemProxy */; + target = 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */; + targetProxy = 61EAE260C32C57D1ADCEAA01E33B62F0 /* PBXContainerItemProxy */; }; - TD_208010900457 /* PBXTargetDependency */ = { + 16156D2E07BFBB09D5921589B483FF23 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_825232110500 /* App_iOS */; - targetProxy = CIP_20801090045 /* PBXContainerItemProxy */; + target = 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */; + targetProxy = 0BF678D2C5D11E654050E6FD6AF1321C /* PBXContainerItemProxy */; }; - TD_235580504123 /* PBXTargetDependency */ = { + 3E978D446B3957A557629CD1DF47004B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_525119120469 /* Framework_macOS */; - targetProxy = CIP_23558050412 /* PBXContainerItemProxy */; + target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; + targetProxy = 931421A32656354E62549752A08EDBF8 /* PBXContainerItemProxy */; }; - TD_288560876254 /* PBXTargetDependency */ = { + 3FFD524CC10F62CA07750D1026106CB3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_935153865209 /* iMessageApp */; - targetProxy = CIP_28856087625 /* PBXContainerItemProxy */; + target = FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */; + targetProxy = EEB2D30EB7369BDB638EBEEF136463C2 /* PBXContainerItemProxy */; }; - TD_317921131342 /* PBXTargetDependency */ = { + 5189C5E269DD98A187BF59169A4FC1D1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_618687462494 /* iMessageExtension */; - targetProxy = CIP_31792113134 /* PBXContainerItemProxy */; + target = FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */; + targetProxy = 29DD3982DDC8FB1816F3413908D59361 /* PBXContainerItemProxy */; }; - TD_337103940101 /* PBXTargetDependency */ = { + 586BE274C55FC00DE6BE62A0AAC127F6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_33710394010 /* PBXContainerItemProxy */; + target = CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */; + targetProxy = 454E9650A00080FE30274224CC9F46C0 /* PBXContainerItemProxy */; }; - TD_629038784927 /* PBXTargetDependency */ = { + 632C4C9ABCE4E550CC5CC6F87B5C4DBD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_62903878492 /* PBXContainerItemProxy */; + target = F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */; + targetProxy = 9B58798122BFEA3C65A8FF0A3351860D /* PBXContainerItemProxy */; }; - TD_667455552356 /* PBXTargetDependency */ = { + 63D97355ECD5B9E4B835338653920BC1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_66745555235 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = FF9930E567A8C8A64F553637C661978F /* PBXContainerItemProxy */; }; - TD_676191581124 /* PBXTargetDependency */ = { + 7E5A83C554576126BB5DB76070940A42 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_825232110500 /* App_iOS */; - targetProxy = CIP_67619158112 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = 91B2DBDD3AE5AF1D532D18340182CF27 /* PBXContainerItemProxy */; }; - TD_721522128177 /* PBXTargetDependency */ = { + 8583B3541D71924D376A891CCAD90C80 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_72152212817 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = 707E4E6909BBD1E09760167B4CFEC227 /* PBXContainerItemProxy */; }; - TD_743784992411 /* PBXTargetDependency */ = { + 85A9116EE91FAB1AA6CA20FD4203A941 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_376569054786 /* XPC Service */; - targetProxy = CIP_74378499241 /* PBXContainerItemProxy */; + target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; + targetProxy = CC516AFC796533BF02DD6B96F8DD7E74 /* PBXContainerItemProxy */; }; - TD_747418473860 /* PBXTargetDependency */ = { + A835D5FBAD20741BCF95975E1CD63A7A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_472296042419 /* Framework_iOS */; - targetProxy = CIP_74741847386 /* PBXContainerItemProxy */; + target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; + targetProxy = 09709070DE34AF9CD99E9E5EB9990FEA /* PBXContainerItemProxy */; }; - TD_784412347908 /* PBXTargetDependency */ = { + B7FA3A9932789DFBE8BEDD648C9424B2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_78441234790 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = E09571F16E5252817F36D382C4132D85 /* PBXContainerItemProxy */; }; - TD_824101787753 /* PBXTargetDependency */ = { + BCAEBFE2D144CD4E9F4042CB793B6FFB /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_324671077936 /* App_watchOS */; - targetProxy = CIP_82410178775 /* PBXContainerItemProxy */; + target = 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */; + targetProxy = 322420B31CCE201E90F298BE48129574 /* PBXContainerItemProxy */; }; - TD_887143865471 /* PBXTargetDependency */ = { + D976477E0195A8FFD5043C8BBD4B67C4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_825232110500 /* App_iOS */; - targetProxy = CIP_88714386547 /* PBXContainerItemProxy */; + target = 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */; + targetProxy = DE00464172E7A41CC51991B9136AA5BD /* PBXContainerItemProxy */; }; - TD_957476409477 /* PBXTargetDependency */ = { + FA8E2412D27AAD48D0F75809A484D599 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_95747640947 /* PBXContainerItemProxy */; + target = C21579FB597F51FACE99F831124CEB70 /* StaticLibrary_ObjC */; + targetProxy = 5A941DAF3EECD0D974E9330E048ABAF1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - VG_118219888726 /* LocalizedStoryboard.storyboard */ = { + 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */ = { isa = PBXVariantGroup; children = ( - FR_118219888726 /* Base */, - FR_500792082643 /* en */, + 6B9588F9AA980468B26837ADE36D0D2E /* Base */, + 2E871C49A75D636E1E87F8904C5BA3D9 /* en */, + ); + name = Localizable.stringsdict; + sourceTree = ""; + }; + 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */ = { + isa = PBXVariantGroup; + children = ( + F56A7C74F4A75492F063A0A5BDBBF65C /* Base */, + DB194C9EF763551CE2D5131407E8CF1C /* en */, ); name = LocalizedStoryboard.storyboard; sourceTree = ""; }; - VG_201160695646 /* MainInterface.storyboard */ = { + 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */ = { isa = PBXVariantGroup; children = ( - FR_201160695646 /* Base */, + 354650483D8F76CB15A0FB0A99D2657F /* Base */, ); name = MainInterface.storyboard; sourceTree = ""; }; - VG_256263906698 /* LaunchScreen.storyboard */ = { + 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( - FR_256263906698 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - VG_264279911176 /* Interface.storyboard */ = { - isa = PBXVariantGroup; - children = ( - FR_264279911176 /* Base */, - ); - name = Interface.storyboard; - sourceTree = ""; - }; - VG_473000061463 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - FR_473000061463 /* Base */, - FR_771029596306 /* en */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - VG_609193904586 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - FR_609193904586 /* Base */, + C8822458902508063262BA655921BA2F /* Base */, ); name = Main.storyboard; sourceTree = ""; }; - VG_746876637628 /* Localizable.stringsdict */ = { + 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( - FR_746876637628 /* Base */, - FR_602633703434 /* en */, + 5FA5EA11F66D659044AB1FB5496EBF25 /* Base */, ); - name = Localizable.stringsdict; + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A59DAE760F32225493BDC5D378468EA9 /* Base */, + ); + name = Interface.storyboard; + sourceTree = ""; + }; + E005A2734C32783354AAB8546A12718B /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + F435E28C9379AF718A5D502BF3B2FB26 /* Base */, + EC5C7923578F1110EE9EE74505530753 /* en */, + ); + name = Localizable.strings; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - BC_108053643718 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - BC_122527152613 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Test Release"; - }; - BC_128103534773 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BC_128566007109 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Staging Release"; - }; - BC_129177384103 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - BC_167564962969 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_210307580165 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_210338877784 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - BC_213267780961 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Production Debug"; - }; - BC_240587562436 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - BC_242096321611 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = "Production Release"; - }; - BC_249152711841 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - BC_257261481133 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Staging Release"; - }; - BC_264139320591 /* Test Release */ = { + 017D658B4ABE46C5A30A44E1EB610EEC /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1927,85 +1670,25 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Test Release"; + name = "Production Release"; }; - BC_264159662496 /* Test Release */ = { + 01DBD7FCC87C5676808C8DC642E5076D /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Test Release"; - }; - BC_265230327262 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Staging Release"; + name = "Test Release"; }; - BC_275347760107 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - BC_275754663824 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_280651168996 /* Production Debug */ = { + 033BB6B0853606FB2D2FD4F80238B6C0 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2024,34 +1707,76 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; SDKROOT = macosx; }; - name = "Production Debug"; + name = "Staging Release"; }; - BC_282993554784 /* Production Release */ = { + 042BBE336DA13DF962EA6C453B022AF8 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + 043A0C042785957178A6693CFA0E1AD6 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + 073C2C693117E1D34E1B0F985E54181E /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Staging Debug"; + }; + 07E1360852ED801B9A2C191311650CB6 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; }; name = "Production Release"; }; - BC_296138297674 /* Test Release */ = { + 096ECE14561204A143946060635175E2 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; @@ -2066,154 +1791,9 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; }; - name = "Test Release"; - }; - BC_301490151478 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - BC_309031681908 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; name = "Test Debug"; }; - BC_313103118526 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - BC_334821934458 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Production Release"; - }; - BC_351179072988 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - BC_355674198163 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Production Debug"; - }; - BC_368555321779 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BC_370290618113 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Production Debug"; - }; - BC_380703106572 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - BC_381577484690 /* Production Release */ = { + 0A20244EB4E72EC58117F028E72046EC /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2235,9 +1815,721 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; }; + name = "Staging Release"; + }; + 17DD6C54D892A228DC61C020225C9051 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; name = "Production Release"; }; - BC_397339763951 /* Staging Debug */ = { + 17F6FF338B0EDFF7796A8F04E3F3800F /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + 182E0CC8A3915AEB912F5D1291301A43 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Production Debug"; + }; + 1A086472EE7B5AD1BCC790833A32EEBD /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Test Debug"; + }; + 1B04852DE1BAC9963EC108C9CF616C68 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + 1D285F94CF59832C2BA027CD569DDAB7 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Debug"; + }; + 1D9EB22E5DBAB4FA60986D9F7D4EB36B /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + 238AD5E15AEE443741AA30FC7DF9BE4E /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + 239E8DC605456167C1F5A3E11E89E02E /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + 2EABDD2A3CB1E85833E8A1555AE92380 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + 3B64F4C26A564FBA69A8B5DD22A9CF1E /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Staging Release"; + }; + 3BE57E2A55CD16BC51F289949EC85F76 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Release"; + }; + 3E086BCE5D760D61BB3D412C9F0B4BDA /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + 41AE4D3B9E1B4B940169B84E3BA5CCE7 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Staging Debug"; + }; + 42E41490B4F137D48214D74A60E82741 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Staging Release"; + }; + 48C7C82163507BFDDBBE9640C56C4384 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + 4E69BB19B16E547D43AF93A25BCD9F31 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Test Release"; + }; + 53FA2A6BC1E12907C7E04A1686CD2235 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + 56663C3D4D239DB7132EFC6F4BD6931F /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Production Debug"; + }; + 5720F6E9771684E5729A08D75426C874 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + 591C680E52370290108989EB469E5509 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + 5A1D3DA3365EDDAF6EC275BEF2A939B0 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + 5AA86BB667B6BB6A065CDC7A86358C06 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Test Debug"; + }; + 5E2F1BACE5D532159E4E4CDEA7781A53 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + 5F9AF0BD4959D01102D429D68A1AE409 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + 600D2124C2A4443FF163E6E3B501E909 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + 617BB41EB582FD2294AD3F0EF67FF86C /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Production Debug"; + }; + 65444C57D9A364444BA7003179D5061D /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Staging Release"; + }; + 676171EF49F08996E70CF35B0210B3EE /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + 679FF6873FEB353F21917C19BCC838E8 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + 6E76891FB5D6528F7679C4029CEA9DDB /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + 6FFE1C21D2525DBB6DFB640EA7DC613A /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + 70725C98440FD53BB91443718AC11C49 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Production Debug"; + }; + 71D8747E9D932CC57F5C7689CDAB915E /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + 76B45660690ECDC9D44E1D9957AF5029 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Production Debug"; + }; + 78064626756CECDA6038E7E6CF655FCD /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + 787DD7CC61878131127305CB1AB42E45 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + 7F42FA78F9209A1EA4BE36ECC88B48DA /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Test Release"; + }; + 7F6F9A02354EC9131372E38141776CF3 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + 8605D350B1463319F76600AD82025190 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Production Release"; + }; + 86078CF18D4E8E2A296357BBD43BB418 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -2297,135 +2589,7 @@ }; name = "Staging Debug"; }; - BC_424897564588 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - BC_437463937945 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Production Release"; - }; - BC_439666751882 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Staging Debug"; - }; - BC_444705348320 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - BC_447998896881 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Test Debug"; - }; - BC_456712168038 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_464603633927 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - BC_467730755629 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BC_470682595853 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Production Release"; - }; - BC_474716674004 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Test Release"; - }; - BC_480688547948 /* Staging Debug */ = { + 860C0A667616D8C33213E17E6B7FC967 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2446,140 +2610,36 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Staging Debug"; + name = "Staging Release"; }; - BC_488246438798 /* Production Debug */ = { + 88755377456A33C84C2CDA0C44A6A61A /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_493052431451 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - BC_499325041919 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - BC_504862512837 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Production Debug"; - }; - BC_507219048168 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_517306343059 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; + BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; SDKROOT = iphoneos; - SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; + name = "Production Release"; }; - BC_525459892506 /* Production Debug */ = { + 8946521E677C9578763AF0CAA5650B6E /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; }; - name = "Production Debug"; + name = "Test Release"; }; - BC_530755208334 /* Test Release */ = { + 8A20B26D66C3C3E2B0C19F697723BF52 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2602,43 +2662,7 @@ }; name = "Test Release"; }; - BC_530814251927 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - BC_533481109982 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - BC_563308786207 /* Staging Debug */ = { + 8A3DFEC561EA277BC662D7722D957AF7 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2662,124 +2686,7 @@ }; name = "Staging Debug"; }; - BC_563702409464 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Staging Debug"; - }; - BC_568886047790 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_568928282286 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Test Debug"; - }; - BC_570828727916 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BC_575374366235 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_ID_SUFFIX = .test; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = "Test Release"; - }; - BC_592419322448 /* Production Release */ = { + 8D77D883600ADB89A783275CF554E4A3 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -2788,34 +2695,20 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Production Release"; + name = "Test Debug"; }; - BC_594849660073 /* Production Release */ = { + 8D88F6B294E0A440C7E8DCFCC8FD89C6 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + INFOPLIST_FILE = IMessage/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; SDKROOT = iphoneos; - SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; }; - name = "Production Release"; + name = "Test Release"; }; - BC_609023497374 /* Test Release */ = { + 8EB82130053C36429A3383113E7E4C52 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; @@ -2825,9 +2718,9 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Test Release"; + name = "Staging Release"; }; - BC_609604761299 /* Staging Release */ = { + 8EBAD5F0051E7CC4CB35D6D849C46F80 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; @@ -2836,289 +2729,9 @@ PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; SDKROOT = macosx; }; - name = "Staging Release"; - }; - BC_609753632568 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; name = "Production Release"; }; - BC_612244244384 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Test Debug"; - }; - BC_622471558373 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - BC_627109222781 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Production Release"; - }; - BC_629891546665 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_634896623305 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Staging Debug"; - }; - BC_644737893954 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - BC_645651856160 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_655752097950 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - BC_667304541586 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Test Debug"; - }; - BC_669628489596 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_685135820012 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - BC_697789525657 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Release"; - }; - BC_702596407424 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Production Release"; - }; - BC_704315531994 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - BC_705279564212 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - BC_707904794064 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Test Release"; - }; - BC_709947688544 /* Production Debug */ = { + 9163A49EEE507A13BD6BB29DE77C5AEB /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3177,7 +2790,38 @@ }; name = "Production Debug"; }; - BC_724654958001 /* Staging Debug */ = { + 919E11B8D5FA5EE79F9312E6467F574E /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + 9450C1BF180480F99BCF85B483F6CB9A /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Production Release"; + }; + 94A3AAC4CEA168599D557CA3E04F4BDC /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -3188,7 +2832,170 @@ }; name = "Staging Debug"; }; - BC_730521266150 /* Staging Release */ = { + 953F56182B4014BC2431B0C3BC8C6116 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Test Debug"; + }; + 9846B0E883E03113D131FFC4E4BA1F08 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + 9945D662313B9CDAC19EE8047DF3F96F /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + 9B26DE732F220BC292EADF89DE60A554 /* Test Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + BUNDLE_ID_SUFFIX = .test; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = "Test Debug"; + }; + 9D3303E44AE7082447202EA72DDBE833 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Staging Debug"; + }; + A23AD01C12E6042FBB38025556F802B9 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + A245D8EE9B5EE2DC9F08D3E480476D6B /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3240,11 +3047,65 @@ }; name = "Staging Release"; }; - BC_741359447852 /* Test Release */ = { + A28E48690DF1F007ADE74AF8232F9936 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + A3BBDD580918C4146F640B3D5BECDE3A /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + A6191A82E89AAE95FF0927ADC4CED07C /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + A94D9A8E6B3EC8B43280005AA5CA08C5 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + AB6DE922A459F5FD497E4A88028D774F /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + AC0BADE62931604AA108798EB524D47A /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -3252,20 +3113,154 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", + "$(PROJECT_DIR)/Carthage/Build/iOS", ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; PRODUCT_NAME = Framework; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + AE20EE3DA3CAF7CF656625BC1104E356 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + AEC12413C878641363A9F9D8159AFAFD /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Staging Release"; + }; + AF4710F4CCB14CED351633EBACE040EE /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + B1E2C4D4695C5EF681BF34BD6414FFD9 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + B524E0A2A955DEAE9EA8A773C63AB9AC /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Test Release"; + }; + B5ED36F7268D18E542F85A14D09E1740 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + B6B5C9184CEE823626CCCC86A8CD9AB0 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + B7022F6F63AADF6396ED13F7B439FD4A /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + B84D4575BDB10CC7877B363EE9AB4333 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = "Test Release"; }; - BC_749393271654 /* Test Debug */ = { + BAC461FFB8CD5E0FBEF317CF56AE0847 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Test Debug"; + }; + BEA623C6A5A8AA7DFF3972CFA7FDB1FF /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -3286,9 +3281,82 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; + name = "Production Release"; + }; + C1B80F9BE08D4FB9503CA748D889BCB6 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Staging Debug"; + }; + C715D4C7279C44607E66D74085D7E2C3 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Test Release"; + }; + C964103E2697EFFCBB8E04FAD89BCB2A /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Staging Debug"; + }; + CA1133BA3266746EA55DC6CA3BB15C79 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + CF4A979E679D2D7B6180C42079630DF7 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; name = "Test Debug"; }; - BC_760168680599 /* Staging Release */ = { + D135C764212A868AB1BFA59D08477749 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3311,9 +3379,91 @@ TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; + name = "Production Release"; + }; + D30FF0A51CA7720140967225CEB93621 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Production Release"; + }; + D517F3468BE1A7136FA1FCBBEF7555F1 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + D9FDA7C09DC2A6CD9C4249D09843E029 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + DC7B7968E87668181B3ECAB77307359B /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Production Debug"; + }; + E22E8833641D3779586C0B16FA32A016 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + E288B83C7EAA142895818E3148453206 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; name = "Staging Release"; }; - BC_765441740976 /* Staging Release */ = { + E3CDCDB9EED4CB38950534D8D9E521B2 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3336,21 +3486,25 @@ SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; + name = "Staging Debug"; }; - BC_766399414659 /* Staging Debug */ = { + E6B9E89A82F37BBE7118A108CDD2FA96 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Staging Debug"; + name = "Staging Release"; }; - BC_769258280401 /* Staging Debug */ = { + E86C0E6E6FD6A5052CFD159F134F7C0C /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3365,156 +3519,10 @@ TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = App_iOS; }; - name = "Staging Debug"; - }; - BC_776042221288 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - BC_790711614758 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Release"; - }; - BC_793714544511 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; name = "Test Release"; }; - BC_799591451484 /* Test Debug */ = { + EC28E440C15EE7F1FB7DB5DCE6730C35 /* Test Release */ = { isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - BC_799916603316 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_805283956103 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - BC_823301630526 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Test Release"; - }; - BC_823840129404 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Test Debug"; - }; - BC_825545455794 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Staging Debug"; - }; - BC_831819337335 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BC_832100796021 /* Test Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FR_660690926982 /* config.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; BUNDLE_ID_SUFFIX = .test; @@ -3546,34 +3554,37 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; - name = "Test Debug"; + name = "Test Release"; }; - BC_835911551172 /* Test Debug */ = { + EF427E493E485ED823B46796B5706EE0 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + F554EE27D3B2F59E7560BC2EA81F0126 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3595,65 +3606,19 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Debug"; + name = "Production Debug"; }; - BC_851086512031 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Staging Release"; - }; - BC_864485046941 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Debug"; - }; - BC_866329197584 /* Test Debug */ = { + FD6B56D66F61D5D15F85BF3A793A4737 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; SDKROOT = iphoneos; - SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Test Debug"; }; - BC_866352849045 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Test Debug"; - }; - BC_879000441352 /* Staging Debug */ = { + FF1FD074D08FB642C47833A35CF9A077 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3676,273 +3641,292 @@ SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Debug"; - }; - BC_906683798476 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; name = "Production Release"; }; - BC_914036878229 /* Staging Release */ = { + FF20BE3E1E930A3CDD0440B465F82FD9 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + WATCHOS_DEPLOYMENT_TARGET = 4.0; }; - name = "Staging Release"; + name = "Production Release"; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - CL_123503999387 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */ = { + 0AA719054B034D653457F3861CE722A9 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - BC_355674198163 /* Production Debug */, - BC_437463937945 /* Production Release */, - BC_769258280401 /* Staging Debug */, - BC_257261481133 /* Staging Release */, - BC_447998896881 /* Test Debug */, - BC_474716674004 /* Test Release */, + 53FA2A6BC1E12907C7E04A1686CD2235 /* Production Debug */, + D135C764212A868AB1BFA59D08477749 /* Production Release */, + 679FF6873FEB353F21917C19BCC838E8 /* Staging Debug */, + 676171EF49F08996E70CF35B0210B3EE /* Staging Release */, + 3E086BCE5D760D61BB3D412C9F0B4BDA /* Test Debug */, + 1D9EB22E5DBAB4FA60986D9F7D4EB36B /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - CL_324671077936 /* Build configuration list for PBXNativeTarget "App_watchOS" */ = { + 0D5965C1A1D5123D687DA32AC9B957F8 /* Build configuration list for PBXProject "Project" */ = { isa = XCConfigurationList; buildConfigurations = ( - BC_525459892506 /* Production Debug */, - BC_470682595853 /* Production Release */, - BC_634896623305 /* Staging Debug */, - BC_128566007109 /* Staging Release */, - BC_568928282286 /* Test Debug */, - BC_264159662496 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_376569054786 /* Build configuration list for PBXNativeTarget "XPC Service" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_213267780961 /* Production Debug */, - BC_906683798476 /* Production Release */, - BC_825545455794 /* Staging Debug */, - BC_609604761299 /* Staging Release */, - BC_667304541586 /* Test Debug */, - BC_823301630526 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_399755008402 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_629891546665 /* Production Debug */, - BC_592419322448 /* Production Release */, - BC_724654958001 /* Staging Debug */, - BC_776042221288 /* Staging Release */, - BC_866329197584 /* Test Debug */, - BC_464603633927 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_437179166843 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_456712168038 /* Production Debug */, - BC_570828727916 /* Production Release */, - BC_424897564588 /* Staging Debug */, - BC_669628489596 /* Staging Release */, - BC_530814251927 /* Test Debug */, - BC_264139320591 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_438704538506 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_499325041919 /* Production Debug */, - BC_381577484690 /* Production Release */, - BC_563308786207 /* Staging Debug */, - BC_790711614758 /* Staging Release */, - BC_835911551172 /* Test Debug */, - BC_685135820012 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_445731917037 /* Build configuration list for PBXAggregateTarget "SuperTarget" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_370290618113 /* Production Debug */, - BC_334821934458 /* Production Release */, - BC_439666751882 /* Staging Debug */, - BC_851086512031 /* Staging Release */, - BC_612244244384 /* Test Debug */, - BC_122527152613 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_472296042419 /* Build configuration list for PBXNativeTarget "Framework_iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_622471558373 /* Production Debug */, - BC_594849660073 /* Production Release */, - BC_313103118526 /* Staging Debug */, - BC_517306343059 /* Staging Release */, - BC_351179072988 /* Test Debug */, - BC_210338877784 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_479264660374 /* Build configuration list for PBXLegacyTarget "Legacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_805283956103 /* Production Debug */, - BC_467730755629 /* Production Release */, - BC_444705348320 /* Staging Debug */, - BC_645651856160 /* Staging Release */, - BC_799591451484 /* Test Debug */, - BC_129177384103 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_480982116789 /* Build configuration list for PBXNativeTarget "App_macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_280651168996 /* Production Debug */, - BC_627109222781 /* Production Release */, - BC_563702409464 /* Staging Debug */, - BC_914036878229 /* Staging Release */, - BC_866352849045 /* Test Debug */, - BC_707904794064 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_507023492251 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_504862512837 /* Production Debug */, - BC_702596407424 /* Production Release */, - BC_864485046941 /* Staging Debug */, - BC_697789525657 /* Staging Release */, - BC_823840129404 /* Test Debug */, - BC_296138297674 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_525119120469 /* Build configuration list for PBXNativeTarget "Framework_macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_705279564212 /* Production Debug */, - BC_282993554784 /* Production Release */, - BC_879000441352 /* Staging Debug */, - BC_765441740976 /* Staging Release */, - BC_108053643718 /* Test Debug */, - BC_741359447852 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_488246438798 /* Production Debug */, - BC_831819337335 /* Production Release */, - BC_766399414659 /* Staging Debug */, - BC_167564962969 /* Staging Release */, - BC_309031681908 /* Test Debug */, - BC_609023497374 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_662315837182 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_275347760107 /* Production Debug */, - BC_493052431451 /* Production Release */, - BC_533481109982 /* Staging Debug */, - BC_760168680599 /* Staging Release */, - BC_655752097950 /* Test Debug */, - BC_380703106572 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_783122899910 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_568886047790 /* Production Debug */, - BC_368555321779 /* Production Release */, - BC_644737893954 /* Staging Debug */, - BC_210307580165 /* Staging Release */, - BC_240587562436 /* Test Debug */, - BC_793714544511 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_825232110500 /* Build configuration list for PBXNativeTarget "App_iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_799916603316 /* Production Debug */, - BC_128103534773 /* Production Release */, - BC_480688547948 /* Staging Debug */, - BC_265230327262 /* Staging Release */, - BC_749393271654 /* Test Debug */, - BC_530755208334 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CL_844877120535 /* Build configuration list for PBXProject "Project" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_709947688544 /* Production Debug */, - BC_242096321611 /* Production Release */, - BC_397339763951 /* Staging Debug */, - BC_730521266150 /* Staging Release */, - BC_832100796021 /* Test Debug */, - BC_575374366235 /* Test Release */, + 9163A49EEE507A13BD6BB29DE77C5AEB /* Production Debug */, + FF20BE3E1E930A3CDD0440B465F82FD9 /* Production Release */, + 86078CF18D4E8E2A296357BBD43BB418 /* Staging Debug */, + A245D8EE9B5EE2DC9F08D3E480476D6B /* Staging Release */, + 9B26DE732F220BC292EADF89DE60A554 /* Test Debug */, + EC28E440C15EE7F1FB7DB5DCE6730C35 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; - CL_935153865209 /* Build configuration list for PBXNativeTarget "iMessageApp" */ = { + 13FC8BD638A49F585CF46B85EF6E6E4E /* Build configuration list for PBXNativeTarget "App_watchOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - BC_507219048168 /* Production Debug */, - BC_609753632568 /* Production Release */, - BC_301490151478 /* Staging Debug */, - BC_275754663824 /* Staging Release */, - BC_704315531994 /* Test Debug */, - BC_249152711841 /* Test Release */, + 617BB41EB582FD2294AD3F0EF67FF86C /* Production Debug */, + 17DD6C54D892A228DC61C020225C9051 /* Production Release */, + C1B80F9BE08D4FB9503CA748D889BCB6 /* Staging Debug */, + AEC12413C878641363A9F9D8159AFAFD /* Staging Release */, + BAC461FFB8CD5E0FBEF317CF56AE0847 /* Test Debug */, + C715D4C7279C44607E66D74085D7E2C3 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 330B76D4702856DD55067456FD7A4F4A /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B6B5C9184CEE823626CCCC86A8CD9AB0 /* Production Debug */, + B7022F6F63AADF6396ED13F7B439FD4A /* Production Release */, + E22E8833641D3779586C0B16FA32A016 /* Staging Debug */, + 8EB82130053C36429A3383113E7E4C52 /* Staging Release */, + A94D9A8E6B3EC8B43280005AA5CA08C5 /* Test Debug */, + 78064626756CECDA6038E7E6CF655FCD /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 4DF366239AC6F6E9EE59EEA525319ABA /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 600D2124C2A4443FF163E6E3B501E909 /* Production Debug */, + 88755377456A33C84C2CDA0C44A6A61A /* Production Release */, + 71D8747E9D932CC57F5C7689CDAB915E /* Staging Debug */, + E6B9E89A82F37BBE7118A108CDD2FA96 /* Staging Release */, + 043A0C042785957178A6693CFA0E1AD6 /* Test Debug */, + 01DBD7FCC87C5676808C8DC642E5076D /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 526C1EB2E50CDBABCB448EE2FDF2E5D8 /* Build configuration list for PBXNativeTarget "XPC Service" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 76B45660690ECDC9D44E1D9957AF5029 /* Production Debug */, + 8EBAD5F0051E7CC4CB35D6D849C46F80 /* Production Release */, + 41AE4D3B9E1B4B940169B84E3BA5CCE7 /* Staging Debug */, + 3B64F4C26A564FBA69A8B5DD22A9CF1E /* Staging Release */, + CF4A979E679D2D7B6180C42079630DF7 /* Test Debug */, + 8946521E677C9578763AF0CAA5650B6E /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 59C3AA3AEA5802DA17DF9B42615D9B6B /* Build configuration list for PBXNativeTarget "iMessageApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A6191A82E89AAE95FF0927ADC4CED07C /* Production Debug */, + 48C7C82163507BFDDBBE9640C56C4384 /* Production Release */, + D517F3468BE1A7136FA1FCBBEF7555F1 /* Staging Debug */, + CA1133BA3266746EA55DC6CA3BB15C79 /* Staging Release */, + AB6DE922A459F5FD497E4A88028D774F /* Test Debug */, + 8D88F6B294E0A440C7E8DCFCC8FD89C6 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 5B1322FEBB7A746BD1BF9227D37A7421 /* Build configuration list for PBXNativeTarget "App_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1B04852DE1BAC9963EC108C9CF616C68 /* Production Debug */, + BEA623C6A5A8AA7DFF3972CFA7FDB1FF /* Production Release */, + 5E2F1BACE5D532159E4E4CDEA7781A53 /* Staging Debug */, + 860C0A667616D8C33213E17E6B7FC967 /* Staging Release */, + 042BBE336DA13DF962EA6C453B022AF8 /* Test Debug */, + 8A20B26D66C3C3E2B0C19F697723BF52 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 7066464807EABA4728B984B10A24E931 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7F6F9A02354EC9131372E38141776CF3 /* Production Debug */, + A23AD01C12E6042FBB38025556F802B9 /* Production Release */, + 94A3AAC4CEA168599D557CA3E04F4BDC /* Staging Debug */, + E288B83C7EAA142895818E3148453206 /* Staging Release */, + 8D77D883600ADB89A783275CF554E4A3 /* Test Debug */, + AF4710F4CCB14CED351633EBACE040EE /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 7523052A5C96494802A0431E05947F67 /* Build configuration list for PBXLegacyTarget "Legacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2EABDD2A3CB1E85833E8A1555AE92380 /* Production Debug */, + A28E48690DF1F007ADE74AF8232F9936 /* Production Release */, + 6FFE1C21D2525DBB6DFB640EA7DC613A /* Staging Debug */, + 6E76891FB5D6528F7679C4029CEA9DDB /* Staging Release */, + FD6B56D66F61D5D15F85BF3A793A4737 /* Test Debug */, + B1E2C4D4695C5EF681BF34BD6414FFD9 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 837376727FE2CF4AE46785F0E9561ED1 /* Build configuration list for PBXNativeTarget "App_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 182E0CC8A3915AEB912F5D1291301A43 /* Production Debug */, + 07E1360852ED801B9A2C191311650CB6 /* Production Release */, + 9D3303E44AE7082447202EA72DDBE833 /* Staging Debug */, + 033BB6B0853606FB2D2FD4F80238B6C0 /* Staging Release */, + 953F56182B4014BC2431B0C3BC8C6116 /* Test Debug */, + 7F42FA78F9209A1EA4BE36ECC88B48DA /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 933D4300D58AA7B25E208357C65F2AD3 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56663C3D4D239DB7132EFC6F4BD6931F /* Production Debug */, + 8605D350B1463319F76600AD82025190 /* Production Release */, + C964103E2697EFFCBB8E04FAD89BCB2A /* Staging Debug */, + 65444C57D9A364444BA7003179D5061D /* Staging Release */, + 5AA86BB667B6BB6A065CDC7A86358C06 /* Test Debug */, + E86C0E6E6FD6A5052CFD159F134F7C0C /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + 9BA95DBD7B862EE1F43DC68338281D0E /* Build configuration list for PBXNativeTarget "Framework_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 591C680E52370290108989EB469E5509 /* Production Debug */, + FF1FD074D08FB642C47833A35CF9A077 /* Production Release */, + E3CDCDB9EED4CB38950534D8D9E521B2 /* Staging Debug */, + 5A1D3DA3365EDDAF6EC275BEF2A939B0 /* Staging Release */, + 17F6FF338B0EDFF7796A8F04E3F3800F /* Test Debug */, + 239E8DC605456167C1F5A3E11E89E02E /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + ABBCABD06AD7666C13DD9BAF0C16276E /* Build configuration list for PBXNativeTarget "Framework_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9945D662313B9CDAC19EE8047DF3F96F /* Production Debug */, + 5F9AF0BD4959D01102D429D68A1AE409 /* Production Release */, + 5720F6E9771684E5729A08D75426C874 /* Staging Debug */, + AC0BADE62931604AA108798EB524D47A /* Staging Release */, + 787DD7CC61878131127305CB1AB42E45 /* Test Debug */, + B84D4575BDB10CC7877B363EE9AB4333 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CCF68725DCD5EF7FD03872D0B98C32F0 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F554EE27D3B2F59E7560BC2EA81F0126 /* Production Debug */, + 919E11B8D5FA5EE79F9312E6467F574E /* Production Release */, + 8A3DFEC561EA277BC662D7722D957AF7 /* Staging Debug */, + 0A20244EB4E72EC58117F028E72046EC /* Staging Release */, + 9846B0E883E03113D131FFC4E4BA1F08 /* Test Debug */, + D9FDA7C09DC2A6CD9C4249D09843E029 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + DF19D3419A77EDFF6F8498EFC3E36048 /* Build configuration list for PBXAggregateTarget "SuperTarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DC7B7968E87668181B3ECAB77307359B /* Production Debug */, + 9450C1BF180480F99BCF85B483F6CB9A /* Production Release */, + 073C2C693117E1D34E1B0F985E54181E /* Staging Debug */, + 42E41490B4F137D48214D74A60E82741 /* Staging Release */, + 1A086472EE7B5AD1BCC790833A32EEBD /* Test Debug */, + B524E0A2A955DEAE9EA8A773C63AB9AC /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + F40A414D7A0A13368AC9FB64BA5C73AC /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AE20EE3DA3CAF7CF656625BC1104E356 /* Production Debug */, + 017D658B4ABE46C5A30A44E1EB610EEC /* Production Release */, + B5ED36F7268D18E542F85A14D09E1740 /* Staging Debug */, + A3BBDD580918C4146F640B3D5BECDE3A /* Staging Release */, + 238AD5E15AEE443741AA30FC7DF9BE4E /* Test Debug */, + EF427E493E485ED823B46796B5706EE0 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + FC084246C395F08CB12677620BAF2399 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 70725C98440FD53BB91443718AC11C49 /* Production Debug */, + D30FF0A51CA7720140967225CEB93621 /* Production Release */, + 1D285F94CF59832C2BA027CD569DDAB7 /* Staging Debug */, + 3BE57E2A55CD16BC51F289949EC85F76 /* Staging Release */, + 096ECE14561204A143946060635175E2 /* Test Debug */, + 4E69BB19B16E547D43AF93A25BCD9F31 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; @@ -3950,19 +3934,19 @@ /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ - VG_229021855709 /* Model.xcdatamodeld */ = { + 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - FR_796781152159 /* Model 2.xcdatamodel */, - FR_263408310401 /* Model 3.xcdatamodel */, - FR_570918052822 /* Model.xcdatamodel */, + FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */, + F04030C0892CAC78F4B4376F938018E3 /* Model 3.xcdatamodel */, + D99F14029800E2D9F2434C4B6D718A5E /* Model.xcdatamodel */, ); - currentVersion = FR_796781152159 /* Model 2.xcdatamodel */; + currentVersion = FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */; path = Model.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; /* End XCVersionGroup section */ }; - rootObject = P_8448771205358 /* Project object */; + rootObject = 48BA824E9883B72747F77581255D9C94 /* Project object */; } diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme index 7ab45029..3859a09f 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,7 +53,7 @@ @@ -86,7 +86,7 @@ runnableDebuggingMode = "0"> @@ -115,7 +115,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme index e90239d7..d5d61020 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme index 7cd199b6..fa3f0ee7 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme @@ -14,7 +14,7 @@ @@ -32,7 +32,7 @@ buildForAnalyzing = "YES"> @@ -50,7 +50,7 @@ @@ -72,7 +72,7 @@ @@ -101,7 +101,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme index 5715467e..1e73621f 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/XcodeGenKitTests/GeneratorHelpers.swift b/Tests/XcodeGenKitTests/GeneratorHelpers.swift index 11157fca..f6a46761 100644 --- a/Tests/XcodeGenKitTests/GeneratorHelpers.swift +++ b/Tests/XcodeGenKitTests/GeneratorHelpers.swift @@ -2,7 +2,7 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest import Yams @@ -32,11 +32,11 @@ extension PBXProj { let mainGroup = try getMainGroup() func validateGroup(_ group: PBXGroup) throws { - let hasDuplicatedChildren = group.children.count != Set(group.children).count + let hasDuplicatedChildren = group.childrenReferences.count != Set(group.childrenReferences).count if hasDuplicatedChildren { - throw failure("Group \"\(group.nameOrPath)\" has duplicated children:\n - \(group.children.sorted().joined(separator: "\n - "))") + throw failure("Group \"\(group.nameOrPath)\" has duplicated children:\n - \(group.childrenReferences.map { String(describing: $0) }.joined(separator: "\n - "))") } - for child in group.children { + for child in group.childrenReferences { if let group = objects.groups.getReference(child) { try validateGroup(group) } diff --git a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift index b66e50b3..81df62d2 100644 --- a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift +++ b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift @@ -2,8 +2,9 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest +import Basic class ProjectFixtureTests: XCTestCase { @@ -18,12 +19,12 @@ class ProjectFixtureTests: XCTestCase { $0.it("generates variant group") { guard let xcodeProject = xcodeProject else { return } - func getFileReferences(_ path: String) -> [ObjectReference] { - return xcodeProject.pbxproj.objects.fileReferences.objectReferences.filter { $0.object.path == path } + func getFileReferences(_ path: String) -> [PBXFileReference] { + return xcodeProject.pbxproj.objects.fileReferences.values.filter { $0.path == path } } func getVariableGroups(_ name: String?) -> [PBXVariantGroup] { - return xcodeProject.pbxproj.objects.variantGroups.referenceValues.filter { $0.name == name } + return xcodeProject.pbxproj.objects.variantGroups.values.filter { $0.name == name } } let resourceName = "LocalizedStoryboard.storyboard" @@ -35,13 +36,13 @@ class ProjectFixtureTests: XCTestCase { do { let refs = getFileReferences(baseResource) try expect(refs.count) == 1 - try expect(variableGroup.children.filter { $0 == refs.first?.reference }.count) == 1 + try expect(variableGroup.childrenReferences.filter { $0 == refs.first?.reference }.count) == 1 } do { let refs = getFileReferences(localizedResource) try expect(refs.count) == 1 - try expect(variableGroup.children.filter { $0 == refs.first?.reference }.count) == 1 + try expect(variableGroup.childrenReferences.filter { $0 == refs.first?.reference }.count) == 1 } } @@ -59,11 +60,12 @@ class ProjectFixtureTests: XCTestCase { } fileprivate func generateXcodeProject(specPath: Path, projectPath: Path, file: String = #file, line: Int = #line) throws -> XcodeProj { + let projectPath = AbsolutePath(projectPath.absolute().string) let project = try Project(path: specPath) let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() let oldProject = try XcodeProj(path: projectPath) - let pbxProjPath = projectPath + XcodeProj.pbxprojPath(projectPath) + let pbxProjPath = Path(XcodeProj.pbxprojPath(projectPath).asString) let oldProjectString: String = try pbxProjPath.read() try xcodeProject.write(path: projectPath, override: true) let newProjectString: String = try pbxProjPath.read() @@ -71,7 +73,7 @@ fileprivate func generateXcodeProject(specPath: Path, projectPath: Path, file: S let newProject = try XcodeProj(path: projectPath) let stringDiff = newProjectString != oldProjectString if newProject != oldProject || stringDiff { - var message = "\(projectPath.string) has changed. If change is legitimate commit the change and run test again" + var message = "\(projectPath.asString) has changed. If change is legitimate commit the change and run test again" if stringDiff { message += ":\n\n\(pbxProjPath):\n\(prettyFirstDifferenceBetweenStrings(oldProjectString, newProjectString))" } diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 7e5e624d..ce7fb762 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -2,7 +2,7 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest import Yams @@ -42,9 +42,9 @@ class ProjectGeneratorTests: XCTestCase { let project = Project(basePath: "", name: "test", targets: [framework], options: options) let pbxProj = try project.generatePbxProj() guard let target = pbxProj.objects.nativeTargets.first?.value, - let buildConfigList = target.buildConfigurationList, + let buildConfigList = target.buildConfigurationListReference, let buildConfigs = pbxProj.objects.configurationLists.getReference(buildConfigList), - let buildConfigReference = buildConfigs.buildConfigurations.first, + let buildConfigReference = buildConfigs.buildConfigurationsReferences.first, let buildConfig = pbxProj.objects.buildConfigurations.getReference(buildConfigReference) else { throw failure("Build Config not found") } @@ -55,7 +55,7 @@ class ProjectGeneratorTests: XCTestCase { let options = SpecOptions(settingPresets: .none) let project = Project(basePath: "", name: "test", targets: [framework], options: options) let pbxProj = try project.generatePbxProj() - let allSettings = pbxProj.objects.buildConfigurations.referenceValues.reduce([:]) { $0.merged($1.buildSettings) }.keys.sorted() + let allSettings = pbxProj.objects.buildConfigurations.values.reduce([:]) { $0.merged($1.buildSettings) }.keys.sorted() try expect(allSettings) == ["SETTING_2"] } @@ -92,7 +92,7 @@ class ProjectGeneratorTests: XCTestCase { let project = Project(basePath: "", name: "test", configs: [Config(name: "Aconfig"), Config(name: "Bconfig")], targets: [framework], options: options) let pbxProject = try project.generatePbxProj() - guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationList, + guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationListReference, let defaultConfigurationName = pbxProject.objects.configurationLists[projectConfigListReference]?.defaultConfigurationName else { throw failure("Default configuration name not found") @@ -109,7 +109,7 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates config defaults") { let project = Project(basePath: "", name: "test") let pbxProj = try project.generatePbxProj() - let configs = pbxProj.objects.buildConfigurations.referenceValues + let configs = pbxProj.objects.buildConfigurations.valueArray try expect(configs.count) == 2 try expect(configs).contains(name: "Debug") try expect(configs).contains(name: "Release") @@ -122,7 +122,7 @@ class ProjectGeneratorTests: XCTestCase { configs: [Config(name: "config1"), Config(name: "config2")] ) let pbxProj = try project.generatePbxProj() - let configs = pbxProj.objects.buildConfigurations.referenceValues + let configs = pbxProj.objects.buildConfigurations.valueArray try expect(configs.count) == 2 try expect(configs).contains(name: "config1") try expect(configs).contains(name: "config2") @@ -198,8 +198,8 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates aggregate targets") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.referenceValues - let aggregateTargets = pbxProject.objects.aggregateTargets.referenceValues + let nativeTargets = pbxProject.objects.nativeTargets.valueArray.sorted { $0.name < $1.name } + let aggregateTargets = pbxProject.objects.aggregateTargets.valueArray.sorted { $0.name < $1.name } try expect(nativeTargets.count) == 4 try expect(aggregateTargets.count) == 2 @@ -216,8 +216,7 @@ class ProjectGeneratorTests: XCTestCase { let target2 = nativeTargets.first { $0.name == "Other2" } try expect(target2?.dependencies.count) == 2 - let targetDependencies = pbxProject.objects.targetDependencies.referenceValues - try expect(targetDependencies.count) == 7 + try expect(pbxProject.objects.targetDependencies.count) == 7 } } } @@ -229,7 +228,7 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates targets") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.referenceValues + let nativeTargets = pbxProject.objects.nativeTargets.values try expect(nativeTargets.count) == 3 try expect(nativeTargets.contains { $0.name == app.name }).beTrue() try expect(nativeTargets.contains { $0.name == framework.name }).beTrue() @@ -246,7 +245,7 @@ class ProjectGeneratorTests: XCTestCase { let project = Project(basePath: "", name: "test", targets: [appTargetWithAttributes, framework, testTargetWithAttributes]) let pbxProject = try project.generatePbxProj() - guard let targetAttributes = pbxProject.objects.projects.referenceValues.first?.attributes["TargetAttributes"] as? [String: [String: Any]] else { + guard let targetAttributes = pbxProject.objects.projects.values.first?.attributes["TargetAttributes"] as? [PBXObjectReference: [String: Any]] else { throw failure("Couldn't find Project TargetAttributes") } @@ -258,7 +257,7 @@ class ProjectGeneratorTests: XCTestCase { throw failure("Couldn't find UITest Target") } - try expect(targetAttributes[uiTestTarget.reference]?["TestTargetID"] as? String) == appTarget.reference + //try expect(targetAttributes[uiTestTarget.reference]?["TestTargetID"] as? String) == appTarget.reference.value try expect(targetAttributes[uiTestTarget.reference]?["ProvisioningStyle"] as? String) == "Manual" try expect(targetAttributes[appTarget.reference]?["ProvisioningStyle"] as? String) == "Automatic" try expect(targetAttributes[appTarget.reference]?["DevelopmentTeam"] as? String) == "123" @@ -270,15 +269,15 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() - guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationList, - let projectConfigReference = pbxProject.objects.configurationLists[projectConfigListReference]?.buildConfigurations.first, + guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationListReference, + let projectConfigReference = pbxProject.objects.configurationLists[projectConfigListReference]?.buildConfigurationsReferences.first, let projectConfig = pbxProject.objects.buildConfigurations[projectConfigReference] else { throw failure("Couldn't find Project config") } - guard let targetConfigListReference = pbxProject.objects.nativeTargets.referenceValues.first?.buildConfigurationList, - let targetConfigReference = pbxProject.objects.configurationLists[targetConfigListReference]?.buildConfigurations.first, + guard let targetConfigListReference = pbxProject.objects.nativeTargets.values.first?.buildConfigurationListReference, + let targetConfigReference = pbxProject.objects.configurationLists[targetConfigListReference]?.buildConfigurationsReferences.first, let targetConfig = pbxProject.objects.buildConfigurations[targetConfigReference] else { throw failure("Couldn't find Target config") @@ -296,8 +295,8 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates dependencies") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.objectReferences - let dependencies = pbxProject.objects.targetDependencies.objectReferences + let nativeTargets = pbxProject.objects.nativeTargets.values + let dependencies = pbxProject.objects.targetDependencies.valueArray.sorted { (try? $0.target())??.name ?? "" < (try? $1.target())??.name ?? "" } try expect(dependencies.count) == 2 let appTarget = nativeTargets.first { $0.object.name == app.name } let frameworkTarget = nativeTargets.first { $0.object.name == framework.name } @@ -543,20 +542,20 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() for target in targets { - guard let nativeTarget = pbxProject.objects.nativeTargets.referenceValues.first(where: { $0.name == target.name }) else { + guard let nativeTarget = pbxProject.objects.nativeTargets.values.first(where: { $0.name == target.name }) else { throw failure("PBXNativeTarget for \(target) not found") } - let buildPhases = nativeTarget.buildPhases - let resourcesPhases = pbxProject.objects.resourcesBuildPhases.objectReferences.filter { buildPhases.contains($0.reference) } - let frameworkPhases = pbxProject.objects.frameworksBuildPhases.objectReferences.filter { buildPhases.contains($0.reference) } - let copyFilesPhases = pbxProject.objects.copyFilesBuildPhases.objectReferences.filter { buildPhases.contains($0.reference) } + let buildPhases = nativeTarget.buildPhasesReferences + let resourcesPhases = pbxProject.objects.resourcesBuildPhases.values.filter { buildPhases.contains($0.reference) } + let frameworkPhases = pbxProject.objects.frameworksBuildPhases.values.filter { buildPhases.contains($0.reference) } + let copyFilesPhases = pbxProject.objects.copyFilesBuildPhases.values.filter { buildPhases.contains($0.reference) } // ensure only the right resources are copies, no more, no less let expectedResourceFiles = expectedResourceFiles[target.name]! try expect(resourcesPhases.count) == (expectedResourceFiles.isEmpty ? 0 : 1) if !expectedResourceFiles.isEmpty { - let resourceFiles = resourcesPhases[0].object.files - .compactMap { pbxProject.objects.buildFiles[$0]?.fileRef.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let resourceFiles = resourcesPhases[0].fileReferences + .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } try expect(Set(resourceFiles)) == expectedResourceFiles } @@ -564,8 +563,8 @@ class ProjectGeneratorTests: XCTestCase { let expectedLinkedFiles = expectedLinkedFiles[target.name]! try expect(frameworkPhases.count) == (expectedLinkedFiles.isEmpty ? 0 : 1) if !expectedLinkedFiles.isEmpty { - let linkFrameworks = frameworkPhases[0].object.files - .compactMap { pbxProject.objects.buildFiles[$0]?.fileRef.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let linkFrameworks = frameworkPhases[0].fileReferences + .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } try expect(Set(linkFrameworks)) == expectedLinkedFiles } @@ -573,8 +572,8 @@ class ProjectGeneratorTests: XCTestCase { let expectedEmbeddedFrameworks = expectedEmbeddedFrameworks[target.name]! try expect(copyFilesPhases.count) == (expectedEmbeddedFrameworks.isEmpty ? 0 : 1) if !expectedEmbeddedFrameworks.isEmpty { - let copyFiles = copyFilesPhases[0].object.files - .compactMap { pbxProject.objects.buildFiles[$0]?.fileRef.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let copyFiles = copyFilesPhases[0].fileReferences + .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } try expect(Set(copyFiles)) == expectedEmbeddedFrameworks } } @@ -641,10 +640,10 @@ class ProjectGeneratorTests: XCTestCase { let pbxProj = try project.generatePbxProj() func buildSettings(for target: Target) throws -> BuildSettings { - guard let nativeTarget = pbxProj.objects.targets(named: target.name).first?.object, - let buildConfigList = nativeTarget.buildConfigurationList, + guard let nativeTarget = pbxProj.objects.targets(named: target.name).first, + let buildConfigList = nativeTarget.buildConfigurationListReference, let buildConfigs = pbxProj.objects.configurationLists.getReference(buildConfigList), - let buildConfigReference = buildConfigs.buildConfigurations.first, + let buildConfigReference = buildConfigs.buildConfigurationsReferences.first, let buildConfig = pbxProj.objects.buildConfigurations.getReference(buildConfigReference) else { throw failure("XCBuildConfiguration not found for Target \(target.name.quoted)") } @@ -699,16 +698,16 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() func scriptBuildPhases(target: Target) throws -> [PBXShellScriptBuildPhase] { - guard let nativeTarget = pbxProject.objects.nativeTargets.referenceValues.first(where: { $0.name == target.name }) else { + guard let nativeTarget = pbxProject.objects.nativeTargets.values.first(where: { $0.name == target.name }) else { throw failure("PBXNativeTarget for \(target) not found") } - let buildPhases = nativeTarget.buildPhases - let scriptPhases = pbxProject.objects.shellScriptBuildPhases.objectReferences.filter({ buildPhases.contains($0.reference) }).map { $0.object } + let buildPhases = nativeTarget.buildPhasesReferences + let scriptPhases = pbxProject.objects.shellScriptBuildPhases.values.filter { buildPhases.contains($0.reference) } return scriptPhases } let expectedScriptPhase = PBXShellScriptBuildPhase( - files: [], + fileReferences: [], name: "Copy Swift Objective-C Interface Header", inputPaths: ["$(DERIVED_SOURCES_DIR)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"], outputPaths: ["$(BUILT_PRODUCTS_DIR)/include/$(PRODUCT_MODULE_NAME)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"], @@ -727,21 +726,18 @@ class ProjectGeneratorTests: XCTestCase { scriptSpec.targets[0].postbuildScripts = [BuildScript(script: .script("script2"))] let pbxProject = try scriptSpec.generatePbxProj() - guard let nativeTarget = pbxProject.objects.nativeTargets.referenceValues - .first(where: { $0.buildPhases.count >= 2 }) else { + guard let nativeTarget = pbxProject.objects.nativeTargets.values + .first(where: { $0.buildPhasesReferences.count >= 2 }) else { throw failure("Target with build phases not found") } - let buildPhases = nativeTarget.buildPhases + let buildPhases = nativeTarget.buildPhasesReferences - let scripts = pbxProject.objects.shellScriptBuildPhases.objectReferences - let script1 = scripts[0] - let script2 = scripts[1] + let scripts = pbxProject.objects.shellScriptBuildPhases.valueArray + let script1 = scripts.first { $0.shellScript == "script1" } + let script2 = scripts.first { $0.shellScript == "script2" } try expect(scripts.count) == 2 - try expect(buildPhases.first) == script1.reference - try expect(buildPhases.last) == script2.reference - - try expect(script1.object.shellScript) == "script1" - try expect(script2.object.shellScript) == "script2" + try expect(buildPhases.first) == script1?.reference + try expect(buildPhases.last) == script2?.reference } $0.it("generates targets with cylical dependencies") { @@ -783,7 +779,7 @@ class ProjectGeneratorTests: XCTestCase { ] let pbxProject = try scriptSpec.generatePbxProj() - let buildRules = pbxProject.objects.buildRules.referenceValues + let buildRules = pbxProject.objects.buildRules.values try expect(buildRules.count) == 2 let first = buildRules.first { $0.name == "My Rule" }! let second = buildRules.first { $0.name != "My Rule" }! @@ -825,8 +821,8 @@ class ProjectGeneratorTests: XCTestCase { schemes: [scheme] ) let xcodeProject = try project.generateXcodeProject() - guard let target = xcodeProject.pbxproj.objects.nativeTargets.objectReferences - .first(where: { $0.object.name == app.name }) else { + guard let target = xcodeProject.pbxproj.objects.nativeTargets.values + .first(where: { $0.name == app.name }) else { throw failure("Target not found") } guard let xcscheme = xcodeProject.sharedData?.schemes.first else { @@ -853,8 +849,8 @@ class ProjectGeneratorTests: XCTestCase { for buildableReference in buildableReferences { try expect(buildableReference.blueprintIdentifier) == target.reference - try expect(buildableReference.blueprintName) == target.object.name - try expect(buildableReference.buildableName) == "\(target.object.name).\(target.object.productType!.fileExtension!)" + try expect(buildableReference.blueprintName) == target.name + try expect(buildableReference.buildableName) == "\(target.name).\(target.productType!.fileExtension!)" } try expect(xcscheme.launchAction?.buildConfiguration) == "Debug" @@ -890,8 +886,8 @@ class ProjectGeneratorTests: XCTestCase { } try expect( - xcodeProject.pbxproj.objects.nativeTargets.objectReferences - .contains(where: { $0.object.name == app.name }) + xcodeProject.pbxproj.objects.nativeTargets.values + .contains(where: { $0.name == app.name }) ).beTrue() try expect(xcscheme.launchAction?.environmentVariables) == runVariables try expect(xcscheme.testAction?.environmentVariables).to.beNil() @@ -914,8 +910,8 @@ class ProjectGeneratorTests: XCTestCase { try expect(xcodeProject.sharedData?.schemes.count) == 2 - guard let nativeTarget = xcodeProject.pbxproj.objects.nativeTargets.objectReferences - .first(where: { $0.object.name == app.name }) else { + guard let nativeTarget = xcodeProject.pbxproj.objects.nativeTargets.values + .first(where: { $0.name == app.name }) else { throw failure("Target not found") } guard let xcscheme = xcodeProject.sharedData?.schemes @@ -925,6 +921,7 @@ class ProjectGeneratorTests: XCTestCase { guard let buildActionEntry = xcscheme.buildAction?.buildActionEntries.first else { throw failure("Build Action entry not found") } + try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget.reference try expect(xcscheme.launchAction?.buildConfiguration) == "Test Debug" diff --git a/Tests/XcodeGenKitTests/ProjectSpecTests.swift b/Tests/XcodeGenKitTests/ProjectSpecTests.swift index b3994ca2..d2ff0cba 100644 --- a/Tests/XcodeGenKitTests/ProjectSpecTests.swift +++ b/Tests/XcodeGenKitTests/ProjectSpecTests.swift @@ -2,7 +2,7 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest class ProjectSpecTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift index b382ab9c..83dc5554 100644 --- a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift @@ -2,7 +2,7 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest import Yams @@ -85,16 +85,18 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() try pbxProj.expectFile(paths: ["Sources", "Bar.swift"], buildPhase: .sources) - let buildPhase = pbxProj.objects.copyFilesBuildPhases.referenceValues.first + let buildPhase = pbxProj.objects.copyFilesBuildPhases.values.first try expect(buildPhase?.dstSubfolderSpec) == .frameworks let fileReference = pbxProj.getFileReference( paths: ["Sources", "Foo.framework"], names: ["Sources", "Foo.framework"] - )?.reference ?? "" - let buildFile = pbxProj.objects.buildFiles.objectReferences - .first(where: { $0.object.fileRef == fileReference })?.reference ?? "" - try expect(buildPhase?.files.count) == 1 - try expect(buildPhase?.files.contains(buildFile)) == true + )?.reference + guard let buildFile = pbxProj.objects.buildFiles.valueArray + .first(where: { $0.fileReference == fileReference })?.reference else { + throw failure("Cant find build file") + } + try expect(buildPhase?.fileReferences.count) == 1 + try expect(buildPhase?.fileReferences.contains(buildFile)) == true } $0.it("generates core data models") { @@ -119,7 +121,7 @@ class SourceGeneratorTests: XCTestCase { throw failure("Couldn't find version group") } try expect(versionGroup.currentVersion) == fileReference.key - try expect(versionGroup.children.count) == 3 + try expect(versionGroup.childrenReferences.count) == 3 try expect(versionGroup.path) == "model.xcdatamodeld" try expect(fileReference.value.path) == "model2.xcdatamodel" } @@ -462,7 +464,7 @@ class SourceGeneratorTests: XCTestCase { .first(where: { $0.1.buildPhase == BuildPhase.sources })! .value - try expect(sourcesBuildPhase.files.count) == 1 + try expect(sourcesBuildPhase.fileReferences.count) == 1 } $0.it("derived directories are sorted last") { @@ -480,7 +482,7 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() - let groups = try pbxProj.getMainGroup().children.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } + let groups = try pbxProj.getMainGroup().childrenReferences.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } try expect(groups) == ["A", "P", "S", "Frameworks", "Products"] } @@ -503,8 +505,9 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() - let group = pbxProj.objects.group(named: "Sources", inGroup: try pbxProj.getMainGroup())!.object - let names = group.children.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } + let mainGroup = try pbxProj.getMainGroup() + let group = mainGroup.childrenReferences.compactMap { pbxProj.objects.groups[$0]}.first { $0.nameOrPath == "Sources" }! + let names = group.childrenReferences.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } try expect(names) == [ "1file.a", "10file.a", @@ -532,10 +535,10 @@ extension PBXProj { } if let buildPhase = buildPhase { - let buildFile = objects.buildFiles.objectReferences - .first(where: { $0.object.fileRef == fileReference.reference }) + let buildFile = objects.buildFiles.values + .first(where: { $0.fileReference == fileReference.reference }) let actualBuildPhase = buildFile - .flatMap { buildFile in objects.buildPhases.referenceValues.first { $0.files.contains(buildFile.reference) } }?.buildPhase + .flatMap { buildFile in objects.buildPhases.values.first { $0.fileReferences.contains(buildFile.reference) } }?.buildPhase var error: String? if let buildPhase = buildPhase.buildPhase { @@ -563,9 +566,9 @@ extension PBXProj { } } - func getFileReference(paths: [String], names: [String], file: String = #file, line: Int = #line) -> ObjectReference? { + func getFileReference(paths: [String], names: [String], file: String = #file, line: Int = #line) -> PBXFileReference? { guard let project = objects.projects.first?.value else { return nil } - guard let mainGroup = objects.groups.getReference(project.mainGroup) else { return nil } + guard let mainGroup = objects.groups.getReference(project.mainGroupReference) else { return nil } return getFileReference(group: mainGroup, paths: paths, names: names) } @@ -574,13 +577,13 @@ extension PBXProj { guard let project = objects.projects.first?.value else { throw failure("Couldn't find project", file: file, line: line) } - guard let mainGroup = objects.groups.getReference(project.mainGroup) else { + guard let mainGroup = objects.groups.getReference(project.mainGroupReference) else { throw failure("Couldn't find main group", file: file, line: line) } return mainGroup } - private func getFileReference(group: PBXGroup, paths: [String], names: [String]) -> ObjectReference? { + private func getFileReference(group: PBXGroup, paths: [String], names: [String]) -> PBXFileReference? { guard !paths.isEmpty else { return nil } let path = paths.first! @@ -588,16 +591,10 @@ extension PBXProj { let restOfPath = Array(paths.dropFirst()) let restOfName = Array(names.dropFirst()) if restOfPath.isEmpty { - let fileReferences: [ObjectReference] = group.children.compactMap { reference in - if let fileReference = self.objects.fileReferences.getReference(reference) { - return ObjectReference(reference: reference, object: fileReference) - } else { - return nil - } - } - return fileReferences.first { $0.object.path == path && $0.object.nameOrPath == name } + let fileReferences: [PBXFileReference] = group.childrenReferences.compactMap { self.objects.fileReferences.getReference($0) } + return fileReferences.first { $0.path == path && $0.nameOrPath == name } } else { - let groups = group.children.compactMap { self.objects.groups.getReference($0) } + let groups = group.childrenReferences.compactMap { self.objects.groups.getReference($0) } guard let group = groups.first(where: { $0.path == path && $0.nameOrPath == name }) else { return nil } return getFileReference(group: group, paths: restOfPath, names: restOfName) } diff --git a/Tests/XcodeGenKitTests/SpecLoadingTests.swift b/Tests/XcodeGenKitTests/SpecLoadingTests.swift index a6d47476..8fc9e702 100644 --- a/Tests/XcodeGenKitTests/SpecLoadingTests.swift +++ b/Tests/XcodeGenKitTests/SpecLoadingTests.swift @@ -3,7 +3,7 @@ import PathKit import ProjectSpec import Spectre import XcodeGenKit -import xcproj +import xcodeproj import XCTest class SpecLoadingTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/TestHelpers.swift b/Tests/XcodeGenKitTests/TestHelpers.swift index 49b07818..54a7b700 100644 --- a/Tests/XcodeGenKitTests/TestHelpers.swift +++ b/Tests/XcodeGenKitTests/TestHelpers.swift @@ -2,7 +2,7 @@ import Foundation import PathKit import ProjectSpec import Spectre -import xcproj +import xcodeproj import XCTest let fixturePath = Path(#file).parent().parent() + "Fixtures" From 84f1c656323ed3cf3830ff46a1eee66fdffa7552 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Tue, 25 Sep 2018 21:11:04 +1000 Subject: [PATCH 02/20] update to xcodeproj 6 --- Package.resolved | 6 +- Package.swift | 2 +- Sources/XcodeGenKit/PBXProjGenerator.swift | 279 +++++++++--------- Sources/XcodeGenKit/ProjectGenerator.swift | 6 +- Sources/XcodeGenKit/SourceGenerator.swift | 76 ++--- Sources/XcodeGenKit/XCProjExtensions.swift | 31 +- .../Project.xcodeproj/project.pbxproj | 39 ++- .../xcshareddata/xcschemes/App_iOS.xcscheme | 36 +-- .../xcschemes/App_watchOS.xcscheme | 8 +- .../xcshareddata/xcschemes/Framework.xcscheme | 10 +- .../xcschemes/iMessageApp.xcscheme | 8 +- Tests/XcodeGenKitTests/GeneratorHelpers.swift | 8 +- .../ProjectFixtureTests.swift | 8 +- .../ProjectGeneratorTests.swift | 126 ++++---- .../SourceGeneratorTests.swift | 52 ++-- 15 files changed, 326 insertions(+), 369 deletions(-) diff --git a/Package.resolved b/Package.resolved index eed901f3..0eb910a2 100644 --- a/Package.resolved +++ b/Package.resolved @@ -68,9 +68,9 @@ "package": "xcodeproj", "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { - "branch": "master", - "revision": "f7f497b00e41dae704815ecebfd030b85f82c240", - "version": null + "branch": null, + "revision": "1314329687682864119ecc03c73a413dfc24ade0", + "version": "6.0.1" } }, { diff --git a/Package.swift b/Package.swift index 93e4c9d5..5ff3c502 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", .branchItem("master")), + .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.0.0"), ], targets: [ .target(name: "XcodeGen", dependencies: [ diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 962bc445..5ec2ff6e 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -13,11 +13,10 @@ public class PBXProjGenerator { var targetObjects: [String: PBXTarget] = [:] var targetAggregateObjects: [String: PBXAggregateTarget] = [:] - var targetBuildFiles: [String: PBXBuildFile] = [:] - var targetFileReferences: [String: PBXObjectReference] = [:] + var targetFileReferences: [String: PBXFileReference] = [:] - var carthageFrameworksByPlatform: [String: Set] = [:] - var frameworkFiles: [PBXObjectReference] = [] + var carthageFrameworksByPlatform: [String: Set] = [:] + var frameworkFiles: [PBXFileElement] = [] var generated = false @@ -27,20 +26,20 @@ public class PBXProjGenerator { public init(project: Project) { self.project = project - pbxProj = PBXProj(objectVersion: 46) + pbxProj = PBXProj(rootObject: nil, objectVersion: 46) sourceGenerator = SourceGenerator(project: project) { [unowned self] id, object in _ = self.addObject(id: id, object) } } func addObject(id: String, _ object: T) -> T { -// let reference = pbxProj.objects.generateReference(object, id) - pbxProj.objects.addObject(object) +// let reference = pbxProj.generateReference(object, id) + pbxProj.add(object: object) return object } func createObject(id: String, _ object: T) -> T { - pbxProj.objects.addObject(object) + pbxProj.add(object: object) return object } @@ -56,25 +55,27 @@ public class PBXProjGenerator { let buildConfigs: [XCBuildConfiguration] = project.configs.map { config in let buildSettings = project.getProjectBuildSettings(config: config) - var baseConfigurationReference: PBXObjectReference? - if let configPath = project.configFiles[config.name] { - baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) + var baseConfiguration: PBXFileReference? + if let configPath = project.configFiles[config.name], + let fileReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference { + baseConfiguration = fileReference } - return createObject( + let buildConfig = createObject( id: config.name, XCBuildConfiguration( name: config.name, - baseConfigurationReference: baseConfigurationReference, buildSettings: buildSettings ) ) + buildConfig.baseConfiguration = baseConfiguration + return buildConfig } let configName = project.options.defaultConfig ?? buildConfigs.first?.name ?? "" let buildConfigList = createObject( id: project.name, XCConfigurationList( - buildConfigurationsReferences: buildConfigs.map { $0.reference }, + buildConfigurations: buildConfigs, defaultConfigurationName: configName ) ) @@ -84,7 +85,7 @@ public class PBXProjGenerator { let mainGroup = createObject( id: "Project", PBXGroup( - childrenReferences: [], + children: [], sourceTree: .group, usesTabs: project.options.usesTabs, indentWidth: project.options.indentWidth, @@ -96,14 +97,14 @@ public class PBXProjGenerator { id: project.name, PBXProject( name: project.name, - buildConfigurationListReference: buildConfigList.reference, + buildConfigurationList: buildConfigList, compatibilityVersion: "Xcode 3.2", - mainGroupReference: mainGroup.reference, + mainGroup: mainGroup, developmentRegion: project.options.developmentLanguage ?? "en" ) ) - pbxProj.rootObjectReference = pbxProject.reference + pbxProj.rootObject = pbxProject for target in project.targets { let targetObject: PBXTarget @@ -114,10 +115,11 @@ public class PBXProjGenerator { buildToolPath: target.legacy?.toolPath, buildArgumentsString: target.legacy?.arguments, passBuildSettingsInEnvironment: target.legacy?.passSettings ?? false, - buildWorkingDirectory: target.legacy?.workingDirectory + buildWorkingDirectory: target.legacy?.workingDirectory, + buildPhases: [] ) } else { - targetObject = PBXNativeTarget(name: target.name) + targetObject = PBXNativeTarget(name: target.name, buildPhases: []) } targetObjects[target.name] = createObject(id: target.name, targetObject) @@ -143,11 +145,7 @@ public class PBXProjGenerator { ) ) - targetFileReferences[target.name] = fileReference.reference - targetBuildFiles[target.name] = createObject( - id: "legacy target build file" + target.name, - PBXBuildFile(fileReference: fileReference.reference) - ) + targetFileReferences[target.name] = fileReference } } @@ -169,7 +167,7 @@ public class PBXProjGenerator { let productGroup = createObject( id: "Products", PBXGroup( - childrenReferences: Array(targetFileReferences.values), + children: targetFileReferences.valueArray, sourceTree: .group, name: "Products" ) @@ -178,36 +176,34 @@ public class PBXProjGenerator { if !carthageFrameworksByPlatform.isEmpty { var platforms: [PBXGroup] = [] - var platformReferences: [PBXObjectReference] = [] - for (platform, fileReferences) in carthageFrameworksByPlatform { + for (platform, files) in carthageFrameworksByPlatform { let platformGroup: PBXGroup = createObject( id: "Carthage" + platform, PBXGroup( - childrenReferences: fileReferences.sorted(), + children: files.sorted { $0.nameOrPath < $1.nameOrPath }, sourceTree: .group, path: platform ) ) - platformReferences.append(platformGroup.reference) platforms.append(platformGroup) } let carthageGroup = createObject( id: "Carthage", PBXGroup( - childrenReferences: platformReferences.sorted(), + children: platforms, sourceTree: .group, name: "Carthage", path: carthageBuildPath ) ) - frameworkFiles.append(carthageGroup.reference) + frameworkFiles.append(carthageGroup) } if !frameworkFiles.isEmpty { let group = createObject( id: "Frameworks", PBXGroup( - childrenReferences: frameworkFiles, + children: frameworkFiles, sourceTree: .group, name: "Frameworks" ) @@ -215,27 +211,25 @@ public class PBXProjGenerator { derivedGroups.append(group) } - mainGroup.childrenReferences = Array(sourceGenerator.rootGroups) + mainGroup.children = Array(sourceGenerator.rootGroups) sortGroups(group: mainGroup) // add derived groups at the end derivedGroups.forEach(sortGroups) - mainGroup.childrenReferences += derivedGroups + mainGroup.children += derivedGroups .sorted { $0.nameOrPath.localizedStandardCompare($1.nameOrPath) == .orderedAscending } - .map { $0.reference } + .map { $0 } let projectAttributes: [String: Any] = ["LastUpgradeCheck": project.xcodeVersion] .merged(project.attributes) - .merged(generateTargetAttributes() ?? [:]) let knownRegions = sourceGenerator.knownRegions.sorted() - pbxProject.object.knownRegions = knownRegions.isEmpty ? ["en"] : knownRegions + pbxProject.knownRegions = knownRegions.isEmpty ? ["en"] : knownRegions let allTargets: [PBXTarget] = Array(targetObjects.values) + Array(targetAggregateObjects.values) - pbxProject.object.targets = allTargets + pbxProject.targets = allTargets .sorted { $0.name < $1.name } - .map { $0.reference } pbxProject.attributes = projectAttributes - + pbxProject.targetAttributes = generateTargetAttributes() return pbxProj } @@ -247,42 +241,42 @@ public class PBXProjGenerator { let buildSettings = project.getBuildSettings(settings: target.settings, config: config) - var baseConfigurationReference: PBXObjectReference? + var baseConfiguration: PBXFileReference? if let configPath = target.configFiles[config.name] { - baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) + baseConfiguration = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference } let buildConfig = XCBuildConfiguration( name: config.name, - baseConfigurationReference: baseConfigurationReference, + baseConfiguration: baseConfiguration, buildSettings: buildSettings ) return createObject(id: config.name + target.name, buildConfig) } - let dependencies: [PBXObjectReference] = target.targets.map { generateTargetDependency(from: target.name, to: $0).reference } + let dependencies = target.targets.map { generateTargetDependency(from: target.name, to: $0) } let buildConfigList = createObject(id: target.name, XCConfigurationList( - buildConfigurationsReferences: configs.map { $0.reference }, + buildConfigurations: configs, defaultConfigurationName: "" )) - var buildPhases: [PBXObjectReference] = [] + var buildPhases: [PBXBuildPhase] = [] buildPhases += try target.buildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } - aggregateTarget.buildPhasesReferences = buildPhases - aggregateTarget.buildConfigurationListReference = buildConfigList.reference - aggregateTarget.dependenciesReferences = dependencies + aggregateTarget.buildPhases = buildPhases + aggregateTarget.buildConfigurationList = buildConfigList + aggregateTarget.dependencies = dependencies } func generateTargetDependency(from: String, to target: String) -> PBXTargetDependency { - guard let targetReference = targetObjects[target]?.reference ?? targetAggregateObjects[target]?.reference else { + guard let targetObject = targetObjects[target] ?? targetAggregateObjects[target] else { fatalError("target not found") } let targetProxy = createObject( id: "\(from)-\(target)", PBXContainerItemProxy( - containerPortalReference: pbxProj.rootObjectReference!, - remoteGlobalIDReference: targetReference, + containerPortal: pbxProj.rootObject!, + remoteGlobalID: targetObject, proxyType: .nativeTarget, remoteInfo: target ) @@ -291,14 +285,14 @@ public class PBXProjGenerator { let targetDependency = createObject( id: "\(from)-\(target)", PBXTargetDependency( - targetReference: targetReference, - targetProxyReference: targetProxy.reference + target: targetObject, + targetProxy: targetProxy ) ) return targetDependency } - func generateBuildScript(targetName: String, buildScript: BuildScript) throws -> PBXObjectReference { + func generateBuildScript(targetName: String, buildScript: BuildScript) throws -> PBXShellScriptBuildPhase { let shellScript: String switch buildScript.script { @@ -309,47 +303,43 @@ public class PBXProjGenerator { } let shellScriptPhase = PBXShellScriptBuildPhase( - fileReferences: [], name: buildScript.name ?? "Run Script", inputPaths: buildScript.inputFiles, outputPaths: buildScript.outputFiles, shellPath: buildScript.shell ?? "/bin/sh", - shellScript: shellScript + shellScript: shellScript, + runOnlyForDeploymentPostprocessing: buildScript.runOnlyWhenInstalling, + showEnvVarsInLog: buildScript.showEnvVars ) - shellScriptPhase.runOnlyForDeploymentPostprocessing = buildScript.runOnlyWhenInstalling - shellScriptPhase.showEnvVarsInLog = buildScript.showEnvVars - return createObject(id: String(describing: buildScript.name) + shellScript + targetName, shellScriptPhase).reference + return createObject(id: String(describing: buildScript.name) + shellScript + targetName, shellScriptPhase) } - func generateTargetAttributes() -> [String: Any]? { + func generateTargetAttributes() -> [PBXTarget: [String: Any]] { - var targetAttributes: [PBXObjectReference: [String: Any]] = [:] + var targetAttributes: [PBXTarget: [String: Any]] = [:] - let uiTestTargets = pbxProj.objects.nativeTargets.values.filter { $0.productType == .uiTestBundle } + let uiTestTargets = pbxProj.nativeTargets.filter { $0.productType == .uiTestBundle } for uiTestTarget in uiTestTargets { // look up TEST_TARGET_NAME build setting func testTargetName(_ target: PBXTarget) -> String? { - guard let configurationList = target.buildConfigurationListReference else { return nil } - guard let buildConfigurationReferences = self.pbxProj.objects.configurationLists[configurationList]?.buildConfigurationsReferences else { return nil } + guard let buildConfigurations = target.buildConfigurationList?.buildConfigurations else { return nil } - let configs = buildConfigurationReferences - .compactMap { ref in self.pbxProj.objects.buildConfigurations[ref] } - - return configs + return buildConfigurations .compactMap { $0.buildSettings["TEST_TARGET_NAME"] as? String } .first } guard let name = testTargetName(uiTestTarget) else { continue } - guard let target = self.pbxProj.objects.targets(named: name).first else { continue } + guard let target = self.pbxProj.targets(named: name).first else { continue } - targetAttributes[uiTestTarget.reference, default: [:]].merge(["TestTargetID": target.reference]) + // FIX: Can't set in xcproj 5.0+ + //targetAttributes[uiTestTarget, default: [:]].merge(["TestTargetID": target.reference]) } - func generateTargetAttributes(_ target: ProjectTarget, targetReference: PBXObjectReference) { + func generateTargetAttributes(_ target: ProjectTarget, pbxTarget: PBXTarget) { if !target.attributes.isEmpty { - targetAttributes[targetReference, default: [:]].merge(target.attributes) + targetAttributes[pbxTarget, default: [:]].merge(target.attributes) } func getSingleBuildSetting(_ setting: String) -> String? { @@ -366,7 +356,7 @@ public class PBXProjGenerator { func setTargetAttribute(attribute: String, buildSetting: String) { if let setting = getSingleBuildSetting(buildSetting) { - targetAttributes[targetReference, default: [:]].merge([attribute: setting]) + targetAttributes[pbxTarget, default: [:]].merge([attribute: setting]) } } @@ -375,26 +365,25 @@ public class PBXProjGenerator { } for target in project.aggregateTargets { - guard let targetReference = targetAggregateObjects[target.name]?.reference else { + guard let pbxTarget = targetAggregateObjects[target.name] else { continue } - generateTargetAttributes(target, targetReference: targetReference) + generateTargetAttributes(target, pbxTarget: pbxTarget) } for target in project.targets { - guard let targetReference = targetObjects[target.name]?.reference else { + guard let pbxTarget = targetObjects[target.name] else { continue } - generateTargetAttributes(target, targetReference: targetReference) + generateTargetAttributes(target, pbxTarget: pbxTarget) } - return targetAttributes.isEmpty ? nil : ["TargetAttributes": targetAttributes] + return targetAttributes } func sortGroups(group: PBXGroup) { // sort children - let children = group.childrenReferences - .compactMap { pbxProj.objects.getFileElement(reference: $0) } + let children = group.children .sorted { child1, child2 in let sortOrder1 = child1.getSortOrder(groupSortPosition: project.options.groupSortPosition) let sortOrder2 = child2.getSortOrder(groupSortPosition: project.options.groupSortPosition) @@ -405,10 +394,10 @@ public class PBXProjGenerator { return sortOrder1 < sortOrder2 } } - group.childrenReferences = children.map { $0.reference }.filter { $0 != group.reference } + group.children = children.filter { $0 != group } // sort sub groups - let childGroups = group.childrenReferences.compactMap { pbxProj.objects.groups[$0] } + let childGroups = group.children.compactMap { $0 as? PBXGroup } childGroups.forEach(sortGroups) } @@ -423,14 +412,14 @@ public class PBXProjGenerator { var searchForPlist = true var anyDependencyRequiresObjCLinking = false - var dependencies: [PBXObjectReference] = [] - var targetFrameworkBuildFiles: [PBXObjectReference] = [] + var dependencies: [PBXTargetDependency] = [] + var targetFrameworkBuildFiles: [PBXBuildFile] = [] var frameworkBuildPaths = Set() - var copyFilesBuildPhasesFiles: [TargetSource.BuildPhase.CopyFilesSettings: [PBXObjectReference]] = [:] - var copyFrameworksReferences: [PBXObjectReference] = [] - var copyResourcesReferences: [PBXObjectReference] = [] - var copyWatchReferences: [PBXObjectReference] = [] - var extensions: [PBXObjectReference] = [] + var copyFilesBuildPhasesFiles: [TargetSource.BuildPhase.CopyFilesSettings: [PBXBuildFile]] = [:] + var copyFrameworksReferences: [PBXBuildFile] = [] + var copyResourcesReferences: [PBXBuildFile] = [] + var copyWatchReferences: [PBXBuildFile] = [] + var extensions: [PBXBuildFile] = [] var carthageFrameworksToEmbed: [String] = [] let targetDependencies = (target.transitivelyLinkDependencies ?? project.options.transitivelyLinkDependencies) ? @@ -457,7 +446,7 @@ public class PBXProjGenerator { case .target: let dependencyTargetName = dependency.reference let targetDependency = generateTargetDependency(from: target.name, to: dependencyTargetName) - dependencies.append(targetDependency.reference) + dependencies.append(targetDependency) guard let dependencyTarget = project.getTarget(dependencyTargetName) else { continue } @@ -469,12 +458,12 @@ public class PBXProjGenerator { || (dependecyLinkage == .static && target.type.isExecutable) ) if link { - let dependencyBuildFileReference = targetBuildFiles[dependencyTargetName]!.fileReference! + let dependencyFile = targetFileReferences[dependencyTargetName]! let buildFile = createObject( id: "target dependency build file" + target.name, - PBXBuildFile(fileReference: dependencyBuildFileReference) + PBXBuildFile(file: dependencyFile) ) - targetFrameworkBuildFiles.append(buildFile.reference) + targetFrameworkBuildFiles.append(buildFile) if !anyDependencyRequiresObjCLinking && dependencyTarget.requiresObjCLinking ?? (dependencyTarget.type == .staticLibrary) { @@ -490,29 +479,29 @@ public class PBXProjGenerator { let embedFile = createObject( id: "target dependency embed build file" + target.name, PBXBuildFile( - fileReference: dependencyFileReference, + file: dependencyFileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? !dependencyTarget.type.isExecutable) ) ) if dependencyTarget.type.isExtension { // embed app extension - extensions.append(embedFile.reference) + extensions.append(embedFile) } else if dependencyTarget.type.isFramework { - copyFrameworksReferences.append(embedFile.reference) + copyFrameworksReferences.append(embedFile) } else if dependencyTarget.type.isApp && dependencyTarget.platform == .watchOS { - copyWatchReferences.append(embedFile.reference) + copyWatchReferences.append(embedFile) } else if dependencyTarget.type == .xpcService { - copyFilesBuildPhasesFiles[.xpcServices, default: []].append(embedFile.reference) + copyFilesBuildPhasesFiles[.xpcServices, default: []].append(embedFile) } else { - copyResourcesReferences.append(embedFile.reference) + copyResourcesReferences.append(embedFile) } } case .framework: guard target.type != .staticLibrary else { break } - let fileReference: PBXObjectReference + let fileReference: PBXFileElement if dependency.implicit { fileReference = sourceGenerator.getFileReference( path: Path(dependency.reference), @@ -528,10 +517,10 @@ public class PBXProjGenerator { let buildFile = createObject( id: "framework file reference" + target.name, - PBXBuildFile(fileReference: fileReference) + PBXBuildFile(file: fileReference) ) - targetFrameworkBuildFiles.append(buildFile.reference) + targetFrameworkBuildFiles.append(buildFile) if !frameworkFiles.contains(fileReference) { frameworkFiles.append(fileReference) } @@ -539,9 +528,9 @@ public class PBXProjGenerator { if embed { let embedFile = createObject( id: "framework embed file" + target.name, - PBXBuildFile(fileReference: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) + PBXBuildFile(file: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) - copyFrameworksReferences.append(embedFile.reference) + copyFrameworksReferences.append(embedFile) } let buildPath = Path(dependency.reference).parent().string.quoted @@ -559,12 +548,12 @@ public class PBXProjGenerator { let buildFile = createObject( id: "carthage dependency build file" + target.name, - PBXBuildFile(fileReference: fileReference) + PBXBuildFile(file: fileReference) ) carthageFrameworksByPlatform[target.platform.carthageDirectoryName, default: []].insert(fileReference) - targetFrameworkBuildFiles.append(buildFile.reference) + targetFrameworkBuildFiles.append(buildFile) // Embedding handled by iterating over `carthageDependencies` below } @@ -586,9 +575,9 @@ public class PBXProjGenerator { if directlyEmbedCarthage { let embedFile = createObject( id: "carthage embed" + target.name, - PBXBuildFile(fileReference: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) + PBXBuildFile(file: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) - copyFrameworksReferences.append(embedFile.reference) + copyFrameworksReferences.append(embedFile) } else { carthageFrameworksToEmbed.append(dependency.reference) } @@ -596,9 +585,9 @@ public class PBXProjGenerator { } let fileReference = targetFileReferences[target.name] - var buildPhases: [PBXObjectReference] = [] + var buildPhases: [PBXBuildPhase] = [] - func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXObjectReference] { + func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXBuildFile] { let files = sourceFiles .reduce(into: [SourceFile]()) { output, sourceFile in if !output.contains(where: { $0.fileReference == sourceFile.fileReference }) { @@ -607,16 +596,15 @@ public class PBXProjGenerator { } .sorted { $0.path.lastComponent < $1.path.lastComponent } return files.map { createObject(id: $0.path.string + target.name, $0.buildFile) } - .map { $0.reference } } - func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [PBXObjectReference] { + func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [PBXBuildFile] { let filteredSourceFiles = sourceFiles .filter { $0.buildPhase?.buildPhase == buildPhase } return getBuildFilesForSourceFiles(filteredSourceFiles) } - func getBuildFilesForCopyFilesPhases() -> [TargetSource.BuildPhase.CopyFilesSettings: [PBXObjectReference]] { + func getBuildFilesForCopyFilesPhases() -> [TargetSource.BuildPhase.CopyFilesSettings: [PBXBuildFile]] { var sourceFilesByCopyFiles: [TargetSource.BuildPhase.CopyFilesSettings: [SourceFile]] = [:] for sourceFile in sourceFiles { guard case let .copyFiles(copyFilesSettings)? = sourceFile.buildPhase else { continue } @@ -629,18 +617,18 @@ public class PBXProjGenerator { let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { - let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(fileReferences: headersBuildPhaseFiles)) - buildPhases.append(headersBuildPhase.reference) + let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) + buildPhases.append(headersBuildPhase) } let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) - let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(fileReferences: sourcesBuildPhaseFiles)) - buildPhases.append(sourcesBuildPhase.reference) + let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(files: sourcesBuildPhaseFiles)) + buildPhases.append(sourcesBuildPhase) let resourcesBuildPhaseFiles = getBuildFilesForPhase(.resources) + copyResourcesReferences if !resourcesBuildPhaseFiles.isEmpty { - let resourcesBuildPhase = createObject(id: target.name, PBXResourcesBuildPhase(fileReferences: resourcesBuildPhaseFiles)) - buildPhases.append(resourcesBuildPhase.reference) + let resourcesBuildPhase = createObject(id: target.name, PBXResourcesBuildPhase(files: resourcesBuildPhaseFiles)) + buildPhases.append(resourcesBuildPhase) } let buildSettings = project.getCombinedBuildSettings(basePath: project.basePath, target: target, config: project.configs[0]) @@ -655,7 +643,6 @@ public class PBXProjGenerator { let script = createObject( id: "Swift.h" + target.name, PBXShellScriptBuildPhase( - fileReferences: [], name: "Copy Swift Objective-C Interface Header", inputPaths: inputPaths, outputPaths: outputPaths, @@ -663,7 +650,7 @@ public class PBXProjGenerator { shellScript: "ditto \"${SCRIPT_INPUT_FILE_0}\" \"${SCRIPT_OUTPUT_FILE_0}\"\n" ) ) - buildPhases.append(script.reference) + buildPhases.append(script) } copyFilesBuildPhasesFiles.merge(getBuildFilesForCopyFilesPhases()) { $0 + $1 } @@ -674,11 +661,11 @@ public class PBXProjGenerator { PBXCopyFilesBuildPhase( dstPath: copyFiles.subpath, dstSubfolderSpec: copyFiles.destination.destination, - fileReferences: buildPhaseFiles + files: buildPhaseFiles ) ) - buildPhases.append(copyFilesBuildPhase.reference) + buildPhases.append(copyFilesBuildPhase) } } @@ -686,9 +673,9 @@ public class PBXProjGenerator { let frameworkBuildPhase = createObject( id: target.name, - PBXFrameworksBuildPhase(fileReferences: targetFrameworkBuildFiles) + PBXFrameworksBuildPhase(files: targetFrameworkBuildFiles) ) - buildPhases.append(frameworkBuildPhase.reference) + buildPhases.append(frameworkBuildPhase) } if !extensions.isEmpty { @@ -699,11 +686,11 @@ public class PBXProjGenerator { dstPath: "", dstSubfolderSpec: .plugins, name: "Embed App Extensions", - fileReferences: extensions + files: extensions ) ) - buildPhases.append(copyFilesPhase.reference) + buildPhases.append(copyFilesPhase) } copyFrameworksReferences += getBuildFilesForPhase(.frameworks) @@ -715,11 +702,11 @@ public class PBXProjGenerator { dstPath: "", dstSubfolderSpec: .frameworks, name: "Embed Frameworks", - fileReferences: copyFrameworksReferences + files: copyFrameworksReferences ) ) - buildPhases.append(copyFilesPhase.reference) + buildPhases.append(copyFilesPhase) } if !copyWatchReferences.isEmpty { @@ -730,11 +717,11 @@ public class PBXProjGenerator { dstPath: "$(CONTENTS_FOLDER_PATH)/Watch", dstSubfolderSpec: .productsDirectory, name: "Embed Watch Content", - fileReferences: copyWatchReferences + files: copyWatchReferences ) ) - buildPhases.append(copyFilesPhase.reference) + buildPhases.append(copyFilesPhase) } if !carthageFrameworksToEmbed.isEmpty { @@ -747,7 +734,6 @@ public class PBXProjGenerator { let carthageScript = createObject( id: "Carthage" + target.name, PBXShellScriptBuildPhase( - fileReferences: [], name: "Carthage", inputPaths: inputPaths, outputPaths: outputPaths, @@ -755,7 +741,7 @@ public class PBXProjGenerator { shellScript: "\(carthageExecutable) copy-frameworks\n" ) ) - buildPhases.append(carthageScript.reference) + buildPhases.append(carthageScript) } let buildRules = target.buildRules.map { buildRule in @@ -771,7 +757,7 @@ public class PBXProjGenerator { outputFilesCompilerFlags: buildRule.outputFilesCompilerFlags, script: buildRule.action.script ) - ).reference + ) } buildPhases += try target.postbuildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } @@ -850,32 +836,33 @@ public class PBXProjGenerator { } } - var baseConfigurationReference: PBXObjectReference? - if let configPath = target.configFiles[config.name] { - baseConfigurationReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) + var baseConfiguration: PBXFileReference? + if let configPath = target.configFiles[config.name], + let fileReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference{ + baseConfiguration = fileReference } let buildConfig = XCBuildConfiguration( name: config.name, - baseConfigurationReference: baseConfigurationReference, buildSettings: buildSettings ) + buildConfig.baseConfiguration = baseConfiguration return createObject(id: config.name + target.name, buildConfig) } let buildConfigList = createObject(id: target.name, XCConfigurationList( - buildConfigurationsReferences: configs.map { $0.reference }, + buildConfigurations: configs, defaultConfigurationName: "" )) let targetObject = targetObjects[target.name]! targetObject.name = target.name - targetObject.buildConfigurationListReference = buildConfigList.reference - targetObject.buildPhasesReferences = buildPhases - targetObject.dependenciesReferences = dependencies + targetObject.buildConfigurationList = buildConfigList + targetObject.buildPhases = buildPhases + targetObject.dependencies = dependencies targetObject.productName = target.name - targetObject.buildRulesReferences = buildRules - targetObject.productReference = fileReference + targetObject.buildRules = buildRules + targetObject.product = fileReference if !target.isLegacy { targetObject.productType = target.type } diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index 9336a249..bf31f60f 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -40,8 +40,8 @@ public class ProjectGenerator { func getBuildEntry(_ buildTarget: Scheme.BuildTarget) -> XCScheme.BuildAction.Entry { - guard let targetReference = pbxProject.objects.targets(named: buildTarget.target).first else { - fatalError("Unable to find target named \"\(buildTarget.target)\" in \"PBXProj.objects.targets\"") + guard let pbxTarget = pbxProject.targets(named: buildTarget.target).first else { + fatalError("Unable to find target named \"\(buildTarget.target)\" in \"PBXProj.targets\"") } guard let buildableName = @@ -51,7 +51,7 @@ public class ProjectGenerator { } let buildableReference = XCScheme.BuildableReference( referencedContainer: "container:\(project.name).xcodeproj", - blueprintIdentifier: targetReference.reference, + blueprintIdentifier: "", //FIXME: pbxTarget.reference, buildableName: buildableName, blueprintName: buildTarget.target ) diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index 5c443249..3540af25 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -5,15 +5,15 @@ import xcodeproj struct SourceFile { let path: Path - let fileReference: PBXObjectReference + let fileReference: PBXFileElement let buildFile: PBXBuildFile let buildPhase: TargetSource.BuildPhase? } class SourceGenerator { - var rootGroups: Set = [] - private var fileReferencesByPath: [String: PBXObjectReference] = [:] + var rootGroups: Set = [] + private var fileReferencesByPath: [String: PBXFileElement] = [:] private var groupsByPath: [Path: PBXGroup] = [:] private var variantGroupsByPath: [Path: PBXVariantGroup] = [:] @@ -91,7 +91,7 @@ class SourceGenerator { settings["COMPILER_FLAGS"] = targetSource.compilerFlags.joined(separator: " ") } - let buildFile = PBXBuildFile(fileReference: fileReference, settings: settings.isEmpty ? nil : settings) + let buildFile = PBXBuildFile(file: fileReference, settings: settings.isEmpty ? nil : settings) return SourceFile( path: path, fileReference: fileReference, @@ -100,7 +100,7 @@ class SourceGenerator { ) } - func getContainedFileReference(path: Path) -> PBXObjectReference { + func getContainedFileReference(path: Path) -> PBXFileElement { let createIntermediateGroups = project.options.createIntermediateGroups let parentPath = path.parent() @@ -113,12 +113,12 @@ class SourceGenerator { ) if createIntermediateGroups { - createIntermediaGroups(for: parentGroup.reference, at: parentPath) + createIntermediaGroups(for: parentGroup, at: parentPath) } return fileReference } - func getFileReference(path: Path, inPath: Path, name: String? = nil, sourceTree: PBXSourceTree = .group, lastKnownFileType: String? = nil) -> PBXObjectReference { + func getFileReference(path: Path, inPath: Path, name: String? = nil, sourceTree: PBXSourceTree = .group, lastKnownFileType: String? = nil) -> PBXFileElement { let fileReferenceKey = path.string.lowercased() if let fileReference = fileReferencesByPath[fileReferenceKey] { return fileReference @@ -138,7 +138,7 @@ class SourceGenerator { .filter { $0.extension == "xcdatamodel" } .sorted { $0.string.localizedStandardCompare($1.string) == .orderedAscending } - let modelFileReference = + let modelFileReferences = sortedPaths.map { path in createObject( id: path.byRemovingBase(path: project.basePath).string, @@ -154,17 +154,17 @@ class SourceGenerator { let currentVersionPath = findCurrentCoreDataModelVersionPath(using: versionedModels) ?? sortedPaths.last let currentVersion: PBXFileReference? = { guard let indexOf = sortedPaths.index(where: { $0 == currentVersionPath }) else { return nil } - return modelFileReference[indexOf] + return modelFileReferences[indexOf] }() let versionGroup = addObject(id: fileReferencePath.string, XCVersionGroup( - currentVersion: currentVersion?.reference, + currentVersion: currentVersion, path: fileReferencePath.string, sourceTree: sourceTree, versionGroupType: "wrapper.xcdatamodel", - childrenReferences: modelFileReference.map { $0.reference } + children: modelFileReferences )) - fileReferencesByPath[fileReferenceKey] = versionGroup.reference - return versionGroup.reference + fileReferencesByPath[fileReferenceKey] = versionGroup + return versionGroup } else { // For all extensions other than `xcdatamodeld` let fileReference = createObject( @@ -176,8 +176,8 @@ class SourceGenerator { path: fileReferencePath.string ) ) - fileReferencesByPath[fileReferenceKey] = fileReference.reference - return fileReference.reference + fileReferencesByPath[fileReferenceKey] = fileReference + return fileReference } } } @@ -208,12 +208,16 @@ class SourceGenerator { /// Create a group or return an existing one at the path. /// Any merged children are added to a new group or merged into an existing one. - private func getGroup(path: Path, name: String? = nil, mergingChildren children: [PBXObjectReference], createIntermediateGroups: Bool, isBaseGroup: Bool) -> PBXGroup { + private func getGroup(path: Path, name: String? = nil, mergingChildren children: [PBXFileElement], createIntermediateGroups: Bool, isBaseGroup: Bool) -> PBXGroup { let groupReference: PBXGroup if let cachedGroup = groupsByPath[path] { - // only add the children that aren't already in the cachedGroup - cachedGroup.childrenReferences = Array(Set(cachedGroup.childrenReferences + children)) + for child in children { + // only add the children that aren't already in the cachedGroup + if !cachedGroup.children.contains(child) { + cachedGroup.children.append(child) + } + } groupReference = cachedGroup } else { @@ -231,7 +235,7 @@ class SourceGenerator { path.byRemovingBase(path: project.basePath).string : path.lastComponent let group = PBXGroup( - childrenReferences: children, + children: children, sourceTree: .group, name: groupName != groupPath ? groupName : nil, path: groupPath @@ -240,7 +244,7 @@ class SourceGenerator { groupsByPath[path] = groupReference if isTopLevelGroup { - rootGroups.insert(groupReference.reference) + rootGroups.insert(groupReference) } } return groupReference @@ -321,7 +325,7 @@ class SourceGenerator { .filter { $0.extension == "lproj" } .sorted { $0.lastComponent < $1.lastComponent } - var groupChildren: [PBXObjectReference] = filePaths.map { getFileReference(path: $0, inPath: path) } + var groupChildren: [PBXFileElement] = filePaths.map { getFileReference(path: $0, inPath: path) } var allSourceFiles: [SourceFile] = filePaths.map { generateSourceFile(targetType: targetType, targetSource: targetSource, path: $0) } @@ -336,11 +340,11 @@ class SourceGenerator { allSourceFiles += subGroups.sourceFiles - guard let first = subGroups.groups.first else { + guard let firstGroup = subGroups.groups.first else { continue } - groupChildren.append(first.reference) + groupChildren.append(firstGroup) groups += subGroups.groups } @@ -363,13 +367,13 @@ class SourceGenerator { .filter(isIncludedPath) .sorted() { let variantGroup = getVariantGroup(path: filePath, inPath: path) - groupChildren.append(variantGroup.reference) + groupChildren.append(variantGroup) baseLocalisationVariantGroups.append(variantGroup) let sourceFile = SourceFile( path: filePath, - fileReference: variantGroup.reference, - buildFile: PBXBuildFile(fileReference: variantGroup.reference), + fileReference: variantGroup, + buildFile: PBXBuildFile(file: variantGroup), buildPhase: .resources ) allSourceFiles.append(sourceFile) @@ -399,15 +403,15 @@ class SourceGenerator { ) if let variantGroup = variantGroup { - if !variantGroup.childrenReferences.contains(fileReference) { - variantGroup.childrenReferences.append(fileReference) + if !variantGroup.children.contains(fileReference) { + variantGroup.children.append(fileReference) } } else { // add SourceFile to group if there is no Base.lproj directory let sourceFile = SourceFile( path: filePath, fileReference: fileReference, - buildFile: PBXBuildFile(fileReference: fileReference), + buildFile: PBXBuildFile(file: fileReference), buildPhase: .resources ) allSourceFiles.append(sourceFile) @@ -423,7 +427,7 @@ class SourceGenerator { isBaseGroup: isBaseGroup ) if project.options.createIntermediateGroups { - createIntermediaGroups(for: group.reference, at: path) + createIntermediaGroups(for: group, at: path) } groups.insert(group, at: 0) @@ -440,7 +444,7 @@ class SourceGenerator { let createIntermediateGroups = project.options.createIntermediateGroups var sourceFiles: [SourceFile] = [] - let sourceReference: PBXObjectReference + let sourceReference: PBXFileElement var sourcePath = path switch type { case .folder: @@ -481,7 +485,7 @@ class SourceGenerator { } else { let parentGroup = getGroup(path: parentPath, mergingChildren: [fileReference], createIntermediateGroups: createIntermediateGroups, isBaseGroup: true) sourcePath = parentPath - sourceReference = parentGroup.reference + sourceReference = parentGroup } sourceFiles.append(sourceFile) @@ -493,7 +497,7 @@ class SourceGenerator { } sourceFiles += groupSourceFiles - sourceReference = group.reference + sourceReference = group } if createIntermediateGroups { @@ -504,7 +508,7 @@ class SourceGenerator { } // Add groups for all parents recursively - private func createIntermediaGroups(for groupReference: PBXObjectReference, at path: Path) { + private func createIntermediaGroups(for fileElement: PBXFileElement, at path: Path) { let parentPath = path.parent() guard parentPath != project.basePath && path.string.contains(project.basePath.string) else { @@ -513,10 +517,10 @@ class SourceGenerator { } let hasParentGroup = groupsByPath[parentPath] != nil - let parentGroup = getGroup(path: parentPath, mergingChildren: [groupReference], createIntermediateGroups: true, isBaseGroup: false) + let parentGroup = getGroup(path: parentPath, mergingChildren: [fileElement], createIntermediateGroups: true, isBaseGroup: false) if !hasParentGroup { - createIntermediaGroups(for: parentGroup.reference, at: parentPath) + createIntermediaGroups(for: parentGroup, at: parentPath) } } diff --git a/Sources/XcodeGenKit/XCProjExtensions.swift b/Sources/XcodeGenKit/XCProjExtensions.swift index 539ded37..df439084 100644 --- a/Sources/XcodeGenKit/XCProjExtensions.swift +++ b/Sources/XcodeGenKit/XCProjExtensions.swift @@ -12,8 +12,8 @@ extension PBXFileElement { extension PBXProj { public func printGroups() -> String { - guard let project = objects.projects.first?.value, - let mainGroup = objects.groups.getReference(project.mainGroupReference) else { + guard let project = projects.first, + let mainGroup = project.mainGroup else { return "" } return printGroup(group: mainGroup) @@ -21,14 +21,14 @@ extension PBXProj { public func printGroup(group: PBXGroup) -> String { var string = group.nameOrPath - for reference in group.childrenReferences { - if let group = objects.groups.getReference(reference) { + for child in group.children { + if let group = child as? PBXGroup { string += "\n 📁 " + printGroup(group: group).replacingOccurrences(of: "\n ", with: "\n ") - } else if let fileReference = objects.fileReferences.getReference(reference) { + } else if let fileReference = child as? PBXFileReference { string += "\n 📄 " + fileReference.nameOrPath - } else if let variantGroup = objects.variantGroups.getReference(reference) { + } else if let variantGroup = child as? PBXVariantGroup { string += "\n 🌎 " + variantGroup.nameOrPath - } else if let versionGroup = objects.versionGroups.getReference(reference) { + } else if let versionGroup = child as? XCVersionGroup { string += "\n 🔢 " + versionGroup.nameOrPath } } @@ -36,16 +36,6 @@ extension PBXProj { } } -extension PBXObjects { - - public func getFileElement(reference: PBXObjectReference) -> PBXFileElement? { - return groups[reference] ?? - fileReferences[reference] ?? - versionGroups[reference] ?? - variantGroups[reference] - } -} - extension Dictionary { public var valueArray: Array { @@ -53,13 +43,6 @@ extension Dictionary { } } -extension Dictionary where Key == PBXObjectReference { - - public func getReference(_ reference: PBXObjectReference) -> Value? { - return self[reference] - } -} - extension Xcode { public static func fileType(path: Path) -> String? { diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 1a7e1f9f..416f4dfb 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -76,23 +76,6 @@ A6CCC432869EB6B8A65A89B565B57EA5 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */; }; AA5AF277386012CD6CC015073239E50F /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */; }; AD00993C2491D03BD3A1B6E48D685C29 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */; }; - AUTO_5VZIHqJ600tEPf73suYa = {isa = PBXBuildFile; fileRef = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; }; - AUTO_7MKZu584cIQuU5pdvEAL = {isa = PBXBuildFile; fileRef = EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */; }; - AUTO_9aaVkTyiyQWj9chRFSXC = {isa = PBXBuildFile; fileRef = C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */; }; - AUTO_CX9m7izxITPbe6k7gIMS = {isa = PBXBuildFile; fileRef = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; }; - AUTO_FHqmKTu8R9eQcDSHtBl2 = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AUTO_FI4P0L7mD3dfGGVPVNvx = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; - AUTO_GN80IEuWvCvUcPwoAVnt = {isa = PBXBuildFile; fileRef = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; }; - AUTO_LFQ2NgxpvrhYJSYshySZ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; - AUTO_Ni16m8Y84i5PMkMaGKaR = {isa = PBXBuildFile; fileRef = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; }; - AUTO_OkqadiIPIeuHfZsWVaT8 = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; - AUTO_cBeRILf3hWlctfWZW9JQ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; - AUTO_eO1L3NPJcUbCdbs0LA8S = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AUTO_elwIMiarYGjkKHoLYkNz = {isa = PBXBuildFile; fileRef = 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */; }; - AUTO_iHu2o18WOxDYzCUar5IX = {isa = PBXBuildFile; fileRef = AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */; }; - AUTO_m5qNHcIsAuTywjDdFCMx = {isa = PBXBuildFile; fileRef = 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */; }; - AUTO_sv3hFquUhPl9qfllDvyL = {isa = PBXBuildFile; fileRef = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; }; - AUTO_vusM5sNOIMe1bxFDS6ZY = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; BD4C8B77EF89CF7F4ED0D1C4713397E4 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; BD8FA9115EB29C8438DE82A4C33C249A /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BE38983978B6D70795D2924F52F3081D /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */; }; @@ -111,6 +94,8 @@ FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + irhgJ7FX3id0PscP9V19 = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + wRIMwRUI5z90K7MaV9ga = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -876,8 +861,8 @@ isa = PBXNativeTarget; buildConfigurationList = 0AA719054B034D653457F3861CE722A9 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; buildPhases = ( - E74DACDAB11D89D5B824405B81E48D89 /* Sources */, B6AA01763EF8349E60D1FA4E652778F3 /* Headers */, + E74DACDAB11D89D5B824405B81E48D89 /* Sources */, C79A51DBA8AF7631AEF22BA83E104A04 /* Frameworks */, ADF413AF548A97CB33898BB4F6211314 /* MyScript */, ); @@ -895,8 +880,8 @@ isa = PBXNativeTarget; buildConfigurationList = CCF68725DCD5EF7FD03872D0B98C32F0 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; buildPhases = ( - A0301004CBF36C0004B23102202FA9FE /* Sources */, 9C424B9F3AFC563C6A6CE8FA124F8801 /* Headers */, + A0301004CBF36C0004B23102202FA9FE /* Sources */, F6C2490C6497837A21966090C77C3602 /* Frameworks */, DABB7DFD3C5DB4EAC8C5D24C79EA4E35 /* MyScript */, ); @@ -914,8 +899,8 @@ isa = PBXNativeTarget; buildConfigurationList = 9BA95DBD7B862EE1F43DC68338281D0E /* Build configuration list for PBXNativeTarget "Framework_macOS" */; buildPhases = ( - 1411E21883A09388E140C6D123029288 /* Sources */, A08871F94C4ADE4FF10D349F4ECC06C9 /* Headers */, + 1411E21883A09388E140C6D123029288 /* Sources */, 266AF93F95F8ECC5F62E443DD79D4263 /* Frameworks */, 78EF33E6A08B3BB88D8805DC3588843C /* MyScript */, ); @@ -1115,8 +1100,8 @@ isa = PBXNativeTarget; buildConfigurationList = ABBCABD06AD7666C13DD9BAF0C16276E /* Build configuration list for PBXNativeTarget "Framework_iOS" */; buildPhases = ( - AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */, 440F7F1F9382CEDD92D75B89E25552D5 /* Headers */, + AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */, 6F3C985C6701880E8731C4AAFBDC9FEF /* Frameworks */, 2983C9312429A22DF5437C4020B9937E /* MyScript */, ); @@ -1137,7 +1122,17 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 0930; - TargetAttributes = "[xcodeproj.PBXObjectReference: [\"TestTargetID\": xcodeproj.PBXObjectReference], xcodeproj.PBXObjectReference: [\"CUSTOM\": \"value\"], xcodeproj.PBXObjectReference: [\"ProvisioningStyle\": \"Automatic\"], xcodeproj.PBXObjectReference: [\"ProvisioningStyle\": \"Automatic\"]]"; + TargetAttributes = { + AB59C0690172FF119F045336C1F1CA0D = { + CUSTOM = value; + }; + DB85CB6A2C15660854D634EF1B0C1FAD = { + ProvisioningStyle = Automatic; + }; + E165F00BB866D2A7087C93650EDB1138 = { + ProvisioningStyle = Automatic; + }; + }; }; buildConfigurationList = 0D5965C1A1D5123D687DA32AC9B957F8 /* Build configuration list for PBXProject "Project" */; compatibilityVersion = "Xcode 3.2"; diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme index 3859a09f..ff5b9d32 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,21 +53,21 @@ - - + + @@ -86,21 +86,21 @@ runnableDebuggingMode = "0"> - - + + @@ -115,21 +115,21 @@ runnableDebuggingMode = "0"> - - + + @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme index fa3f0ee7..2b15a4ca 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme @@ -14,7 +14,7 @@ @@ -32,7 +32,7 @@ buildForAnalyzing = "YES"> @@ -50,7 +50,7 @@ @@ -72,7 +72,7 @@ @@ -101,7 +101,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme index 1e73621f..b3e4fcaa 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/XcodeGenKitTests/GeneratorHelpers.swift b/Tests/XcodeGenKitTests/GeneratorHelpers.swift index f6a46761..24a077eb 100644 --- a/Tests/XcodeGenKitTests/GeneratorHelpers.swift +++ b/Tests/XcodeGenKitTests/GeneratorHelpers.swift @@ -32,12 +32,12 @@ extension PBXProj { let mainGroup = try getMainGroup() func validateGroup(_ group: PBXGroup) throws { - let hasDuplicatedChildren = group.childrenReferences.count != Set(group.childrenReferences).count + let hasDuplicatedChildren = group.children.count != Set(group.children).count if hasDuplicatedChildren { - throw failure("Group \"\(group.nameOrPath)\" has duplicated children:\n - \(group.childrenReferences.map { String(describing: $0) }.joined(separator: "\n - "))") + throw failure("Group \"\(group.nameOrPath)\" has duplicated children:\n - \(group.children.map { String(describing: $0) }.joined(separator: "\n - "))") } - for child in group.childrenReferences { - if let group = objects.groups.getReference(child) { + for child in group.children { + if let group = child as? PBXGroup { try validateGroup(group) } } diff --git a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift index 81df62d2..cec8c162 100644 --- a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift +++ b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift @@ -20,11 +20,11 @@ class ProjectFixtureTests: XCTestCase { guard let xcodeProject = xcodeProject else { return } func getFileReferences(_ path: String) -> [PBXFileReference] { - return xcodeProject.pbxproj.objects.fileReferences.values.filter { $0.path == path } + return xcodeProject.pbxproj.fileReferences.filter { $0.path == path } } func getVariableGroups(_ name: String?) -> [PBXVariantGroup] { - return xcodeProject.pbxproj.objects.variantGroups.values.filter { $0.name == name } + return xcodeProject.pbxproj.variantGroups.filter { $0.name == name } } let resourceName = "LocalizedStoryboard.storyboard" @@ -36,13 +36,13 @@ class ProjectFixtureTests: XCTestCase { do { let refs = getFileReferences(baseResource) try expect(refs.count) == 1 - try expect(variableGroup.childrenReferences.filter { $0 == refs.first?.reference }.count) == 1 + try expect(variableGroup.children.filter { $0 == refs.first }.count) == 1 } do { let refs = getFileReferences(localizedResource) try expect(refs.count) == 1 - try expect(variableGroup.childrenReferences.filter { $0 == refs.first?.reference }.count) == 1 + try expect(variableGroup.children.filter { $0 == refs.first }.count) == 1 } } diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index ce7fb762..8799d2c2 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -41,11 +41,9 @@ class ProjectGeneratorTests: XCTestCase { let options = SpecOptions(bundleIdPrefix: "com.test") let project = Project(basePath: "", name: "test", targets: [framework], options: options) let pbxProj = try project.generatePbxProj() - guard let target = pbxProj.objects.nativeTargets.first?.value, - let buildConfigList = target.buildConfigurationListReference, - let buildConfigs = pbxProj.objects.configurationLists.getReference(buildConfigList), - let buildConfigReference = buildConfigs.buildConfigurationsReferences.first, - let buildConfig = pbxProj.objects.buildConfigurations.getReference(buildConfigReference) else { + guard let target = pbxProj.nativeTargets.first, + let buildConfigList = target.buildConfigurationList, + let buildConfig = buildConfigList.buildConfigurations.first else { throw failure("Build Config not found") } try expect(buildConfig.buildSettings["PRODUCT_BUNDLE_IDENTIFIER"] as? String) == "com.test.MyFramework" @@ -55,7 +53,7 @@ class ProjectGeneratorTests: XCTestCase { let options = SpecOptions(settingPresets: .none) let project = Project(basePath: "", name: "test", targets: [framework], options: options) let pbxProj = try project.generatePbxProj() - let allSettings = pbxProj.objects.buildConfigurations.values.reduce([:]) { $0.merged($1.buildSettings) }.keys.sorted() + let allSettings = pbxProj.buildConfigurations.reduce([:]) { $0.merged($1.buildSettings) }.keys.sorted() try expect(allSettings) == ["SETTING_2"] } @@ -63,7 +61,7 @@ class ProjectGeneratorTests: XCTestCase { let options = SpecOptions(developmentLanguage: "de") let project = Project(basePath: "", name: "test", options: options) let pbxProj = try project.generatePbxProj() - guard let pbxProject = pbxProj.objects.projects.first?.value else { + guard let pbxProject = pbxProj.projects.first else { throw failure("Could't find PBXProject") } try expect(pbxProject.developmentRegion) == "de" @@ -92,8 +90,8 @@ class ProjectGeneratorTests: XCTestCase { let project = Project(basePath: "", name: "test", configs: [Config(name: "Aconfig"), Config(name: "Bconfig")], targets: [framework], options: options) let pbxProject = try project.generatePbxProj() - guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationListReference, - let defaultConfigurationName = pbxProject.objects.configurationLists[projectConfigListReference]?.defaultConfigurationName + guard let projectConfigList = pbxProject.projects.first?.buildConfigurationList, + let defaultConfigurationName = projectConfigList.defaultConfigurationName else { throw failure("Default configuration name not found") } @@ -109,7 +107,7 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates config defaults") { let project = Project(basePath: "", name: "test") let pbxProj = try project.generatePbxProj() - let configs = pbxProj.objects.buildConfigurations.valueArray + let configs = pbxProj.buildConfigurations try expect(configs.count) == 2 try expect(configs).contains(name: "Debug") try expect(configs).contains(name: "Release") @@ -122,7 +120,7 @@ class ProjectGeneratorTests: XCTestCase { configs: [Config(name: "config1"), Config(name: "config2")] ) let pbxProj = try project.generatePbxProj() - let configs = pbxProj.objects.buildConfigurations.valueArray + let configs = pbxProj.buildConfigurations try expect(configs.count) == 2 try expect(configs).contains(name: "config1") try expect(configs).contains(name: "config2") @@ -135,7 +133,7 @@ class ProjectGeneratorTests: XCTestCase { configs: [Config(name: "config")] ) let pbxProj = try project.generatePbxProj() - guard let config = pbxProj.objects.buildConfigurations.first?.value else { + guard let config = pbxProj.buildConfigurations.first else { throw failure("configuration not found") } try expect(config.buildSettings.isEmpty).to.beTrue() @@ -198,8 +196,8 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates aggregate targets") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.valueArray.sorted { $0.name < $1.name } - let aggregateTargets = pbxProject.objects.aggregateTargets.valueArray.sorted { $0.name < $1.name } + let nativeTargets = pbxProject.nativeTargets.sorted { $0.name < $1.name } + let aggregateTargets = pbxProject.aggregateTargets.sorted { $0.name < $1.name } try expect(nativeTargets.count) == 4 try expect(aggregateTargets.count) == 2 @@ -216,7 +214,7 @@ class ProjectGeneratorTests: XCTestCase { let target2 = nativeTargets.first { $0.name == "Other2" } try expect(target2?.dependencies.count) == 2 - try expect(pbxProject.objects.targetDependencies.count) == 7 + try expect(pbxProject.targetDependencies.count) == 7 } } } @@ -228,7 +226,7 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates targets") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.values + let nativeTargets = pbxProject.nativeTargets try expect(nativeTargets.count) == 3 try expect(nativeTargets.contains { $0.name == app.name }).beTrue() try expect(nativeTargets.contains { $0.name == framework.name }).beTrue() @@ -245,22 +243,22 @@ class ProjectGeneratorTests: XCTestCase { let project = Project(basePath: "", name: "test", targets: [appTargetWithAttributes, framework, testTargetWithAttributes]) let pbxProject = try project.generatePbxProj() - guard let targetAttributes = pbxProject.objects.projects.values.first?.attributes["TargetAttributes"] as? [PBXObjectReference: [String: Any]] else { + guard let targetAttributes = pbxProject.projects.first?.targetAttributes else { throw failure("Couldn't find Project TargetAttributes") } - guard let appTarget = pbxProject.objects.targets(named: app.name).first else { + guard let appTarget = pbxProject.targets(named: app.name).first else { throw failure("Couldn't find App Target") } - guard let uiTestTarget = pbxProject.objects.targets(named: uiTest.name).first else { + guard let uiTestTarget = pbxProject.targets(named: uiTest.name).first else { throw failure("Couldn't find UITest Target") } //try expect(targetAttributes[uiTestTarget.reference]?["TestTargetID"] as? String) == appTarget.reference.value - try expect(targetAttributes[uiTestTarget.reference]?["ProvisioningStyle"] as? String) == "Manual" - try expect(targetAttributes[appTarget.reference]?["ProvisioningStyle"] as? String) == "Automatic" - try expect(targetAttributes[appTarget.reference]?["DevelopmentTeam"] as? String) == "123" + try expect(targetAttributes[uiTestTarget]?["ProvisioningStyle"] as? String) == "Manual" + try expect(targetAttributes[appTarget]?["ProvisioningStyle"] as? String) == "Automatic" + try expect(targetAttributes[appTarget]?["DevelopmentTeam"] as? String) == "123" } $0.it("generates platform version") { @@ -269,16 +267,14 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() - guard let projectConfigListReference = pbxProject.objects.projects.values.first?.buildConfigurationListReference, - let projectConfigReference = pbxProject.objects.configurationLists[projectConfigListReference]?.buildConfigurationsReferences.first, - let projectConfig = pbxProject.objects.buildConfigurations[projectConfigReference] + guard let projectConfigList = pbxProject.projects.first?.buildConfigurationList, + let projectConfig = projectConfigList.buildConfigurations.first else { throw failure("Couldn't find Project config") } - guard let targetConfigListReference = pbxProject.objects.nativeTargets.values.first?.buildConfigurationListReference, - let targetConfigReference = pbxProject.objects.configurationLists[targetConfigListReference]?.buildConfigurationsReferences.first, - let targetConfig = pbxProject.objects.buildConfigurations[targetConfigReference] + guard let targetConfigList = pbxProject.nativeTargets.first?.buildConfigurationList, + let targetConfig = targetConfigList.buildConfigurations.first else { throw failure("Couldn't find Target config") } @@ -295,14 +291,14 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates dependencies") { let pbxProject = try project.generatePbxProj() - let nativeTargets = pbxProject.objects.nativeTargets.values - let dependencies = pbxProject.objects.targetDependencies.valueArray.sorted { (try? $0.target())??.name ?? "" < (try? $1.target())??.name ?? "" } + let nativeTargets = pbxProject.nativeTargets + let dependencies = pbxProject.targetDependencies.sorted { $0.target?.name ?? "" < $1.target?.name ?? "" } try expect(dependencies.count) == 2 - let appTarget = nativeTargets.first { $0.object.name == app.name } - let frameworkTarget = nativeTargets.first { $0.object.name == framework.name } + let appTarget = nativeTargets.first { $0.name == app.name } + let frameworkTarget = nativeTargets.first { $0.name == framework.name } - try expect(dependencies).contains { $0.object.target == appTarget?.reference } - try expect(dependencies).contains { $0.object.target == frameworkTarget?.reference } + try expect(dependencies).contains { $0.target == appTarget } + try expect(dependencies).contains { $0.target == frameworkTarget } } $0.it("generates targets with correct transitive embeds") { @@ -542,20 +538,21 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() for target in targets { - guard let nativeTarget = pbxProject.objects.nativeTargets.values.first(where: { $0.name == target.name }) else { + guard let nativeTarget = pbxProject.nativeTargets.first(where: { $0.name == target.name }) else { throw failure("PBXNativeTarget for \(target) not found") } - let buildPhases = nativeTarget.buildPhasesReferences - let resourcesPhases = pbxProject.objects.resourcesBuildPhases.values.filter { buildPhases.contains($0.reference) } - let frameworkPhases = pbxProject.objects.frameworksBuildPhases.values.filter { buildPhases.contains($0.reference) } - let copyFilesPhases = pbxProject.objects.copyFilesBuildPhases.values.filter { buildPhases.contains($0.reference) } + let buildPhases = nativeTarget.buildPhases + let resourcesPhases = pbxProject.resourcesBuildPhases.filter { buildPhases.contains($0) } + let frameworkPhases = pbxProject.frameworksBuildPhases.filter { buildPhases.contains($0) } + let copyFilesPhases = pbxProject.copyFilesBuildPhases.filter { buildPhases.contains($0) } // ensure only the right resources are copies, no more, no less let expectedResourceFiles = expectedResourceFiles[target.name]! try expect(resourcesPhases.count) == (expectedResourceFiles.isEmpty ? 0 : 1) if !expectedResourceFiles.isEmpty { - let resourceFiles = resourcesPhases[0].fileReferences - .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let resourceFiles = resourcesPhases[0].files + .compactMap { $0.file } + .map { $0.nameOrPath } try expect(Set(resourceFiles)) == expectedResourceFiles } @@ -563,8 +560,8 @@ class ProjectGeneratorTests: XCTestCase { let expectedLinkedFiles = expectedLinkedFiles[target.name]! try expect(frameworkPhases.count) == (expectedLinkedFiles.isEmpty ? 0 : 1) if !expectedLinkedFiles.isEmpty { - let linkFrameworks = frameworkPhases[0].fileReferences - .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let linkFrameworks = frameworkPhases[0].files + .compactMap { $0.file?.nameOrPath } try expect(Set(linkFrameworks)) == expectedLinkedFiles } @@ -572,8 +569,8 @@ class ProjectGeneratorTests: XCTestCase { let expectedEmbeddedFrameworks = expectedEmbeddedFrameworks[target.name]! try expect(copyFilesPhases.count) == (expectedEmbeddedFrameworks.isEmpty ? 0 : 1) if !expectedEmbeddedFrameworks.isEmpty { - let copyFiles = copyFilesPhases[0].fileReferences - .compactMap { pbxProject.objects.buildFiles[$0]?.fileReference.flatMap { pbxProject.objects.fileReferences[$0]?.nameOrPath } } + let copyFiles = copyFilesPhases[0].files + .compactMap { $0.file?.nameOrPath } try expect(Set(copyFiles)) == expectedEmbeddedFrameworks } } @@ -640,11 +637,9 @@ class ProjectGeneratorTests: XCTestCase { let pbxProj = try project.generatePbxProj() func buildSettings(for target: Target) throws -> BuildSettings { - guard let nativeTarget = pbxProj.objects.targets(named: target.name).first, - let buildConfigList = nativeTarget.buildConfigurationListReference, - let buildConfigs = pbxProj.objects.configurationLists.getReference(buildConfigList), - let buildConfigReference = buildConfigs.buildConfigurationsReferences.first, - let buildConfig = pbxProj.objects.buildConfigurations.getReference(buildConfigReference) else { + guard let nativeTarget = pbxProj.targets(named: target.name).first, + let buildConfigList = nativeTarget.buildConfigurationList, + let buildConfig = buildConfigList.buildConfigurations.first else { throw failure("XCBuildConfiguration not found for Target \(target.name.quoted)") } @@ -698,16 +693,15 @@ class ProjectGeneratorTests: XCTestCase { let pbxProject = try project.generatePbxProj() func scriptBuildPhases(target: Target) throws -> [PBXShellScriptBuildPhase] { - guard let nativeTarget = pbxProject.objects.nativeTargets.values.first(where: { $0.name == target.name }) else { + guard let nativeTarget = pbxProject.nativeTargets.first(where: { $0.name == target.name }) else { throw failure("PBXNativeTarget for \(target) not found") } - let buildPhases = nativeTarget.buildPhasesReferences - let scriptPhases = pbxProject.objects.shellScriptBuildPhases.values.filter { buildPhases.contains($0.reference) } + let buildPhases = nativeTarget.buildPhases + let scriptPhases = buildPhases.compactMap { $0 as? PBXShellScriptBuildPhase } return scriptPhases } let expectedScriptPhase = PBXShellScriptBuildPhase( - fileReferences: [], name: "Copy Swift Objective-C Interface Header", inputPaths: ["$(DERIVED_SOURCES_DIR)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"], outputPaths: ["$(BUILT_PRODUCTS_DIR)/include/$(PRODUCT_MODULE_NAME)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"], @@ -726,18 +720,18 @@ class ProjectGeneratorTests: XCTestCase { scriptSpec.targets[0].postbuildScripts = [BuildScript(script: .script("script2"))] let pbxProject = try scriptSpec.generatePbxProj() - guard let nativeTarget = pbxProject.objects.nativeTargets.values - .first(where: { $0.buildPhasesReferences.count >= 2 }) else { + guard let nativeTarget = pbxProject.nativeTargets + .first(where: { $0.buildPhases.count >= 2 }) else { throw failure("Target with build phases not found") } - let buildPhases = nativeTarget.buildPhasesReferences + let buildPhases = nativeTarget.buildPhases - let scripts = pbxProject.objects.shellScriptBuildPhases.valueArray + let scripts = pbxProject.shellScriptBuildPhases let script1 = scripts.first { $0.shellScript == "script1" } let script2 = scripts.first { $0.shellScript == "script2" } try expect(scripts.count) == 2 - try expect(buildPhases.first) == script1?.reference - try expect(buildPhases.last) == script2?.reference + try expect(buildPhases.first) == script1 + try expect(buildPhases.last) == script2 } $0.it("generates targets with cylical dependencies") { @@ -779,7 +773,7 @@ class ProjectGeneratorTests: XCTestCase { ] let pbxProject = try scriptSpec.generatePbxProj() - let buildRules = pbxProject.objects.buildRules.values + let buildRules = pbxProject.buildRules try expect(buildRules.count) == 2 let first = buildRules.first { $0.name == "My Rule" }! let second = buildRules.first { $0.name != "My Rule" }! @@ -821,7 +815,7 @@ class ProjectGeneratorTests: XCTestCase { schemes: [scheme] ) let xcodeProject = try project.generateXcodeProject() - guard let target = xcodeProject.pbxproj.objects.nativeTargets.values + guard let target = xcodeProject.pbxproj.nativeTargets .first(where: { $0.name == app.name }) else { throw failure("Target not found") } @@ -848,7 +842,7 @@ class ProjectGeneratorTests: XCTestCase { ].compactMap { $0 } for buildableReference in buildableReferences { - try expect(buildableReference.blueprintIdentifier) == target.reference + //FIXME: try expect(buildableReference.blueprintIdentifier) == target.reference try expect(buildableReference.blueprintName) == target.name try expect(buildableReference.buildableName) == "\(target.name).\(target.productType!.fileExtension!)" } @@ -886,7 +880,7 @@ class ProjectGeneratorTests: XCTestCase { } try expect( - xcodeProject.pbxproj.objects.nativeTargets.values + xcodeProject.pbxproj.nativeTargets .contains(where: { $0.name == app.name }) ).beTrue() try expect(xcscheme.launchAction?.environmentVariables) == runVariables @@ -910,7 +904,7 @@ class ProjectGeneratorTests: XCTestCase { try expect(xcodeProject.sharedData?.schemes.count) == 2 - guard let nativeTarget = xcodeProject.pbxproj.objects.nativeTargets.values + guard let nativeTarget = xcodeProject.pbxproj.nativeTargets .first(where: { $0.name == app.name }) else { throw failure("Target not found") } @@ -922,7 +916,7 @@ class ProjectGeneratorTests: XCTestCase { throw failure("Build Action entry not found") } - try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget.reference + //FIXME: try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget try expect(xcscheme.launchAction?.buildConfiguration) == "Test Debug" try expect(xcscheme.testAction?.buildConfiguration) == "Test Debug" diff --git a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift index 83dc5554..21dd0ead 100644 --- a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift @@ -85,18 +85,18 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() try pbxProj.expectFile(paths: ["Sources", "Bar.swift"], buildPhase: .sources) - let buildPhase = pbxProj.objects.copyFilesBuildPhases.values.first + let buildPhase = pbxProj.copyFilesBuildPhases.first try expect(buildPhase?.dstSubfolderSpec) == .frameworks let fileReference = pbxProj.getFileReference( paths: ["Sources", "Foo.framework"], names: ["Sources", "Foo.framework"] - )?.reference - guard let buildFile = pbxProj.objects.buildFiles.valueArray - .first(where: { $0.fileReference == fileReference })?.reference else { + ) + guard let buildFile = pbxProj.buildFiles + .first(where: { $0.file == fileReference }) else { throw failure("Cant find build file") } - try expect(buildPhase?.fileReferences.count) == 1 - try expect(buildPhase?.fileReferences.contains(buildFile)) == true + try expect(buildPhase?.files.count) == 1 + try expect(buildPhase?.files.contains(buildFile)) == true } $0.it("generates core data models") { @@ -114,16 +114,16 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() - guard let fileReference = pbxProj.objects.fileReferences.first(where: { $0.value.nameOrPath == "model2.xcdatamodel" }) else { + guard let fileReference = pbxProj.fileReferences.first(where: { $0.nameOrPath == "model2.xcdatamodel" }) else { throw failure("Couldn't find model file reference") } - guard let versionGroup = pbxProj.objects.versionGroups.values.first else { + guard let versionGroup = pbxProj.versionGroups.first else { throw failure("Couldn't find version group") } - try expect(versionGroup.currentVersion) == fileReference.key - try expect(versionGroup.childrenReferences.count) == 3 + try expect(versionGroup.currentVersion) == fileReference + try expect(versionGroup.children.count) == 3 try expect(versionGroup.path) == "model.xcdatamodeld" - try expect(fileReference.value.path) == "model2.xcdatamodel" + try expect(fileReference.path) == "model2.xcdatamodel" } $0.it("handles duplicate names") { @@ -460,11 +460,9 @@ class SourceGeneratorTests: XCTestCase { let pbxProj = try project.generatePbxProj() try pbxProj.expectFile(paths: ["Sources/A", "a.swift"], names: ["A", "a.swift"], buildPhase: .sources) - let sourcesBuildPhase = pbxProj.objects.buildPhases - .first(where: { $0.1.buildPhase == BuildPhase.sources })! - .value + let sourcesBuildPhase = pbxProj.buildPhases.first(where: { $0.buildPhase == BuildPhase.sources })! - try expect(sourcesBuildPhase.fileReferences.count) == 1 + try expect(sourcesBuildPhase.files.count) == 1 } $0.it("derived directories are sorted last") { @@ -482,7 +480,7 @@ class SourceGeneratorTests: XCTestCase { let project = Project(basePath: directoryPath, name: "Test", targets: [target]) let pbxProj = try project.generatePbxProj() - let groups = try pbxProj.getMainGroup().childrenReferences.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } + let groups = try pbxProj.getMainGroup().children.map { $0.nameOrPath } try expect(groups) == ["A", "P", "S", "Frameworks", "Products"] } @@ -506,8 +504,8 @@ class SourceGeneratorTests: XCTestCase { let pbxProj = try project.generatePbxProj() let mainGroup = try pbxProj.getMainGroup() - let group = mainGroup.childrenReferences.compactMap { pbxProj.objects.groups[$0]}.first { $0.nameOrPath == "Sources" }! - let names = group.childrenReferences.compactMap { pbxProj.objects.getFileElement(reference: $0)?.nameOrPath } + let group = mainGroup.children.compactMap { $0 as? PBXGroup }.first { $0.nameOrPath == "Sources" }! + let names = group.children.compactMap { $0.nameOrPath } try expect(names) == [ "1file.a", "10file.a", @@ -535,10 +533,10 @@ extension PBXProj { } if let buildPhase = buildPhase { - let buildFile = objects.buildFiles.values - .first(where: { $0.fileReference == fileReference.reference }) + let buildFile = buildFiles + .first(where: { $0.file == fileReference }) let actualBuildPhase = buildFile - .flatMap { buildFile in objects.buildPhases.values.first { $0.fileReferences.contains(buildFile.reference) } }?.buildPhase + .flatMap { buildFile in buildPhases.first { $0.files.contains(buildFile) } }?.buildPhase var error: String? if let buildPhase = buildPhase.buildPhase { @@ -567,17 +565,13 @@ extension PBXProj { } func getFileReference(paths: [String], names: [String], file: String = #file, line: Int = #line) -> PBXFileReference? { - guard let project = objects.projects.first?.value else { return nil } - guard let mainGroup = objects.groups.getReference(project.mainGroupReference) else { return nil } + guard let mainGroup = projects.first?.mainGroup else { return nil } return getFileReference(group: mainGroup, paths: paths, names: names) } func getMainGroup(function: String = #function, file: String = #file, line: Int = #line) throws -> PBXGroup { - guard let project = objects.projects.first?.value else { - throw failure("Couldn't find project", file: file, line: line) - } - guard let mainGroup = objects.groups.getReference(project.mainGroupReference) else { + guard let mainGroup = projects.first?.mainGroup else { throw failure("Couldn't find main group", file: file, line: line) } return mainGroup @@ -591,10 +585,10 @@ extension PBXProj { let restOfPath = Array(paths.dropFirst()) let restOfName = Array(names.dropFirst()) if restOfPath.isEmpty { - let fileReferences: [PBXFileReference] = group.childrenReferences.compactMap { self.objects.fileReferences.getReference($0) } + let fileReferences: [PBXFileReference] = group.children.compactMap { $0 as? PBXFileReference } return fileReferences.first { $0.path == path && $0.nameOrPath == name } } else { - let groups = group.childrenReferences.compactMap { self.objects.groups.getReference($0) } + let groups = group.children.compactMap { $0 as? PBXGroup } guard let group = groups.first(where: { $0.path == path && $0.nameOrPath == name }) else { return nil } return getFileReference(group: group, paths: restOfPath, names: restOfName) } From 1911d42d275e11b6ca0de040e45922ef8965e10f Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Mon, 1 Oct 2018 12:53:16 +1000 Subject: [PATCH 03/20] remove reference generator ids --- Sources/XcodeGenKit/PBXProjGenerator.swift | 110 ++++++++------------- Sources/XcodeGenKit/ProjectGenerator.swift | 4 - Sources/XcodeGenKit/SourceGenerator.swift | 26 ++--- 3 files changed, 48 insertions(+), 92 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 5ec2ff6e..6cc40bcf 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -27,18 +27,12 @@ public class PBXProjGenerator { public init(project: Project) { self.project = project pbxProj = PBXProj(rootObject: nil, objectVersion: 46) - sourceGenerator = SourceGenerator(project: project) { [unowned self] id, object in - _ = self.addObject(id: id, object) + sourceGenerator = SourceGenerator(project: project) { [unowned self] object in + _ = self.addObject(object) } } - func addObject(id: String, _ object: T) -> T { -// let reference = pbxProj.generateReference(object, id) - pbxProj.add(object: object) - return object - } - - func createObject(id: String, _ object: T) -> T { + func addObject(_ object: T) -> T { pbxProj.add(object: object) return object } @@ -60,8 +54,7 @@ public class PBXProjGenerator { let fileReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference { baseConfiguration = fileReference } - let buildConfig = createObject( - id: config.name, + let buildConfig = addObject( XCBuildConfiguration( name: config.name, buildSettings: buildSettings @@ -72,8 +65,7 @@ public class PBXProjGenerator { } let configName = project.options.defaultConfig ?? buildConfigs.first?.name ?? "" - let buildConfigList = createObject( - id: project.name, + let buildConfigList = addObject( XCConfigurationList( buildConfigurations: buildConfigs, defaultConfigurationName: configName @@ -82,8 +74,7 @@ public class PBXProjGenerator { var derivedGroups: [PBXGroup] = [] - let mainGroup = createObject( - id: "Project", + let mainGroup = addObject( PBXGroup( children: [], sourceTree: .group, @@ -93,8 +84,7 @@ public class PBXProjGenerator { ) ) - let pbxProject = createObject( - id: project.name, + let pbxProject = addObject( PBXProject( name: project.name, buildConfigurationList: buildConfigList, @@ -122,7 +112,7 @@ public class PBXProjGenerator { targetObject = PBXNativeTarget(name: target.name, buildPhases: []) } - targetObjects[target.name] = createObject(id: target.name, targetObject) + targetObjects[target.name] = addObject(targetObject) var explicitFileType: String? var lastKnownFileType: String? @@ -134,8 +124,7 @@ public class PBXProjGenerator { } if !target.isLegacy { - let fileReference = createObject( - id: target.name, + let fileReference = addObject( PBXFileReference( sourceTree: .buildProductsDir, explicitFileType: explicitFileType, @@ -151,8 +140,7 @@ public class PBXProjGenerator { for target in project.aggregateTargets { - let aggregateTarget = createObject( - id: target.name, + let aggregateTarget = addObject( PBXAggregateTarget( name: target.name, productName: target.name @@ -164,8 +152,7 @@ public class PBXProjGenerator { try project.targets.forEach(generateTarget) try project.aggregateTargets.forEach(generateAggregateTarget) - let productGroup = createObject( - id: "Products", + let productGroup = addObject( PBXGroup( children: targetFileReferences.valueArray, sourceTree: .group, @@ -177,8 +164,7 @@ public class PBXProjGenerator { if !carthageFrameworksByPlatform.isEmpty { var platforms: [PBXGroup] = [] for (platform, files) in carthageFrameworksByPlatform { - let platformGroup: PBXGroup = createObject( - id: "Carthage" + platform, + let platformGroup: PBXGroup = addObject( PBXGroup( children: files.sorted { $0.nameOrPath < $1.nameOrPath }, sourceTree: .group, @@ -187,8 +173,7 @@ public class PBXProjGenerator { ) platforms.append(platformGroup) } - let carthageGroup = createObject( - id: "Carthage", + let carthageGroup = addObject( PBXGroup( children: platforms, sourceTree: .group, @@ -200,8 +185,7 @@ public class PBXProjGenerator { } if !frameworkFiles.isEmpty { - let group = createObject( - id: "Frameworks", + let group = addObject( PBXGroup( children: frameworkFiles, sourceTree: .group, @@ -250,12 +234,12 @@ public class PBXProjGenerator { baseConfiguration: baseConfiguration, buildSettings: buildSettings ) - return createObject(id: config.name + target.name, buildConfig) + return addObject(buildConfig) } let dependencies = target.targets.map { generateTargetDependency(from: target.name, to: $0) } - let buildConfigList = createObject(id: target.name, XCConfigurationList( + let buildConfigList = addObject(XCConfigurationList( buildConfigurations: configs, defaultConfigurationName: "" )) @@ -272,8 +256,7 @@ public class PBXProjGenerator { guard let targetObject = targetObjects[target] ?? targetAggregateObjects[target] else { fatalError("target not found") } - let targetProxy = createObject( - id: "\(from)-\(target)", + let targetProxy = addObject( PBXContainerItemProxy( containerPortal: pbxProj.rootObject!, remoteGlobalID: targetObject, @@ -282,8 +265,7 @@ public class PBXProjGenerator { ) ) - let targetDependency = createObject( - id: "\(from)-\(target)", + let targetDependency = addObject( PBXTargetDependency( target: targetObject, targetProxy: targetProxy @@ -311,7 +293,7 @@ public class PBXProjGenerator { runOnlyForDeploymentPostprocessing: buildScript.runOnlyWhenInstalling, showEnvVarsInLog: buildScript.showEnvVars ) - return createObject(id: String(describing: buildScript.name) + shellScript + targetName, shellScriptPhase) + return addObject(shellScriptPhase) } func generateTargetAttributes() -> [PBXTarget: [String: Any]] { @@ -459,8 +441,7 @@ public class PBXProjGenerator { ) if link { let dependencyFile = targetFileReferences[dependencyTargetName]! - let buildFile = createObject( - id: "target dependency build file" + target.name, + let buildFile = addObject( PBXBuildFile(file: dependencyFile) ) targetFrameworkBuildFiles.append(buildFile) @@ -476,8 +457,7 @@ public class PBXProjGenerator { || (target.type.isTest && (dependencyTarget.type.isFramework || dependencyTarget.type == .bundle)) )) if embed { - let embedFile = createObject( - id: "target dependency embed build file" + target.name, + let embedFile = addObject( PBXBuildFile( file: dependencyFileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? !dependencyTarget.type.isExecutable) @@ -515,8 +495,7 @@ public class PBXProjGenerator { ) } - let buildFile = createObject( - id: "framework file reference" + target.name, + let buildFile = addObject( PBXBuildFile(file: fileReference) ) @@ -526,8 +505,7 @@ public class PBXProjGenerator { } if embed { - let embedFile = createObject( - id: "framework embed file" + target.name, + let embedFile = addObject( PBXBuildFile(file: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) copyFrameworksReferences.append(embedFile) @@ -546,8 +524,7 @@ public class PBXProjGenerator { } let fileReference = sourceGenerator.getFileReference(path: frameworkPath, inPath: platformPath) - let buildFile = createObject( - id: "carthage dependency build file" + target.name, + let buildFile = addObject( PBXBuildFile(file: fileReference) ) @@ -573,8 +550,7 @@ public class PBXProjGenerator { if embed { if directlyEmbedCarthage { - let embedFile = createObject( - id: "carthage embed" + target.name, + let embedFile = addObject( PBXBuildFile(file: fileReference, settings: getEmbedSettings(dependency: dependency, codeSign: dependency.codeSign ?? true)) ) copyFrameworksReferences.append(embedFile) @@ -595,7 +571,7 @@ public class PBXProjGenerator { } } .sorted { $0.path.lastComponent < $1.path.lastComponent } - return files.map { createObject(id: $0.path.string + target.name, $0.buildFile) } + return files.map { addObject($0.buildFile) } } func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [PBXBuildFile] { @@ -617,17 +593,17 @@ public class PBXProjGenerator { let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { - let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) + let headersBuildPhase = addObject(PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) buildPhases.append(headersBuildPhase) } let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) - let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(files: sourcesBuildPhaseFiles)) + let sourcesBuildPhase = addObject(PBXSourcesBuildPhase(files: sourcesBuildPhaseFiles)) buildPhases.append(sourcesBuildPhase) let resourcesBuildPhaseFiles = getBuildFilesForPhase(.resources) + copyResourcesReferences if !resourcesBuildPhaseFiles.isEmpty { - let resourcesBuildPhase = createObject(id: target.name, PBXResourcesBuildPhase(files: resourcesBuildPhaseFiles)) + let resourcesBuildPhase = addObject(PBXResourcesBuildPhase(files: resourcesBuildPhaseFiles)) buildPhases.append(resourcesBuildPhase) } @@ -640,8 +616,7 @@ public class PBXProjGenerator { let inputPaths = ["$(DERIVED_SOURCES_DIR)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"] let outputPaths = ["$(BUILT_PRODUCTS_DIR)/include/$(PRODUCT_MODULE_NAME)/$(SWIFT_OBJC_INTERFACE_HEADER_NAME)"] - let script = createObject( - id: "Swift.h" + target.name, + let script = addObject( PBXShellScriptBuildPhase( name: "Copy Swift Objective-C Interface Header", inputPaths: inputPaths, @@ -656,8 +631,7 @@ public class PBXProjGenerator { copyFilesBuildPhasesFiles.merge(getBuildFilesForCopyFilesPhases()) { $0 + $1 } if !copyFilesBuildPhasesFiles.isEmpty { for (copyFiles, buildPhaseFiles) in copyFilesBuildPhasesFiles { - let copyFilesBuildPhase = createObject( - id: "copy files" + copyFiles.destination.rawValue + copyFiles.subpath + target.name, + let copyFilesBuildPhase = addObject( PBXCopyFilesBuildPhase( dstPath: copyFiles.subpath, dstSubfolderSpec: copyFiles.destination.destination, @@ -671,8 +645,7 @@ public class PBXProjGenerator { if !targetFrameworkBuildFiles.isEmpty { - let frameworkBuildPhase = createObject( - id: target.name, + let frameworkBuildPhase = addObject( PBXFrameworksBuildPhase(files: targetFrameworkBuildFiles) ) buildPhases.append(frameworkBuildPhase) @@ -680,8 +653,7 @@ public class PBXProjGenerator { if !extensions.isEmpty { - let copyFilesPhase = createObject( - id: "embed app extensions" + target.name, + let copyFilesPhase = addObject( PBXCopyFilesBuildPhase( dstPath: "", dstSubfolderSpec: .plugins, @@ -696,8 +668,7 @@ public class PBXProjGenerator { copyFrameworksReferences += getBuildFilesForPhase(.frameworks) if !copyFrameworksReferences.isEmpty { - let copyFilesPhase = createObject( - id: "embed frameworks" + target.name, + let copyFilesPhase = addObject( PBXCopyFilesBuildPhase( dstPath: "", dstSubfolderSpec: .frameworks, @@ -711,8 +682,7 @@ public class PBXProjGenerator { if !copyWatchReferences.isEmpty { - let copyFilesPhase = createObject( - id: "embed watch content" + target.name, + let copyFilesPhase = addObject( PBXCopyFilesBuildPhase( dstPath: "$(CONTENTS_FOLDER_PATH)/Watch", dstSubfolderSpec: .productsDirectory, @@ -731,8 +701,7 @@ public class PBXProjGenerator { let outputPaths = carthageFrameworksToEmbed .map { "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/\($0)\($0.contains(".") ? "" : ".framework")" } let carthageExecutable = project.options.carthageExecutablePath ?? "carthage" - let carthageScript = createObject( - id: "Carthage" + target.name, + let carthageScript = addObject( PBXShellScriptBuildPhase( name: "Carthage", inputPaths: inputPaths, @@ -745,8 +714,7 @@ public class PBXProjGenerator { } let buildRules = target.buildRules.map { buildRule in - createObject( - id: "\(target.name)-\(buildRule.action)-\(buildRule.fileType)", + addObject( PBXBuildRule( compilerSpec: buildRule.action.compilerSpec, fileType: buildRule.fileType.fileType, @@ -846,10 +814,10 @@ public class PBXProjGenerator { buildSettings: buildSettings ) buildConfig.baseConfiguration = baseConfiguration - return createObject(id: config.name + target.name, buildConfig) + return addObject(buildConfig) } - let buildConfigList = createObject(id: target.name, XCConfigurationList( + let buildConfigList = addObject(XCConfigurationList( buildConfigurations: configs, defaultConfigurationName: "" )) diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index bf31f60f..47df1847 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -40,10 +40,6 @@ public class ProjectGenerator { func getBuildEntry(_ buildTarget: Scheme.BuildTarget) -> XCScheme.BuildAction.Entry { - guard let pbxTarget = pbxProject.targets(named: buildTarget.target).first else { - fatalError("Unable to find target named \"\(buildTarget.target)\" in \"PBXProj.targets\"") - } - guard let buildableName = project.getTarget(buildTarget.target)?.filename ?? project.getAggregateTarget(buildTarget.target)?.name else { diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index 3540af25..96f9758a 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -18,7 +18,7 @@ class SourceGenerator { private var variantGroupsByPath: [Path: PBXVariantGroup] = [:] private let project: Project - var addObjectClosure: (String, PBXObject) -> Void + var addObjectClosure: (PBXObject) -> Void var targetSourceExcludePaths: Set = [] var defaultExcludedFiles = [ ".DS_Store", @@ -28,18 +28,13 @@ class SourceGenerator { private(set) var knownRegions: Set = [] - init(project: Project, addObjectClosure: @escaping (String, PBXObject) -> Void) { + init(project: Project, addObjectClosure: @escaping (PBXObject) -> Void) { self.project = project self.addObjectClosure = addObjectClosure } - func createObject(id: String, _ object: T) -> T { - addObjectClosure(id, object) - return object - } - - func addObject(id: String, _ object: T) -> T { - addObjectClosure(id, object) + func addObject(_ object: T) -> T { + addObjectClosure(object) return object } @@ -140,8 +135,7 @@ class SourceGenerator { let modelFileReferences = sortedPaths.map { path in - createObject( - id: path.byRemovingBase(path: project.basePath).string, + addObject( PBXFileReference( sourceTree: .group, lastKnownFileType: "wrapper.xcdatamodel", @@ -156,7 +150,7 @@ class SourceGenerator { guard let indexOf = sortedPaths.index(where: { $0 == currentVersionPath }) else { return nil } return modelFileReferences[indexOf] }() - let versionGroup = addObject(id: fileReferencePath.string, XCVersionGroup( + let versionGroup = addObject(XCVersionGroup( currentVersion: currentVersion, path: fileReferencePath.string, sourceTree: sourceTree, @@ -167,9 +161,7 @@ class SourceGenerator { return versionGroup } else { // For all extensions other than `xcdatamodeld` - let fileReference = createObject( - id: path.byRemovingBase(path: project.basePath).string, - PBXFileReference( + let fileReference = addObject(PBXFileReference( sourceTree: sourceTree, name: fileReferenceName, lastKnownFileType: lastKnownFileType, @@ -240,7 +232,7 @@ class SourceGenerator { name: groupName != groupPath ? groupName : nil, path: groupPath ) - groupReference = createObject(id: path.byRemovingBase(path: project.basePath).string, group) + groupReference = addObject(group) groupsByPath[path] = groupReference if isTopLevelGroup { @@ -260,7 +252,7 @@ class SourceGenerator { sourceTree: .group, name: path.lastComponent ) - variantGroup = createObject(id: path.byRemovingBase(path: project.basePath).string, group) + variantGroup = addObject(group) variantGroupsByPath[path] = variantGroup } return variantGroup From 01163012277c0841db4fce1e36c355848d938309 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Mon, 1 Oct 2018 13:19:29 +1000 Subject: [PATCH 04/20] swift_format --- Sources/XcodeGen/main.swift | 2 +- Sources/XcodeGenKit/PBXProjGenerator.swift | 2 +- Sources/XcodeGenKit/ProjectGenerator.swift | 2 +- Sources/XcodeGenKit/SettingsBuilder.swift | 2 +- Sources/XcodeGenKit/SourceGenerator.swift | 3 ++- Tests/XcodeGenKitTests/ProjectGeneratorTests.swift | 6 +++--- Tests/XcodeGenKitTests/SourceGeneratorTests.swift | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Sources/XcodeGen/main.swift b/Sources/XcodeGen/main.swift index b7288ab2..70c91d98 100644 --- a/Sources/XcodeGen/main.swift +++ b/Sources/XcodeGen/main.swift @@ -1,3 +1,4 @@ +import Basic import Commander import Foundation import JSONUtilities @@ -5,7 +6,6 @@ import PathKit import ProjectSpec import XcodeGenKit import xcodeproj -import Basic let version = try Version("1.11.2") diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 6cc40bcf..ee0be093 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -806,7 +806,7 @@ public class PBXProjGenerator { var baseConfiguration: PBXFileReference? if let configPath = target.configFiles[config.name], - let fileReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference{ + let fileReference = sourceGenerator.getContainedFileReference(path: project.basePath + configPath) as? PBXFileReference { baseConfiguration = fileReference } let buildConfig = XCBuildConfiguration( diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index 47df1847..3c34ad44 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -47,7 +47,7 @@ public class ProjectGenerator { } let buildableReference = XCScheme.BuildableReference( referencedContainer: "container:\(project.name).xcodeproj", - blueprintIdentifier: "", //FIXME: pbxTarget.reference, + blueprintIdentifier: "", // FIXME: pbxTarget.reference, buildableName: buildableName, blueprintName: buildTarget.target ) diff --git a/Sources/XcodeGenKit/SettingsBuilder.swift b/Sources/XcodeGenKit/SettingsBuilder.swift index 348f6275..7970b7d2 100644 --- a/Sources/XcodeGenKit/SettingsBuilder.swift +++ b/Sources/XcodeGenKit/SettingsBuilder.swift @@ -1,10 +1,10 @@ +import Basic import Foundation import JSONUtilities import PathKit import ProjectSpec import xcodeproj import Yams -import Basic extension Project { diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index 96f9758a..59e0e83b 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -161,7 +161,8 @@ class SourceGenerator { return versionGroup } else { // For all extensions other than `xcdatamodeld` - let fileReference = addObject(PBXFileReference( + let fileReference = addObject( + PBXFileReference( sourceTree: sourceTree, name: fileReferenceName, lastKnownFileType: lastKnownFileType, diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 8799d2c2..ac106b6e 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -842,7 +842,7 @@ class ProjectGeneratorTests: XCTestCase { ].compactMap { $0 } for buildableReference in buildableReferences { - //FIXME: try expect(buildableReference.blueprintIdentifier) == target.reference + // FIXME: try expect(buildableReference.blueprintIdentifier) == target.reference try expect(buildableReference.blueprintName) == target.name try expect(buildableReference.buildableName) == "\(target.name).\(target.productType!.fileExtension!)" } @@ -915,8 +915,8 @@ class ProjectGeneratorTests: XCTestCase { guard let buildActionEntry = xcscheme.buildAction?.buildActionEntries.first else { throw failure("Build Action entry not found") } - - //FIXME: try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget + + // FIXME: try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget try expect(xcscheme.launchAction?.buildConfiguration) == "Test Debug" try expect(xcscheme.testAction?.buildConfiguration) == "Test Debug" diff --git a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift index 21dd0ead..e4a0440e 100644 --- a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift @@ -93,7 +93,7 @@ class SourceGeneratorTests: XCTestCase { ) guard let buildFile = pbxProj.buildFiles .first(where: { $0.file == fileReference }) else { - throw failure("Cant find build file") + throw failure("Cant find build file") } try expect(buildPhase?.files.count) == 1 try expect(buildPhase?.files.contains(buildFile)) == true From 010487ec350819e9e6febcb64371e5fe0054c5cf Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 4 Oct 2018 20:25:18 +1000 Subject: [PATCH 05/20] use xcodeproj scheme blueprint --- Package.resolved | 14 ++++++------ Package.swift | 4 ++-- Sources/XcodeGenKit/ProjectGenerator.swift | 6 ++++- .../Project.xcodeproj/project.pbxproj | 4 ++-- .../xcshareddata/xcschemes/App_iOS.xcscheme | 20 ++++++++--------- .../xcschemes/App_watchOS.xcscheme | 16 +++++++------- .../xcshareddata/xcschemes/Framework.xcscheme | 22 +++++++++---------- .../xcschemes/iMessageApp.xcscheme | 16 +++++++------- 8 files changed, 53 insertions(+), 49 deletions(-) diff --git a/Package.resolved b/Package.resolved index 0eb910a2..2df37a3a 100644 --- a/Package.resolved +++ b/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/tadija/AEXML.git", "state": { "branch": null, - "revision": "6eea665515d079c338690147082a8084a36484b0", - "version": "4.3.0" + "revision": "54bb8ea6fb693dd3f92a89e5fcc19e199fdeedd0", + "version": "4.3.3" } }, { @@ -60,17 +60,17 @@ "repositoryURL": "https://github.com/apple/swift-package-manager", "state": { "branch": null, - "revision": "6983434787dec4e543e9d398a0a9acf63ccd4da1", - "version": "0.2.1" + "revision": "235aacc514cb81a6881364b0fedcb3dd083228f3", + "version": "0.3.0" } }, { "package": "xcodeproj", "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { - "branch": null, - "revision": "1314329687682864119ecc03c73a413dfc24ade0", - "version": "6.0.1" + "branch": "master", + "revision": "77f84235b304472546f20cd545a632f1c16dc486", + "version": null } }, { diff --git a/Package.swift b/Package.swift index 5ff3c502..9c933b68 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:4.0 +// swift-tools-version:4.2 import PackageDescription @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.0.0"), + .package(url: "https://github.com/tuist/xcodeproj.git", .branch("master")), ], targets: [ .target(name: "XcodeGen", dependencies: [ diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index 3c34ad44..c6280ea4 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -40,6 +40,10 @@ public class ProjectGenerator { func getBuildEntry(_ buildTarget: Scheme.BuildTarget) -> XCScheme.BuildAction.Entry { + guard let pbxTarget = pbxProject.targets(named: buildTarget.target).first else { + fatalError("Unable to find target named \"\(buildTarget.target)\" in \"PBXProj.targets\"") + } + guard let buildableName = project.getTarget(buildTarget.target)?.filename ?? project.getAggregateTarget(buildTarget.target)?.name else { @@ -47,7 +51,7 @@ public class ProjectGenerator { } let buildableReference = XCScheme.BuildableReference( referencedContainer: "container:\(project.name).xcodeproj", - blueprintIdentifier: "", // FIXME: pbxTarget.reference, + blueprint: pbxTarget, buildableName: buildableName, blueprintName: buildTarget.target ) diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 416f4dfb..8f7a9861 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -25,6 +25,7 @@ /* Begin PBXBuildFile section */ 01E1BB1F24B4A80B8FC21EC54DDAFCFB /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */; }; 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */; }; + 0nazXv7ABCyCN9fKu87n = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12BB537967032E2ECE176F4F6BD7FEF1 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */; }; 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */; }; @@ -94,8 +95,7 @@ FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - irhgJ7FX3id0PscP9V19 = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - wRIMwRUI5z90K7MaV9ga = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ba9n4YM2NGxFEyHIyuEc = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme index ff5b9d32..7bde710e 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme @@ -3,8 +3,8 @@ LastUpgradeVersion = "0930" version = "1.3"> + buildImplicitDependencies = "YES" + parallelizeBuildables = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,7 +53,7 @@ @@ -86,7 +86,7 @@ runnableDebuggingMode = "0"> @@ -115,7 +115,7 @@ runnableDebuggingMode = "0"> @@ -136,7 +136,7 @@ buildConfiguration = "Production Debug"> + revealArchiveInOrganizer = "YES" + buildConfiguration = "Production Release"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme index ec20739f..ca5876fd 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme @@ -3,8 +3,8 @@ LastUpgradeVersion = "0930" version = "1.3"> + buildImplicitDependencies = "YES" + parallelizeBuildables = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> @@ -91,7 +91,7 @@ buildConfiguration = "Production Debug"> + revealArchiveInOrganizer = "YES" + buildConfiguration = "Production Release"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme index 2b15a4ca..73e058c2 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme @@ -3,8 +3,8 @@ LastUpgradeVersion = "0930" version = "1.3"> + buildImplicitDependencies = "NO" + parallelizeBuildables = "NO"> @@ -14,7 +14,7 @@ @@ -32,7 +32,7 @@ buildForAnalyzing = "YES"> @@ -50,7 +50,7 @@ @@ -72,7 +72,7 @@ @@ -80,11 +80,11 @@ @@ -101,7 +101,7 @@ runnableDebuggingMode = "0"> @@ -112,7 +112,7 @@ buildConfiguration = "Production Debug"> + revealArchiveInOrganizer = "YES" + buildConfiguration = "Production Release"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme index b3e4fcaa..b08d16c4 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme @@ -3,8 +3,8 @@ LastUpgradeVersion = "0930" version = "1.3"> + buildImplicitDependencies = "YES" + parallelizeBuildables = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> @@ -91,7 +91,7 @@ buildConfiguration = "Production Debug"> + revealArchiveInOrganizer = "YES" + buildConfiguration = "Production Release"> From 7625cd5a586979fc182f6c7d0129dad6c9596f3d Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 4 Oct 2018 20:33:43 +1000 Subject: [PATCH 06/20] remove Swift 4.1 from tests --- .circleci/config.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ec28cdfb..b589018d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,13 +1,5 @@ version: 2 jobs: - macOS_swift_4.1: - macos: - xcode: "9.3.0" - steps: - - checkout - - run: swift build - - run: swift test - - run: make build macOS_swift_4.2: macos: xcode: "10.0.0" @@ -19,5 +11,4 @@ workflows: version: 2 workflow: jobs: - - macOS_swift_4.1 - macOS_swift_4.2 From 590128e15612268c5ec7439a01b75e3c3b731872 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Mon, 8 Oct 2018 17:29:09 +1100 Subject: [PATCH 07/20] =?UTF-8?q?Remove=20header=20build=20files=20that=20?= =?UTF-8?q?aren=E2=80=99t=20in=20a=20build=20phase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/XcodeGenKit/PBXProjGenerator.swift | 10 +++++++--- .../TestProject/Project.xcodeproj/project.pbxproj | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index ee0be093..dffab484 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -592,9 +592,13 @@ public class PBXProjGenerator { buildPhases += try target.prebuildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) - if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { - let headersBuildPhase = addObject(PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) - buildPhases.append(headersBuildPhase) + if !headersBuildPhaseFiles.isEmpty { + if (target.type == .framework || target.type == .dynamicLibrary) { + let headersBuildPhase = addObject(PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) + buildPhases.append(headersBuildPhase) + } else { + headersBuildPhaseFiles.forEach { pbxProj.delete(object: $0) } + } } let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 8f7a9861..7dc3f3eb 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -25,7 +25,6 @@ /* Begin PBXBuildFile section */ 01E1BB1F24B4A80B8FC21EC54DDAFCFB /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4316EA80F87D5B5ED86E105CE1FE35 /* Alamofire.framework */; }; 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */; }; - 0nazXv7ABCyCN9fKu87n = {isa = PBXBuildFile; fileRef = F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12BB537967032E2ECE176F4F6BD7FEF1 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B711E3A23DD91E764A249E83C1D84E3 /* Alamofire.framework */; }; 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */; }; @@ -95,7 +94,6 @@ FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - ba9n4YM2NGxFEyHIyuEc = {isa = PBXBuildFile; fileRef = 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ From a59b8efb032af4fc29c59a53d124f33e3eb779d0 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Mon, 8 Oct 2018 22:08:49 +1100 Subject: [PATCH 08/20] fix file comparison --- Sources/XcodeGenKit/PBXProjGenerator.swift | 2 +- Tests/XcodeGenKitTests/SourceGeneratorTests.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index dcf7d7e4..35e73f3e 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -574,7 +574,7 @@ public class PBXProjGenerator { func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXBuildFile] { let files = sourceFiles .reduce(into: [SourceFile]()) { output, sourceFile in - if !output.contains(where: { $0.fileReference == sourceFile.fileReference }) { + if !output.contains(where: { $0.fileReference === sourceFile.fileReference }) { output.append(sourceFile) } } diff --git a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift index e4a0440e..7dec0a53 100644 --- a/Tests/XcodeGenKitTests/SourceGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SourceGeneratorTests.swift @@ -534,7 +534,7 @@ extension PBXProj { if let buildPhase = buildPhase { let buildFile = buildFiles - .first(where: { $0.file == fileReference }) + .first(where: { $0.file === fileReference }) let actualBuildPhase = buildFile .flatMap { buildFile in buildPhases.first { $0.files.contains(buildFile) } }?.buildPhase From 4b0169e42ac5dac672bb1629f4925a0ab8473380 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Tue, 9 Oct 2018 21:10:44 +1100 Subject: [PATCH 09/20] sorted command line arguments --- Package.resolved | 2 +- Sources/ProjectSpec/XCProjExtensions.swift | 2 +- .../xcschemes/App_iOS Production.xcscheme | 24 +++++++++---------- .../xcschemes/App_iOS Staging.xcscheme | 24 +++++++++---------- .../xcschemes/App_iOS Test.xcscheme | 24 +++++++++---------- 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/Package.resolved b/Package.resolved index 2df37a3a..5840089f 100644 --- a/Package.resolved +++ b/Package.resolved @@ -3,7 +3,7 @@ "pins": [ { "package": "AEXML", - "repositoryURL": "https://github.com/tadija/AEXML.git", + "repositoryURL": "https://github.com/tadija/AEXML", "state": { "branch": null, "revision": "54bb8ea6fb693dd3f92a89e5fcc19e199fdeedd0", diff --git a/Sources/ProjectSpec/XCProjExtensions.swift b/Sources/ProjectSpec/XCProjExtensions.swift index 85f74b4d..bd3541a1 100644 --- a/Sources/ProjectSpec/XCProjExtensions.swift +++ b/Sources/ProjectSpec/XCProjExtensions.swift @@ -60,7 +60,7 @@ extension XCScheme.CommandLineArguments { public convenience init(_ dict: [String: Bool]) { let args = dict.map { tuple in XCScheme.CommandLineArguments.CommandLineArgument(name: tuple.key, enabled: tuple.value) - } + }.sorted { $0.name < $1.name } self.init(arguments: args) } } diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme index 3b14acc5..7c386b2d 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme @@ -60,14 +60,14 @@ - - + + @@ -93,14 +93,14 @@ - - + + @@ -122,14 +122,14 @@ - - + + - - + + @@ -93,14 +93,14 @@ - - + + @@ -122,14 +122,14 @@ - - + + - - + + @@ -93,14 +93,14 @@ - - + + @@ -122,14 +122,14 @@ - - + + Date: Tue, 9 Oct 2018 23:13:30 +1100 Subject: [PATCH 10/20] fix scheme order --- Package.resolved | 2 +- .../xcshareddata/xcschemes/App_iOS Production.xcscheme | 4 ++-- .../xcshareddata/xcschemes/App_iOS Staging.xcscheme | 4 ++-- .../xcshareddata/xcschemes/App_iOS Test.xcscheme | 4 ++-- .../xcshareddata/xcschemes/App_watchOS.xcscheme | 4 ++-- .../xcshareddata/xcschemes/Framework.xcscheme | 4 ++-- .../xcshareddata/xcschemes/iMessageApp.xcscheme | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Package.resolved b/Package.resolved index 5840089f..56b4146a 100644 --- a/Package.resolved +++ b/Package.resolved @@ -69,7 +69,7 @@ "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { "branch": "master", - "revision": "77f84235b304472546f20cd545a632f1c16dc486", + "revision": "df58e7c581f54512a09587fe519b95caeca57ae1", "version": null } }, diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme index 7c386b2d..acf0b9a1 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme @@ -136,7 +136,7 @@ buildConfiguration = "Production Debug"> + buildConfiguration = "Production Release" + revealArchiveInOrganizer = "YES"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme index 70957aa8..1cf28c94 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme @@ -136,7 +136,7 @@ buildConfiguration = "Staging Debug"> + buildConfiguration = "Staging Release" + revealArchiveInOrganizer = "YES"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme index f988a70e..dc623756 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme @@ -136,7 +136,7 @@ buildConfiguration = "Test Debug"> + buildConfiguration = "Test Release" + revealArchiveInOrganizer = "YES"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme index 157e47b1..d5d61020 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme @@ -91,7 +91,7 @@ buildConfiguration = "Production Debug"> + buildConfiguration = "Production Release" + revealArchiveInOrganizer = "YES"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme index 7b1560e7..fa3f0ee7 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme @@ -112,7 +112,7 @@ buildConfiguration = "Production Debug"> + buildConfiguration = "Production Release" + revealArchiveInOrganizer = "YES"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme index 40075b6d..1e73621f 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme @@ -91,7 +91,7 @@ buildConfiguration = "Production Debug"> + buildConfiguration = "Production Release" + revealArchiveInOrganizer = "YES"> From 32a36b0e7fce83b88bd5a4fa81ba621f96335ba2 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Wed, 10 Oct 2018 20:06:15 +1100 Subject: [PATCH 11/20] update to xcodeproj 6.1.0 --- Package.resolved | 6 +- Package.swift | 2 +- Sources/XcodeGenKit/PBXProjGenerator.swift | 2 +- .../Project.xcodeproj/project.pbxproj | 7017 +++++++++-------- .../xcschemes/App_iOS Production.xcscheme | 12 +- .../xcschemes/App_iOS Staging.xcscheme | 12 +- .../xcschemes/App_iOS Test.xcscheme | 12 +- .../xcschemes/App_watchOS.xcscheme | 8 +- .../xcshareddata/xcschemes/Framework.xcscheme | 10 +- .../xcschemes/iMessageApp.xcscheme | 8 +- .../ProjectGeneratorTests.swift | 2 +- 11 files changed, 3547 insertions(+), 3544 deletions(-) diff --git a/Package.resolved b/Package.resolved index 56b4146a..dc529f00 100644 --- a/Package.resolved +++ b/Package.resolved @@ -68,9 +68,9 @@ "package": "xcodeproj", "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { - "branch": "master", - "revision": "df58e7c581f54512a09587fe519b95caeca57ae1", - "version": null + "branch": null, + "revision": "ed33abf5f983232d5a27ada48d120ad7564a3087", + "version": "6.1.0" } }, { diff --git a/Package.swift b/Package.swift index 9c933b68..31d86154 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", .branch("master")), + .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.1.0"), ], targets: [ .target(name: "XcodeGen", dependencies: [ diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 44748112..a441c58f 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -316,7 +316,7 @@ public class PBXProjGenerator { guard let target = self.pbxProj.targets(named: name).first else { continue } // FIX: Can't set in xcproj 5.0+ - //targetAttributes[uiTestTarget, default: [:]].merge(["TestTargetID": target.reference]) + targetAttributes[uiTestTarget, default: [:]].merge(["TestTargetID": target]) } func generateTargetAttributes(_ target: ProjectTarget, pbxTarget: PBXTarget) { diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index b2fea098..eb94ceaf 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXAggregateTarget section */ - AB59C0690172FF119F045336C1F1CA0D /* SuperTarget */ = { + AT_D40C01B2BAD29EDEA392714DFB69FE8F /* SuperTarget */ = { isa = PBXAggregateTarget; - buildConfigurationList = DF19D3419A77EDFF6F8498EFC3E36048 /* Build configuration list for PBXAggregateTarget "SuperTarget" */; + buildConfigurationList = CL_B523BC91AF70F483BF998E2BA8DD6669 /* Build configuration list for PBXAggregateTarget "SuperTarget" */; buildPhases = ( - 69E4B11A07FF06F8306B5646CA2403EF /* MyScript */, + SSBP_831D7D5A30B0F736E1E92F7B5CF9428F /* MyScript */, ); dependencies = ( - 3E978D446B3957A557629CD1DF47004B /* PBXTargetDependency */, - 3FFD524CC10F62CA07750D1026106CB3 /* PBXTargetDependency */, + TD_B8AB4064784522A5F3760CB1372D1BCD /* PBXTargetDependency */, + TD_D056799E80FFF41247BAE692D01142F0 /* PBXTargetDependency */, ); name = SuperTarget; productName = SuperTarget; @@ -23,932 +23,932 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 05FF80F42925EF347DA1AD4437B741FB /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA14B4739058A49371BCE05E035C864B /* Result.framework */; }; - 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */; }; - 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */; }; - 142F53A6CDA1596543042CFD876E1B17 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; - 155B03B91592C42BB787EB5FB9FA4625 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 1A988400D88DEFE16938611C06A0C05F /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */; }; - 1D1EBBAD810AB8280C138C76BE8AF7B5 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 1DAB513CE479D00840BC5D0698409634 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - 1E0C40A9135DA33BF80DDCDD8D9860E8 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */; }; - 242BCE1F2307F71F1BB3EAF2ED63875A /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */; }; - 277BE1159CD7855C287566F29F8939BA /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */; }; - 2A8A171902ADC287F600AAB4C3020AA3 /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */; }; - 2C1F870E81995F5A2616C91AC628A285 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C16ABECF1E65BF7DD6C87529FF02EB72 /* Result.framework */; }; - 2CCCB0657766F9F9527F77A9F42AAF9E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */; }; - 2FADF97C0767D01C764933FD041CE39C /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - 304090AFAC1ED0D09C95B0CB2BEFEB9E /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */; }; - 3243ACA306AD909C8186921F288640DB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E005A2734C32783354AAB8546A12718B /* Localizable.strings */; }; - 334AA8E27C083421E9B411D7CD5D3458 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 34D18588625C4E99A9A1265B3B918A50 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 3702C5D2AA18D181E38607CECF96F6E5 /* Framework2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 370B3DF5D5741094E48BE3C0E00B68E7 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */; }; - 39F00BF22067B72F4FB20F216AFA52DC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 102A33EC5717973ECD491A1CA311D270 /* AppDelegate.swift */; }; - 3D49538E97F4592012896021971B0166 /* LocalizedStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */; }; - 3E8A30F173DFFDBDDD0EBDA2D21A0D77 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */; }; - 3F23F02A130E74E4DACB22F380E3462D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34A22AE37B552B7AA18B27919BF3891D /* Assets.xcassets */; }; - 3F6CF73FD22CC393D7A5EA3B0C66C24C /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; }; - 44B62E9C097529F3D5C7A44A5F777A61 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - 45FE59E8EE4FE189573959804F6F6076 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 486E2AABDE448C496C0FCC393A35E669 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49C46F18756F4E9EE9E1CC328F79A2AD /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */; }; - 4B73A1BC6DB57DC8D7548C59B109CB49 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */; }; - 4EE4F4B638DFB130C8032FB1426CB9F3 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - 5163749E505B01D5ACB99C653525D046 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */; }; - 51FCB6F2D56B68E627A35C53729E423A /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */; }; - 55E7240008DD5452802A41DA6FC7A16F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - 5679C223A300E533FFBBF0AE849DAFFB /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 57CCDA08B5D75FAC5F4FB6CFC78A1356 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C16ABECF1E65BF7DD6C87529FF02EB72 /* Result.framework */; }; - 592B7DC60EC3B3D790E3CED2A478FC8B /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B542FC1F38087BEC4C749F9E0D9122EB /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 5A6137039176A4E48CF6B399372D56EA /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 5C92EF2518A277E7F1236963F83A51C8 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */; }; - 5E6B55D2CDA0C2C1984637D5366FB8AE /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */; }; - 6013ED0F37BB222A6B44D0CB89CE69AE /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 62C7A0E1D8A45D53F0AB0E72C74E5990 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */; }; - 631A7BEDCB97C03DC5E6AED97FDF408E /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */; }; - 63570E645EE5129EF6C454A8444DBA1A /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6693ECDA5AD8C2A96135B694E16C3199 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */; }; - 68642C69AC9333487FC491E6FA98261E /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */; }; - 6CA893D9CEC25B6E3BD17BC1018474E5 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA14B4739058A49371BCE05E035C864B /* Result.framework */; }; - 70258A8A5A4356F2DF3D4CCA017350FF /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */; }; - 702E56BFA3B2A830E24D74FCA3A33D55 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - 722101AFA2DB6FE7A4D8EB1E671F2C93 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C26F9CE571A93EC043EC05B66DBF382 /* Result.framework */; }; - 766C78D100B581A2A469B47A02A0E6D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - 7AE6DE3A93E56909084D4F93795B3C93 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */; }; - 7AF2CCC3F2ECDC1FE82B2C05BEF75B71 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */; }; - 7C2B87BE6AEC5813069E896736FA68A3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */; }; - 809CDDAA142679CDCFCF376C9CA71C09 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */; }; - 815FE8E5731877B7B3F53381086B04B1 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */; }; - 83F27BE20C6E3641BD9BA0C4D26085F4 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CA14B4739058A49371BCE05E035C864B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 8CF2462D2181DDDA1A8E8A1F176F9A47 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8EA31D26241C81C5B7BF40D4B7070B6A /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */; }; - 9D5CC37AFE684374E3CDBE16B0836E9F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B542FC1F38087BEC4C749F9E0D9122EB /* Result.framework */; }; - 9EDBBA9C5BBD228F8A488B96413AAF33 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CA14B4739058A49371BCE05E035C864B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F2CA54E38CDF41C367FAC8E304AF4C5 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */; }; - A37247C6EE3138C4083810BA1BA6C7FD /* XPC Service.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - A4E000AF88BD17B9A2B08452C17C2EEF /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */; }; - A5D1F9A6928F9F6BCCA5230EFCE6998C /* Framework2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - A6CCC432869EB6B8A65A89B565B57EA5 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */; }; - AA5AF277386012CD6CC015073239E50F /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */; }; - AD00993C2491D03BD3A1B6E48D685C29 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */; }; - B9800A5AECDBEAC5CF1F147562441889 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B542FC1F38087BEC4C749F9E0D9122EB /* Result.framework */; }; - B98C8E72B61BBDB105CFBC7A22B5E972 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3D83428EAF171BE82BD12D1EC5A5BE2 /* ViewController.swift */; }; - BD4C8B77EF89CF7F4ED0D1C4713397E4 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - BD8FA9115EB29C8438DE82A4C33C249A /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BE38983978B6D70795D2924F52F3081D /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */; }; - C0D7A2DF599055387B153A51128FB20A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FDFD35E7E9845A353B2B0DF8B68296A8 /* Main.storyboard */; }; - C4D60709F2B70E1E3966F523976EB21F /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C16ABECF1E65BF7DD6C87529FF02EB72 /* Result.framework */; }; - C4F880A62908F7CD24C87CE5D67B0196 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - C5DD61FED061701F52A2AE59334C3964 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EF485495979F5EF324B541071E00D33B /* Assets.xcassets */; }; - D8E194DE99C1389B4335B7112DEA7DC4 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */; }; - D9338C1374B8F82194B44B6F73075123 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */; }; - DB8A64197C4C63F208D8D98C4D87C1B2 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - DB95C341F44FE1E093C948F4F734515B /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */; }; - E249D28B974B22ED41B7BAE7A1CC7468 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - E8B95950224163C1A158F78FD2938D82 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EBC3AA70BAD516864D119DDEEE2C436D /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - EBE418FA45EA5317C0CF06FDCA026876 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F16AD8A4E1A6E1189CE048C03CEA9469 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */; }; - F25CA48D38ED8577DF81395CFBFF0FA5 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; - F3A83212C0353120427786F5F59AD59E /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */; }; - F7E9F427669FE7710D0A19AA4E1156F4 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */; }; - FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; }; - FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; - FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + BF_021628792D80050372F6E56A6C3D0561 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_B993F75B001AB1C272CE83CACC06F0E5 /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + BF_0A6C302954FF03411D6F2704ECF5C738 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_0B3CE605B6243480C374176E01B1BB12 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */; }; + BF_149B8FD8F114C531F675E01FBE814609 /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = FR_1B0304C0E4DC73614BAA550E4A80D41C /* ResourceFolder */; }; + BF_19C973A29D9994B1E0655B1AFC5528AD /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_6542B94EE7DA40CD30BC54DED26C61C7 /* Interface.storyboard */; }; + BF_1C8AAB7468188315681C0879591969B4 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */; }; + BF_1EC32E6544284999188A140FB5FC6E67 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_5CFDEA59B939FA9F3CA4F775B9E6AD2B /* TestProjectUITests.swift */; }; + BF_230439786C4C6849F488A5FADC6A42A5 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_11478908A963CED036DABEF21D85DF01 /* Result.framework */; }; + BF_2356EAE09301354149D45720369BE7F2 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */; }; + BF_30024D558743C8ABC415D87431CDC13C /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_2F56FD7A1F7782467AC9F315B6133468 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_3080067722B357BFC053D89CCDBF5397 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_33EA0F8B2ADA2D24A683FCD8D6235B10 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_3811C1771AF5342AD8F9FEB63A3465B5 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_390908C547D6F8520DF9AA0CC5A98EB1 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_3B680DD27CFCD491675F1BF257A95A24 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_42222C3F9126FFCC21BA88AD21CFD964 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_586C1089A4869FFCB50BE6A26B0FA1E7 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_42944378315033432F76246C09E5A4DB /* Framework2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + BF_47A75C8A7EF15658238E254C846C5C6B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_30676EBEE9BE54AA26CAE69BE744CAE8 /* Main.storyboard */; }; + BF_47FBEFEA08B9642C1F711EDA77FC8C89 /* LocalizedStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_FE6D89DA2D7E7F58340D566590FF221C /* LocalizedStoryboard.storyboard */; }; + BF_47FF83A37355E90F93C0F5B2CFBCE317 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_82E3C6C060C4487B5177509917C3FAE3 /* Standalone.swift */; }; + BF_4D56F3F4D081A77C11325B96DD34D8E1 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_4EBBAD70FA73DDC89BD933866B90DD08 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_4FC40CAFC1CFAD431215635FE1A0ED86 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_51D370314B5DA8E002A908021E459F50 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_A55A35F549FD72775C37ED05342812AA /* Assets.xcassets */; }; + BF_527E94EECC2501E12D28790BF9318FD3 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */; }; + BF_52C8E2C5962601534CE6F00B88FDB048 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_14B7B5469AA17939993A2B25E775D391 /* Main.storyboard */; }; + BF_5336CD16DBDB1654D75AA91B922DEAD6 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_CC3A24A5C8E1815346752C5AB0745176 /* InterfaceController.swift */; }; + BF_569CC068CD4B7BCE35E974D7B61566DB /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_587563F1FBA507305EC4AD895394002E /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; }; + BF_5C6407EDAC3D88B020BCB46724DC1D14 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_63672615CB7B136F2706924EC460710A /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_65835F9276FF0DB8E27D098367F9D03C /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = VG_C247AA37E9057916EDDC65C7B55E2F38 /* Localizable.stringsdict */; }; + BF_67219751DE020023F9D6068EDCCDC445 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_4EB4AAACD714C13E5BC894C71B954299 /* SomeXPCService.xpc */; }; + BF_6EF6DB8898CD050E19303DC481EEFDC5 /* Framework2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_6FA9DA8B67663BAD9E11C1CEBD3BAC43 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_DC1C8DE46218F90A3F4FD5F8DE4F0ABB /* Result.framework */; }; + BF_703163C1C547AD6EF09BEA5F5F5ED49C /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */; }; + BF_729EB1C88A5E43B2342099D81B301F4D /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_76825DD9B3B10103CDAB9D235BDF6A91 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_5FEC20FF753341FD0483E2E4C622DB05 /* MessagesViewController.swift */; }; + BF_77C9BB7BED4F5970D02E69312259FE09 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */; }; + BF_7C9646667C0D479544A2207DEE3E930B /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_81711FB79375EB743254B809B4E246E0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_4DB225C7FF39C16EEFD9A1A5595FCDBC /* AppDelegate.swift */; }; + BF_81C29A47481BF6D67B4CB3F6C836A57E /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; }; + BF_8610CB66872BC72C1690EBD8D102FBC0 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_86F2552DA1E230901EC4CB1A40399019 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */; }; + BF_8765851BF5D99B10C220DDD57B968B10 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_11478908A963CED036DABEF21D85DF01 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_90F0E9253F2768C312B65530931CD55A /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_DBD29CA78CDBBEF69B2C39C6D23BBDA1 /* Empty.h */; }; + BF_910C2D6055BD22643F042545CD21AA78 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */; }; + BF_93A4E1A93C7DB4289E526466D547E55E /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_2F56FD7A1F7782467AC9F315B6133468 /* SomeFramework.framework */; }; + BF_9830FFD35765AACD86D1B619E22830D6 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_98DEE7FD578AA439550E0023A2ECE8D0 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_25BDF725104C5E280D45CBF33F54C72C /* ViewController.swift */; }; + BF_9A74AED05E2F61530BFA0F7D23AF0112 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = VG_EB676136B9F946373D4796800CC00AD4 /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + BF_9D9B97D239384F4CE6E73852E027B787 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_B537FEE8515090D3BA0F5CFF3BC76BB1 /* Assets.xcassets */; }; + BF_A038D29BE93A9CF1654D2B7392845AEA /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; }; + BF_A29F8B04C9DD9ADE1EF5AFDAAA0130D2 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_DBB69305458B16774C88720CDD3978E5 /* ExtensionDelegate.swift */; }; + BF_A314322BB45C75B7EE401C539B1120C5 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; }; + BF_A8A5905BCA8872B2D7B0EF6326B33077 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = FR_291D6D09ACADC420638E83BEE89DFFEB /* MyBundle.bundle */; }; + BF_ABA4EA32A6DB022806126D9C1418BBA3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_ED407ECED0DF010B1E787D238EA91A5D /* Assets.xcassets */; }; + BF_AC2CE59D56846478FDFBB376FF9F9DC0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = VG_BE436BDD64E90EFB600D47AC69B49DD3 /* Localizable.strings */; }; + BF_B2B4B15D6F7B242DBDA39939111282F9 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_D7B45FAEE40EE622B4FA9192609F9717 /* TestProjectTests.swift */; }; + BF_B5446C54E942A18E025D2061A88004A4 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_11478908A963CED036DABEF21D85DF01 /* Result.framework */; }; + BF_B57F9691AD12CA8AE5528A2BAB9E4A43 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_F256536BB07CF3E64C4DD934F75BED9C /* LaunchScreen.storyboard */; }; + BF_B6E31790D07B981E52CD5BC9049FE303 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_B8E824A58BFE0B81E16BB26087FDC8B4 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */; }; + BF_BD2537A230BFC8A86681F0AF34C929DA /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_8B770F475242D91FC20289A3B35CD165 /* Result.framework */; }; + BF_BEFDF47CD7D88221A9C166BD65BF2013 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_C5EA496FE2EDF51C92DC55FD552472E5 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */; }; + BF_C9D24A56926211130F4E25B5D9972B58 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */; }; + BF_CD062A97959629BD672893FDAE89A1E9 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_BB49B398F9291781A60DA963A0BF168C /* NotificationController.swift */; }; + BF_CF8F05DAB384E10C59B65F4D0F51C109 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = FR_0DDA6B4CCFF0DEB79BE16E3F72B95C7F /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_D0676C98017B6FDD96A733CB851645DE /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */; }; + BF_D1EF4AECA866B1132F3F01B826B5EE5D /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = FR_1E05BB66BFD5629EAFDC86A4E869F864 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_D3D64E2595369BBDEF03E07543AE2779 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_D4A5544EDEE7F80A1F9DF1D0684CAFBB /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_DC1C8DE46218F90A3F4FD5F8DE4F0ABB /* Result.framework */; }; + BF_D6588CD7B83034816FFD3A7DB10DAD78 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_16B791CFA2095097A17CC216977DF6EF /* Assets.xcassets */; }; + BF_D9111FF58DCAA51B7251F882EC418E67 /* XPC Service.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_8FCFCDD6A5A7292C72787E2FC0A36294 /* XPC Service.xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_DA12D48C9BCEC64D55B87CE8703432BE /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */; }; + BF_DBF3047DCE71CB2E7B9AC7367F44F8DB /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_CCC97AF230188CAF9B4A66324891CCAD /* StaticLibrary.swift */; }; + BF_E228A4D3997297780216722D71AC9FE5 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */; }; + BF_E2D02DDEDD7DC21831F50A6EAA71E528 /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_C6A9DE885CAF350F6C9D0AC6F7324CD3 /* StandaloneAssets.xcassets */; }; + BF_E35C9C198B45406E64439FF96C17F056 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_E6B3BA0A3A687598FB5CCDF0524E1B10 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */; }; + BF_E6D3B938E2ED4C5339D11D340D3809EF /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_09608EA4613E62B3088BBA06F08E00E9 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_EA0063B4FC2A0980A746D35A8DF71CED /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_06DC429EEFBBA25BC3EE1AA1B4062C10 /* MainInterface.storyboard */; }; + BF_EBC45940911A4942BA04AE1285BF3802 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_A0867B127ACF3ED382EB2FD5133D3EA8 /* Assets.xcassets */; }; + BF_EC0616A0D18A2F723D2AF50287C43669 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_ED8BB47A2229EC3BEE544608267FB82D /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_DC1C8DE46218F90A3F4FD5F8DE4F0ABB /* Result.framework */; }; + BF_F12E44D8E7F617E8A5FD8E1A342E5FAD /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_752FB5DFFBC490CFB9742549A0C48527 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + BF_F6A0FC1F0C9A4EC13BCCBB764D716C3F /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_F7AC9F45ED37FCD5A749FD6F5F4518AF /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_82E3C6C060C4487B5177509917C3FAE3 /* Standalone.swift */; }; + BF_F9E44FE6ECBD936A8C762D425DDBA37C /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_FA28229372AB6236883309181258AF26 /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_7F4496C534F2DF8C4FB9A8D52414990B /* XPC_Service.m */; }; + BF_FA5F3C87A2571E0F39637D118B6C6F8F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_B243640A6F73B3F3D33ABD05ABDBC26B /* Assets.xcassets */; }; + BF_FD13F69A90FB1D5676B97A8C77D710B4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_F5436E663145426483F206F8A61400BC /* main.m */; }; + BF_FF7EBDFA4462D2983743C84CE99D9714 /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_AC5B2FCE520D5306B254D5857E15B6CB /* MoreUnder.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 09709070DE34AF9CD99E9E5EB9990FEA /* PBXContainerItemProxy */ = { + CIP_1AEF07B9F6A9BC9605E82F26AE7BFE15 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; - remoteInfo = App_iOS; + remoteGlobalIDString = NT_6AEE12F93D449E249F5348BBF35D3053; + remoteInfo = StaticLibrary_ObjC_iOS; }; - 0BF678D2C5D11E654050E6FD6AF1321C /* PBXContainerItemProxy */ = { + CIP_1C3D8F2BF099A773651CF8A195466469 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = 24B389B0959F4A6CB05BB732DABDFE40; - remoteInfo = iMessageApp; - }; - 1466B8370FAB4F9766F799F21EB3E6F8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A79BE4AD95C20F54B13A8B76DC061CDE; + remoteGlobalIDString = NT_D4C3E345E90AF9F6CBE8CF226FCFBCD6; remoteInfo = StaticLibrary_ObjC_tvOS; }; - 29DD3982DDC8FB1816F3413908D59361 /* PBXContainerItemProxy */ = { + CIP_1F8C8F9FAC75236BB2F60C3BCAE41C55 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = FE8D0077B0ADF688264AFA16A3FC213E; - remoteInfo = Framework_iOS; - }; - 322420B31CCE201E90F298BE48129574 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6805881B1B6A80ABD523DAF4AFA493E2; - remoteInfo = Framework_macOS; - }; - 3F55262AEB18533E792A957CE709A5F8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 30FE6802B08DEC0251F565BD100C6552; - remoteInfo = Framework2_iOS; - }; - 454E9650A00080FE30274224CC9F46C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CBCC05D0B8E90F960AA198981827667B; - remoteInfo = "App_watchOS Extension"; - }; - 61EAE260C32C57D1ADCEAA01E33B62F0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9F21B9C99E75314E51854589C0A2D40C; - remoteInfo = App_watchOS; - }; - 8E732CDAED0C28344CAED954EDDEC26C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 15879457507DA34869A0D03EEEBD5DFE; - remoteInfo = StaticLibrary_ObjC_macOS; - }; - 931421A32656354E62549752A08EDBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; - remoteInfo = App_iOS; - }; - 96D6946F3C582A81EDB142746A377EF9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 15879457507DA34869A0D03EEEBD5DFE; - remoteInfo = StaticLibrary_ObjC_macOS; - }; - 9B58798122BFEA3C65A8FF0A3351860D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F61DEA90F1B7331EE9B26BBA1F66D1F3; - remoteInfo = "XPC Service"; - }; - CC516AFC796533BF02DD6B96F8DD7E74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DB85CB6A2C15660854D634EF1B0C1FAD; - remoteInfo = App_iOS; - }; - DE00464172E7A41CC51991B9136AA5BD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8A0FE14A3A3815C1F26B447C6178089C; - remoteInfo = iMessageExtension; - }; - ED4E74C287B41CF65512AA3E218CCD4A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; - proxyType = 1; - remoteGlobalIDString = EC0A54038C133DEC055A8FC6B9E86304; + remoteGlobalIDString = NT_6AEE12F93D449E249F5348BBF35D3053; remoteInfo = StaticLibrary_ObjC_iOS; }; - EEB2D30EB7369BDB638EBEEF136463C2 /* PBXContainerItemProxy */ = { + CIP_291A38592460740F400A80DE5DBA9679 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = FE8D0077B0ADF688264AFA16A3FC213E; - remoteInfo = Framework_iOS; + remoteGlobalIDString = NT_BEB0891E36797FE2214A0A9D516D408D; + remoteInfo = App_iOS; }; - F012DD49D84B1DDE30124D55ED320316 /* PBXContainerItemProxy */ = { + CIP_47399FDE0885501C87782313489C95A3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = EA82D195375B7CB5C6034F26A1C28D44; + remoteGlobalIDString = NT_34A020E43FBBD797051205235CD82B70; remoteInfo = StaticLibrary_ObjC_watchOS; }; - FAE0D33AD5DFB0090F183AC2E48BA1D2 /* PBXContainerItemProxy */ = { + CIP_4FA1F11884BC4F5DBDFAC1FBEC60AFC1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 48BA824E9883B72747F77581255D9C94 /* Project object */; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; proxyType = 1; - remoteGlobalIDString = EC0A54038C133DEC055A8FC6B9E86304; - remoteInfo = StaticLibrary_ObjC_iOS; + remoteGlobalIDString = NT_BEB0891E36797FE2214A0A9D516D408D; + remoteInfo = App_iOS; + }; + CIP_5E9F76628F77E820EB9AA60A282D8691 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_6BD068FAAC6AA35C090C48147B94EC6E; + remoteInfo = iMessageApp; + }; + CIP_5F2FD3F0AED59431B4F98D7238CAA733 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_5245AB6D3B3CFBC95AEBADF6E0C593B8; + remoteInfo = "App_watchOS Extension"; + }; + CIP_64ED071F49DC88F8192387D7A18827F1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_15609BCEEB00CBCC4C42110EB0366A6F; + remoteInfo = StaticLibrary_ObjC_macOS; + }; + CIP_6D60DD975DE7829AEA72BD4098DE13E6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_38A9FE87056942A2746E0FF025B52A91; + remoteInfo = App_watchOS; + }; + CIP_73A78E804E93B79E9ED934358CDD7D9D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_BEB0891E36797FE2214A0A9D516D408D; + remoteInfo = App_iOS; + }; + CIP_862C50E687ABB75CCDF71F1157709A4D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_9F72C903B42E1AA3B88F97B917231B15; + remoteInfo = Framework2_iOS; + }; + CIP_A760C88E6F24D3F06081AEBDEB8AE54B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_7D108AE86BED8C9CCF52C2646FA4C5DE; + remoteInfo = Framework_iOS; + }; + CIP_B5B71FB9D5064D7E05E9E44827A87775 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_6A4FC6EE80FB2821AB96D51C3BC8966E; + remoteInfo = iMessageExtension; + }; + CIP_BAAD03920C86C2839C3C93FDA5568ECE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_23509FD082D1F788E6D6431F509B11AF; + remoteInfo = "XPC Service"; + }; + CIP_C82ED1EBAD4D7218ED9694EB7BF4DE74 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_15609BCEEB00CBCC4C42110EB0366A6F; + remoteInfo = StaticLibrary_ObjC_macOS; + }; + CIP_CA46A507405C3CBD7579D2C9A3F8719E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_9D53AF351F8DAE25354F2391248DFCCA; + remoteInfo = Framework_macOS; + }; + CIP_DC690C90FF2F615A1EB93D9803F8D905 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_7D108AE86BED8C9CCF52C2646FA4C5DE; + remoteInfo = Framework_iOS; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 0B85189BAB2D1568EECF81226FF3FF97 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(CONTENTS_FOLDER_PATH)/XPCServices"; - dstSubfolderSpec = 16; - files = ( - A37247C6EE3138C4083810BA1BA6C7FD /* XPC Service.xpc in CopyFiles */, - 1392EC1CE7BD042F68C39A2AAB6AFBF0 /* SomeXPCService.xpc in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1130301AAAB06CA6AE2DBC09B9F82B74 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 3702C5D2AA18D181E38607CECF96F6E5 /* Framework2.framework in Embed Frameworks */, - 1D1EBBAD810AB8280C138C76BE8AF7B5 /* Framework.framework in Embed Frameworks */, - BD8FA9115EB29C8438DE82A4C33C249A /* SomeFramework.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 29FB14F57B61FDFF88A94C7B9D664F12 /* CopyFiles */ = { + CFBP_0B6C520DAC94DDCE678BE15C53528F25 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( - 62C7A0E1D8A45D53F0AB0E72C74E5990 /* StaticLibrary_ObjC.h in CopyFiles */, - 5E6B55D2CDA0C2C1984637D5366FB8AE /* module.modulemap in CopyFiles */, + BF_910C2D6055BD22643F042545CD21AA78 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_527E94EECC2501E12D28790BF9318FD3 /* module.modulemap in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; - 31035708668339C7624CD18BC4971F27 /* Embed Frameworks */ = { + CFBP_1C40B0777F31334440F91C2DB34EF404 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - 83F27BE20C6E3641BD9BA0C4D26085F4 /* Result.framework in Embed Frameworks */, + BF_6EF6DB8898CD050E19303DC481EEFDC5 /* Framework2.framework in Embed Frameworks */, + BF_63672615CB7B136F2706924EC460710A /* Framework.framework in Embed Frameworks */, + BF_30024D558743C8ABC415D87431CDC13C /* SomeFramework.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 3F08DFC5C47AB8175AF8061735995D5F /* CopyFiles */ = { + CFBP_2FE0B34CC045616C815F2675387DA9D5 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; + dstPath = ""; + dstSubfolderSpec = 10; files = ( - 1A988400D88DEFE16938611C06A0C05F /* StaticLibrary_ObjC.h in CopyFiles */, - 1E0C40A9135DA33BF80DDCDD8D9860E8 /* module.modulemap in CopyFiles */, + BF_F9E44FE6ECBD936A8C762D425DDBA37C /* Result.framework in Embed Frameworks */, ); + name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 64735A35127234188A50A9CC433F3D43 /* Embed App Extensions */ = { + CFBP_3BE6FE084D6BE913354F37B1DD9A8D92 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BF_F6A0FC1F0C9A4EC13BCCBB764D716C3F /* Result.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + CFBP_469B033759EACBB99ECBF1008677C590 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - 45FE59E8EE4FE189573959804F6F6076 /* App_watchOS Extension.appex in Embed App Extensions */, + BF_E6D3B938E2ED4C5339D11D340D3809EF /* App_watchOS Extension.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; }; - 800C402270322E33CF2C5DBBAE32DD06 /* Embed Watch Content */ = { + CFBP_4DFB7882C9F8BAB250BB0A6B9457B4CC /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + BF_C5EA496FE2EDF51C92DC55FD552472E5 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_0B3CE605B6243480C374176E01B1BB12 /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CFBP_712E86A86BBF89DB5B5F3874B24B8996 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + BF_DA12D48C9BCEC64D55B87CE8703432BE /* StaticLibrary_ObjC.h in CopyFiles */, + BF_703163C1C547AD6EF09BEA5F5F5ED49C /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CFBP_961F46C30E720E886AEFD11D45DDA199 /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; dstSubfolderSpec = 16; files = ( - 155B03B91592C42BB787EB5FB9FA4625 /* App_watchOS.app in Embed Watch Content */, + BF_CF8F05DAB384E10C59B65F4D0F51C109 /* App_watchOS.app in Embed Watch Content */, ); name = "Embed Watch Content"; runOnlyForDeploymentPostprocessing = 0; }; - 8C62857F0DCEBB22C299F26FCCE769F9 /* Embed App Extensions */ = { + CFBP_AD91D17C63B2CD9AE7EFB9EFD62A8223 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - 34D18588625C4E99A9A1265B3B918A50 /* iMessageExtension.appex in Embed App Extensions */, + BF_42222C3F9126FFCC21BA88AD21CFD964 /* iMessageExtension.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; }; - 916C69163E65CD06E8BD0CCC8D8227C2 /* Embed Frameworks */ = { + CFBP_CB2355266C8BAA9C97863011F3DE05A2 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - 9EDBBA9C5BBD228F8A488B96413AAF33 /* Result.framework in Embed Frameworks */, + BF_4FC40CAFC1CFAD431215635FE1A0ED86 /* Framework.framework in Embed Frameworks */, + BF_8765851BF5D99B10C220DDD57B968B10 /* Result.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 9ABD85CE4BE56F04AD335239A3D8465F /* CopyFiles */ = { + CFBP_CC1EF1963551F7E08925519982C248B9 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( - 815FE8E5731877B7B3F53381086B04B1 /* StaticLibrary_ObjC.h in CopyFiles */, - 5C92EF2518A277E7F1236963F83A51C8 /* module.modulemap in CopyFiles */, + BF_2356EAE09301354149D45720369BE7F2 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_1C8AAB7468188315681C0879591969B4 /* module.modulemap in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; - C03880471FE232DBFD669107EC84C23E /* CopyFiles */ = { + CFBP_CC737A6BF6243B189B109606B0C4B5A2 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/XPCServices"; + dstSubfolderSpec = 16; + files = ( + BF_D9111FF58DCAA51B7251F882EC418E67 /* XPC Service.xpc in CopyFiles */, + BF_67219751DE020023F9D6068EDCCDC445 /* SomeXPCService.xpc in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CFBP_D7E07645BC437C4DFBB212DFC4F3B09E /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( - F3A83212C0353120427786F5F59AD59E /* StaticLibrary_ObjC.h in CopyFiles */, - 70258A8A5A4356F2DF3D4CCA017350FF /* module.modulemap in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DBC722FD0EE319959445B8F14D3EE091 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 334AA8E27C083421E9B411D7CD5D3458 /* Framework.framework in Embed Frameworks */, - 592B7DC60EC3B3D790E3CED2A478FC8B /* Result.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - FE39362C1CB6263D81609FF7975359EE /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - 631A7BEDCB97C03DC5E6AED97FDF408E /* Empty.h in CopyFiles */, + BF_90F0E9253F2768C312B65530931CD55A /* Empty.h in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; - 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; - 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; - 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = ""; }; - 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; - 0BFEFFB973F5EEEF285D98AB90CFC9B0 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = ""; }; - 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; - 102A33EC5717973ECD491A1CA311D270 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 11DBDC38AD04D9F24454201311335431 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; - 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreUnder.swift; sourceTree = ""; }; - 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; - 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Headers; sourceTree = SOURCE_ROOT; }; - 247D8122E426D1FC239D36918CE3C0C5 /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; - 2553AE42F1AAAE25D59E0FE045BA52C2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 25F603F3FBBAB0B8947331C9190A6282 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = iMessageExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 2923CD786EB965107819EFF08193E672 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 2C26F9CE571A93EC043EC05B66DBF382 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; - 2E871C49A75D636E1E87F8904C5BA3D9 /* en */ = {isa = PBXFileReference; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; - 31F27C0F2868434258A846C4ADE4B35A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 34A22AE37B552B7AA18B27919BF3891D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 354650483D8F76CB15A0FB0A99D2657F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; - 3F8D809984627520BE1811A1AC9B1AD9 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; - 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "App_watchOS Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; - 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; - 5FA5EA11F66D659044AB1FB5496EBF25 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = ""; }; - 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; - 6B9588F9AA980468B26837ADE36D0D2E /* Base */ = {isa = PBXFileReference; name = Base; path = Base.lproj/Localizable.stringsdict; sourceTree = ""; }; - 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = ""; }; - 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 72AE3D8A409EF0F4D17EA0BD0EC3BFFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLibrary.swift; sourceTree = ""; }; - 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_Service.h; sourceTree = ""; }; - 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; - 7AF3ACEAC55D3B6352EED8415D5B2951 /* Mintfile */ = {isa = PBXFileReference; path = Mintfile; sourceTree = ""; }; - 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyFramework.h; sourceTree = ""; }; - 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; - 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; - 88CE11E8D928D43BCC70F12A5576D511 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8AFEF032B9B258B97EFBD5B5AA741E8C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A444869BCBB55167EF043EEFFD075A78 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A59DAE760F32225493BDC5D378468EA9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; - AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - AFDDC1A69B4B2637D36C39EE01DF23C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B542FC1F38087BEC4C749F9E0D9122EB /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; - B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; - B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; - BD07DCE20104773C42E7617A09A55BD5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C16ABECF1E65BF7DD6C87529FF02EB72 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; - C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; - C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = ""; }; - C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C8822458902508063262BA655921BA2F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - CA14B4739058A49371BCE05E035C864B /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; - CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_watchOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iMessageApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - D3D83428EAF171BE82BD12D1EC5A5BE2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - D99F14029800E2D9F2434C4B6D718A5E /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; - DB194C9EF763551CE2D5131407E8CF1C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LocalizedStoryboard.strings; sourceTree = ""; }; - DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */ = {isa = PBXFileReference; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; - E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - EC5C7923578F1110EE9EE74505530753 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - EF485495979F5EF324B541071E00D33B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - F04030C0892CAC78F4B4376F938018E3 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; - F435E28C9379AF718A5D502BF3B2FB26 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; - F56A7C74F4A75492F063A0A5BDBBF65C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; - F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; - F9FE9B31FDF6705B4BFB0BCFF437F493 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 2.xcdatamodel"; sourceTree = ""; }; - FFA022D59DE3CD80EDCC5CCEC6DB29C7 /* Folder */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Folder; sourceTree = SOURCE_ROOT; }; + FR_05405007CB77B2E003B19B89401C12AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_07C0A7866967FA47B3F2777BF4AB694A /* XPC_Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_Service.h; sourceTree = ""; }; + FR_0823766D9A1DAB5D3F9CC04A9B35FA3E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_09608EA4613E62B3088BBA06F08E00E9 /* App_watchOS Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "App_watchOS Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_0DDA6B4CCFF0DEB79BE16E3F72B95C7F /* App_watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_watchOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_11478908A963CED036DABEF21D85DF01 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; + FR_11E95FCD1DEB0C8A01A053518C1DAA8E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + FR_1672C218968DD6996F05E3C7688F0718 /* App_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_16B791CFA2095097A17CC216977DF6EF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_1B0304C0E4DC73614BAA550E4A80D41C /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; + FR_1E05BB66BFD5629EAFDC86A4E869F864 /* iMessageApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iMessageApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_22A431E337CB22CE70E39135206EDE27 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; + FR_25BDF725104C5E280D45CBF33F54C72C /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; + FR_2649A01C17A7301DD72EA826604ED8AA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + FR_291D6D09ACADC420638E83BEE89DFFEB /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = ""; }; + FR_2F56FD7A1F7782467AC9F315B6133468 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = ""; }; + FR_347062562C9C212A082B1326BBCDC71B /* Model 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 2.xcdatamodel"; sourceTree = ""; }; + FR_35B9B5E8A2ED60FBB9CED8AE515B16B5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LocalizedStoryboard.strings; sourceTree = ""; }; + FR_3744DA35690747A918CC896E2354C59D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_3B4065B548BFD8CFB3D1153F7106DDA3 /* Folder */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Folder; sourceTree = SOURCE_ROOT; }; + FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Headers; sourceTree = SOURCE_ROOT; }; + FR_3ED99EEAF978C071491E281B8EAFD249 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_41E1155D8A7FDD97B783A1D5B3AD2C5B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_4B58A01ABBE8E0A56B7B5A539C9BF5C7 /* Base */ = {isa = PBXFileReference; name = Base; path = Base.lproj/Localizable.stringsdict; sourceTree = ""; }; + FR_4DB225C7FF39C16EEFD9A1A5595FCDBC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + FR_4EB4AAACD714C13E5BC894C71B954299 /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = ""; }; + FR_5465435FA4A3763830C566514B358969 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_586C1089A4869FFCB50BE6A26B0FA1E7 /* iMessageExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = iMessageExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_58A974F0E117C1384FD1B5147E524659 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; + FR_5B3188BDA6DB0560398A483646F17AE4 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_5CFDEA59B939FA9F3CA4F775B9E6AD2B /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; + FR_5E4B4E53251DE2294715A48CC249EBFD /* Mintfile */ = {isa = PBXFileReference; path = Mintfile; sourceTree = ""; }; + FR_5FEC20FF753341FD0483E2E4C622DB05 /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; + FR_62ECE5A3D0F25415CB50A28226B91EBE /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; + FR_6643E0FE8DD9AAC71691A739070C6833 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; + FR_752FB5DFFBC490CFB9742549A0C48527 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + FR_7532DD7B78451A5040048474AC4FBCCC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + FR_7C782E8FBF41DE8BB1E3789DF2C8C1F7 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; + FR_7C8280C3C5E1D43BBB12A5F0156A8305 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; + FR_7F4496C534F2DF8C4FB9A8D52414990B /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; + FR_81A08F81FED7C42DC346B9611ECD21AA /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; + FR_82E3C6C060C4487B5177509917C3FAE3 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; + FR_8B770F475242D91FC20289A3B35CD165 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; + FR_8FCFCDD6A5A7292C72787E2FC0A36294 /* XPC Service.xpc */ = {isa = PBXFileReference; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_9403DF729F7FE2E6B823C1DACE1E6214 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; + FR_98BB4C8D33EB0E666C136ACD08B21EB3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_9B4B00A3CDADD50167B2393562AEBAB2 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.module; path = module.modulemap; sourceTree = ""; }; + FR_A0867B127ACF3ED382EB2FD5133D3EA8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_A51DE87AC269BC36016F9CAC32B4ECB2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; + FR_A55A35F549FD72775C37ED05342812AA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyFramework.h; sourceTree = ""; }; + FR_AC5B2FCE520D5306B254D5857E15B6CB /* MoreUnder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreUnder.swift; sourceTree = ""; }; + FR_B243640A6F73B3F3D33ABD05ABDBC26B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_B537FEE8515090D3BA0F5CFF3BC76BB1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_B993F75B001AB1C272CE83CACC06F0E5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + FR_BB49B398F9291781A60DA963A0BF168C /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; + FR_BCEF8D29C9B93D3160D8D76DD368C8AD /* en */ = {isa = PBXFileReference; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; + FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; + FR_C5682A1371F91CBD1254C115F0439F12 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + FR_C6A9DE885CAF350F6C9D0AC6F7324CD3 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; + FR_C73B96CEEE97DE429C638EBD9C2F3D2B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + FR_C86A7EAE4DFF4327D1E7D32A597CA4AC /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; + FR_CB1D0F4BB53B8DEE921C6E232193A62B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_CC3A24A5C8E1815346752C5AB0745176 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; + FR_CCC97AF230188CAF9B4A66324891CCAD /* StaticLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLibrary.swift; sourceTree = ""; }; + FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; + FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; + FR_D7B45FAEE40EE622B4FA9192609F9717 /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; + FR_DACDD51068A6E1B7D2470F3E27E5EB2C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_DBB69305458B16774C88720CDD3978E5 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; + FR_DBD29CA78CDBBEF69B2C39C6D23BBDA1 /* Empty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = ""; }; + FR_DC1C8DE46218F90A3F4FD5F8DE4F0ABB /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; + FR_E3314150DA4CEFF65D69CF7DB678E845 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_ED407ECED0DF010B1E787D238EA91A5D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_F18AD4408D0A35A0B9EAE353E8087CDE /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_F5353B71B99044C8C37D7601A8107195 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = ""; }; + FR_F5436E663145426483F206F8A61400BC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FR_F861CF6DF133AAD164CBE6DF2C7CEBFF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1D124A23C4D38CE6B023194E85A64BBA /* Frameworks */ = { + FBP_18D4325BBE506E88E1C742F57AECB0CD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C4D60709F2B70E1E3966F523976EB21F /* Result.framework in Frameworks */, + BF_42944378315033432F76246C09E5A4DB /* Framework2.framework in Frameworks */, + BF_A314322BB45C75B7EE401C539B1120C5 /* Framework.framework in Frameworks */, + BF_B8E824A58BFE0B81E16BB26087FDC8B4 /* Result.framework in Frameworks */, + BF_A038D29BE93A9CF1654D2B7392845AEA /* StaticLibrary_ObjC.a in Frameworks */, + BF_93A4E1A93C7DB4289E526466D547E55E /* SomeFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 266AF93F95F8ECC5F62E443DD79D4263 /* Frameworks */ = { + FBP_1BDCD6E0245ED2400E6FE9AC9C334DE4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9D5CC37AFE684374E3CDBE16B0836E9F /* Result.framework in Frameworks */, + BF_BD2537A230BFC8A86681F0AF34C929DA /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3730EBC6001089E597081CA9CF12AF52 /* Frameworks */ = { + FBP_3C7ADC43EF430300C2A315B0D2860080 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A5D1F9A6928F9F6BCCA5230EFCE6998C /* Framework2.framework in Frameworks */, - F25CA48D38ED8577DF81395CFBFF0FA5 /* Framework.framework in Frameworks */, - 05FF80F42925EF347DA1AD4437B741FB /* Result.framework in Frameworks */, - 142F53A6CDA1596543042CFD876E1B17 /* StaticLibrary_ObjC.a in Frameworks */, - 2A8A171902ADC287F600AAB4C3020AA3 /* SomeFramework.framework in Frameworks */, + BF_6FA9DA8B67663BAD9E11C1CEBD3BAC43 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6F3C985C6701880E8731C4AAFBDC9FEF /* Frameworks */ = { + FBP_4E773D46F6F726BBC0032C576D02FCB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6CA893D9CEC25B6E3BD17BC1018474E5 /* Result.framework in Frameworks */, + BF_81C29A47481BF6D67B4CB3F6C836A57E /* Framework.framework in Frameworks */, + BF_230439786C4C6849F488A5FADC6A42A5 /* Result.framework in Frameworks */, + BF_587563F1FBA507305EC4AD895394002E /* StaticLibrary_ObjC.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 78E2554EF343D4CF421577E8651E5480 /* Frameworks */ = { + FBP_71D96680A2FBE24C4C8BD0B5E55FE034 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 57CCDA08B5D75FAC5F4FB6CFC78A1356 /* Result.framework in Frameworks */, + BF_ED8BB47A2229EC3BEE544608267FB82D /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C79A51DBA8AF7631AEF22BA83E104A04 /* Frameworks */ = { + FBP_935BCDE6C86D2D59A945DC1E6886D7C3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 722101AFA2DB6FE7A4D8EB1E671F2C93 /* Result.framework in Frameworks */, + BF_B5446C54E942A18E025D2061A88004A4 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C8CA7D5902F866D50BF6F9A24BF1D10A /* Frameworks */ = { + FBP_98B76E46D78FD48FB47A41B8891665BC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FA69E7367B9D2F2CB97F57AE7984D9BD /* Framework.framework in Frameworks */, - B9800A5AECDBEAC5CF1F147562441889 /* Result.framework in Frameworks */, - 3F6CF73FD22CC393D7A5EA3B0C66C24C /* StaticLibrary_ObjC.a in Frameworks */, + BF_86F2552DA1E230901EC4CB1A40399019 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F6C2490C6497837A21966090C77C3602 /* Frameworks */ = { + FBP_F6E2D2D110453E88BF9E3FB6A466B8EC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2C1F870E81995F5A2616C91AC628A285 /* Result.framework in Frameworks */, + BF_D4A5544EDEE7F80A1F9DF1D0684CAFBB /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03A84AADCBED3566C47BC9335B8085C7 /* App_macOS */ = { + G_089F5A7E7FB159719FE19B5E84B85D5D /* App_watchOS Extension */ = { isa = PBXGroup; children = ( - 102A33EC5717973ECD491A1CA311D270 /* AppDelegate.swift */, - 34A22AE37B552B7AA18B27919BF3891D /* Assets.xcassets */, - F9FE9B31FDF6705B4BFB0BCFF437F493 /* Info.plist */, - FDFD35E7E9845A353B2B0DF8B68296A8 /* Main.storyboard */, - D3D83428EAF171BE82BD12D1EC5A5BE2 /* ViewController.swift */, - ); - path = App_macOS; - sourceTree = ""; - }; - 0637537049544BDB5A2EB886E765A6C8 /* Module */ = { - isa = PBXGroup; - children = ( - 84A2F7FD70C38F7B09D6809A2586E1A7 /* module.modulemap */, - ); - path = Module; - sourceTree = ""; - }; - 09F7EC373CEDA69072DC9D77495F0E25 /* App_iOS_UITests */ = { - isa = PBXGroup; - children = ( - 31F27C0F2868434258A846C4ADE4B35A /* Info.plist */, - 0BE8C8DF245700F7E0EF36D9F2B8C0E3 /* TestProjectUITests.swift */, - ); - path = App_iOS_UITests; - sourceTree = ""; - }; - 17999F76E13B84D118972DC03BCEA6F2 /* App_iOS_Tests */ = { - isa = PBXGroup; - children = ( - BD07DCE20104773C42E7617A09A55BD5 /* Info.plist */, - 0248345678C3EEA7143459B634AB4F99 /* TestProjectTests.swift */, - ); - path = App_iOS_Tests; - sourceTree = ""; - }; - 1AAEB7BBE834CAB4A205069AE3E0AF11 /* Frameworks */ = { - isa = PBXGroup; - children = ( - F4476AACF02F14D7CACC61F1763C176B /* Carthage */, - 065FC8C30C4E0AB09C1E77734E46F252 /* SomeFramework.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 215025EF88E84A49861B7B0A717D575C /* Configs */ = { - isa = PBXGroup; - children = ( - 0BFEFFB973F5EEEF285D98AB90CFC9B0 /* base.xcconfig */, - C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 384C5FF5A3C798619B2A3F5A9C654EE3 /* Resources */ = { - isa = PBXGroup; - children = ( - C67AA6BA96CF5A5E2A3FBED848E6C3D4 /* MyBundle.bundle */, - ); - path = Resources; - sourceTree = ""; - }; - 4AD39BFA18B0D81C8C8BA3425FE6E91A /* Framework */ = { - isa = PBXGroup; - children = ( - 0F657AA556F579E2C56BC6BC04E3CAF4 /* FrameworkFile.swift */, - 25F603F3FBBAB0B8947331C9190A6282 /* Info.plist */, - 7B0B64C16BE3E860FA96760027A29C74 /* MyFramework.h */, - ); - path = Framework; - sourceTree = ""; - }; - 56936C3686A0928B34562E16F94536C8 /* App_watchOS */ = { - isa = PBXGroup; - children = ( - 0C43CE340B78E88FE95F7E8DF5EC35D2 /* Assets.xcassets */, - 88CE11E8D928D43BCC70F12A5576D511 /* Info.plist */, - C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */, - ); - path = App_watchOS; - sourceTree = ""; - }; - 5BC30B8BA34DE0A67196277EA184BAAC /* CopyFiles */ = { - isa = PBXGroup; - children = ( - 5FCB8A69D323BC3CA127642FCFD887A6 /* Empty.h */, - ); - path = CopyFiles; - sourceTree = ""; - }; - 61FC1E8D4842FD2FBD2E37F067E943F9 /* iOS */ = { - isa = PBXGroup; - children = ( - CA14B4739058A49371BCE05E035C864B /* Result.framework */, - ); - path = iOS; - sourceTree = ""; - }; - 63A2C5F06E17FA2652DDA338F0A32501 /* StaticLibrary_ObjC */ = { - isa = PBXGroup; - children = ( - 0637537049544BDB5A2EB886E765A6C8 /* Module */, - 5878F070E087ECAECE45ADD20BE9D635 /* StaticLibrary_ObjC.h */, - B9F777771795CF517CFB5FE931917C46 /* StaticLibrary_ObjC.m */, - ); - path = StaticLibrary_ObjC; - sourceTree = ""; - }; - 874A71D4E37BA319FD212D21173C1CED /* iMessage MessagesExtension */ = { - isa = PBXGroup; - children = ( - 80294B8FAECA0DC3B83DC6D2FC6FBE59 /* Assets.xcassets */, - 72AE3D8A409EF0F4D17EA0BD0EC3BFFA /* Info.plist */, - 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */, - 67BB19DDA48C227FF6E676B89FDFCAEB /* MessagesViewController.swift */, - ); - path = "iMessage MessagesExtension"; - sourceTree = ""; - }; - B2AA9B645D928F657D399D8F62BB4DDC /* App_watchOS Extension */ = { - isa = PBXGroup; - children = ( - 523DB06F1851416DDCF4B7616911B6CB /* Assets.xcassets */, - B71DECBD66A150B303E116D2F05C0B4E /* ExtensionDelegate.swift */, - AFDDC1A69B4B2637D36C39EE01DF23C3 /* Info.plist */, - 81E39751EDA257E7F7946E95A67FDBBD /* InterfaceController.swift */, - 01801EB5629DB3812650E5E47F3362C8 /* NotificationController.swift */, - 11DBDC38AD04D9F24454201311335431 /* PushNotificationPayload.apns */, + FR_B243640A6F73B3F3D33ABD05ABDBC26B /* Assets.xcassets */, + FR_DBB69305458B16774C88720CDD3978E5 /* ExtensionDelegate.swift */, + FR_3744DA35690747A918CC896E2354C59D /* Info.plist */, + FR_CC3A24A5C8E1815346752C5AB0745176 /* InterfaceController.swift */, + FR_BB49B398F9291781A60DA963A0BF168C /* NotificationController.swift */, + FR_7C782E8FBF41DE8BB1E3789DF2C8C1F7 /* PushNotificationPayload.apns */, ); path = "App_watchOS Extension"; sourceTree = ""; }; - BA50A516F5BBC843E3CD4B1845B99334 /* App */ = { + G_0D2DDBB1C39493B8B0EAF9CC23272F2D /* Framework */ = { isa = PBXGroup; children = ( - 10D051136D86691641578C2EB7616D4B /* AppDelegate.swift */, - 083D78A107BD9A58D0F5B30EA9A65E2C /* Assets.xcassets */, - A444869BCBB55167EF043EEFFD075A78 /* Info.plist */, - 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */, - E005A2734C32783354AAB8546A12718B /* Localizable.strings */, - 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */, - 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */, - 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */, - 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */, - 3F8D809984627520BE1811A1AC9B1AD9 /* module.modulemap */, - D68FD4BD70DF5429E43E14A65FDF9D81 /* ViewController.swift */, + FR_261C31660333EF514356EFCBDB368EAB /* FrameworkFile.swift */, + FR_F861CF6DF133AAD164CBE6DF2C7CEBFF /* Info.plist */, + FR_A957DAE2193BE1E970F452BFEFF3EBF6 /* MyFramework.h */, + ); + path = Framework; + sourceTree = ""; + }; + G_23236546763854F4301D7847EBA0A2BF /* XPC Service */ = { + isa = PBXGroup; + children = ( + FR_98BB4C8D33EB0E666C136ACD08B21EB3 /* Info.plist */, + FR_F5436E663145426483F206F8A61400BC /* main.m */, + FR_07C0A7866967FA47B3F2777BF4AB694A /* XPC_Service.h */, + FR_7F4496C534F2DF8C4FB9A8D52414990B /* XPC_Service.m */, + FR_81A08F81FED7C42DC346B9611ECD21AA /* XPC_ServiceProtocol.h */, + ); + path = "XPC Service"; + sourceTree = ""; + }; + G_26EB72A03E79484F94412C6DF07B2C65 /* iOS */ = { + isa = PBXGroup; + children = ( + FR_CEAE8D9C3F3920D6EADE5455C188EAAE /* Result.framework */, + ); + path = iOS; + sourceTree = ""; + }; + G_2C00D0D23CBE29FF5F6DFEB95CBF2ECA /* UnderFileGroup */ = { + isa = PBXGroup; + children = ( + FR_AC5B2FCE520D5306B254D5857E15B6CB /* MoreUnder.swift */, + ); + path = UnderFileGroup; + sourceTree = ""; + }; + G_322C327C1DB8AE7E0B99EF59318DFE22 /* Resources */ = { + isa = PBXGroup; + children = ( + FR_291D6D09ACADC420638E83BEE89DFFEB /* MyBundle.bundle */, + ); + path = Resources; + sourceTree = ""; + }; + G_3569DDFAF0CD0D2E17F8D05B12F9A7BA /* tvOS */ = { + isa = PBXGroup; + children = ( + FR_8B770F475242D91FC20289A3B35CD165 /* Result.framework */, + ); + path = tvOS; + sourceTree = ""; + }; + G_373C03E19EC66ABB051FC35B4E57A52E /* App_iOS_UITests */ = { + isa = PBXGroup; + children = ( + FR_0823766D9A1DAB5D3F9CC04A9B35FA3E /* Info.plist */, + FR_5CFDEA59B939FA9F3CA4F775B9E6AD2B /* TestProjectUITests.swift */, + ); + path = App_iOS_UITests; + sourceTree = ""; + }; + G_415E92CCC7C77CD8BB161FA75E8B66EF /* iMessage MessagesExtension */ = { + isa = PBXGroup; + children = ( + FR_16B791CFA2095097A17CC216977DF6EF /* Assets.xcassets */, + FR_E3314150DA4CEFF65D69CF7DB678E845 /* Info.plist */, + VG_06DC429EEFBBA25BC3EE1AA1B4062C10 /* MainInterface.storyboard */, + FR_5FEC20FF753341FD0483E2E4C622DB05 /* MessagesViewController.swift */, + ); + path = "iMessage MessagesExtension"; + sourceTree = ""; + }; + G_4401384B8D17D0B62305BE82DE0660D2 /* App_iOS_Tests */ = { + isa = PBXGroup; + children = ( + FR_CB1D0F4BB53B8DEE921C6E232193A62B /* Info.plist */, + FR_D7B45FAEE40EE622B4FA9192609F9717 /* TestProjectTests.swift */, + ); + path = App_iOS_Tests; + sourceTree = ""; + }; + G_4A1045347B09A484656D26436E35FDCC /* StaticLibrary_ObjC */ = { + isa = PBXGroup; + children = ( + G_AFE0E055A99B8BF7C44E69B9B69889C8 /* Module */, + FR_D0BE69522DB875ADB041E9135E0767CA /* StaticLibrary_ObjC.h */, + FR_C2A280C4FA602E6610BCFB820602B69E /* StaticLibrary_ObjC.m */, + ); + path = StaticLibrary_ObjC; + sourceTree = ""; + }; + G_54CAD56F6F3EAD10E9DB8D50B52D09F3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + G_A1CE8BFBEAC6AFDC64D7068C3CE11421 /* Carthage */, + FR_2F56FD7A1F7782467AC9F315B6133468 /* SomeFramework.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + G_68375B6CA3E19FBBA0246B55B60849C0 /* App_macOS */ = { + isa = PBXGroup; + children = ( + FR_4DB225C7FF39C16EEFD9A1A5595FCDBC /* AppDelegate.swift */, + FR_A55A35F549FD72775C37ED05342812AA /* Assets.xcassets */, + FR_3ED99EEAF978C071491E281B8EAFD249 /* Info.plist */, + VG_14B7B5469AA17939993A2B25E775D391 /* Main.storyboard */, + FR_25BDF725104C5E280D45CBF33F54C72C /* ViewController.swift */, + ); + path = App_macOS; + sourceTree = ""; + }; + G_77F9CDD1713BAEF02DF44C1EA19D86B8 /* Mac */ = { + isa = PBXGroup; + children = ( + FR_11478908A963CED036DABEF21D85DF01 /* Result.framework */, + ); + path = Mac; + sourceTree = ""; + }; + G_7C1E92BE8CA995A6B0952C8AE6F5ADF9 /* App_watchOS */ = { + isa = PBXGroup; + children = ( + FR_ED407ECED0DF010B1E787D238EA91A5D /* Assets.xcassets */, + FR_DACDD51068A6E1B7D2470F3E27E5EB2C /* Info.plist */, + VG_6542B94EE7DA40CD30BC54DED26C61C7 /* Interface.storyboard */, + ); + path = App_watchOS; + sourceTree = ""; + }; + G_81658721738C48797F805CC891E70B6F /* Configs */ = { + isa = PBXGroup; + children = ( + FR_F5353B71B99044C8C37D7601A8107195 /* base.xcconfig */, + FR_22A431E337CB22CE70E39135206EDE27 /* config.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + G_8F5765334752A7E52B1E63ACAC466729 /* App */ = { + isa = PBXGroup; + children = ( + FR_B993F75B001AB1C272CE83CACC06F0E5 /* AppDelegate.swift */, + FR_A0867B127ACF3ED382EB2FD5133D3EA8 /* Assets.xcassets */, + FR_05405007CB77B2E003B19B89401C12AB /* Info.plist */, + VG_F256536BB07CF3E64C4DD934F75BED9C /* LaunchScreen.storyboard */, + VG_BE436BDD64E90EFB600D47AC69B49DD3 /* Localizable.strings */, + VG_C247AA37E9057916EDDC65C7B55E2F38 /* Localizable.stringsdict */, + VG_FE6D89DA2D7E7F58340D566590FF221C /* LocalizedStoryboard.storyboard */, + VG_30676EBEE9BE54AA26CAE69BE744CAE8 /* Main.storyboard */, + VG_EB676136B9F946373D4796800CC00AD4 /* Model.xcdatamodeld */, + FR_9B4B00A3CDADD50167B2393562AEBAB2 /* module.modulemap */, + FR_752FB5DFFBC490CFB9742549A0C48527 /* ViewController.swift */, ); name = App; path = App_iOS; sourceTree = ""; }; - BEB2E21F3B6F8B8E6CA0CB877DE3D47D /* Vendor */ = { + G_9DEB15811B31C2D4D4B63339FBE33149 /* FileGroup */ = { isa = PBXGroup; children = ( - 7047649EC963EC43D7BC538E7D8607CC /* SomeXPCService.xpc */, - ); - path = Vendor; - sourceTree = ""; - }; - C27E200F9D2708164A4BDD75B7A861BC /* StandaloneFiles */ = { - isa = PBXGroup; - children = ( - 7A5E91CF52DCCAC8D07B999177AAB3B7 /* Standalone.swift */, - 02537F8F3DAD9BF1F249FF662131F1F5 /* StandaloneAssets.xcassets */, - ); - path = StandaloneFiles; - sourceTree = ""; - }; - C30E33740CB17218735DAE1FFFC565AE /* FileGroup */ = { - isa = PBXGroup; - children = ( - D81BDF703E98A5351121B96103BD52A6 /* UnderFileGroup */, + G_2C00D0D23CBE29FF5F6DFEB95CBF2ECA /* UnderFileGroup */, ); path = FileGroup; sourceTree = ""; }; - D59738133ECA1ACC9C32CAD22FBEF0F4 /* StaticLibrary_Swift */ = { + G_9E36E5E1B7BEC6A8D683D2E36CE21BCE /* CopyFiles */ = { isa = PBXGroup; children = ( - 75B653BE433FA2C7F27E0DD742C56972 /* StaticLibrary.swift */, + FR_DBD29CA78CDBBEF69B2C39C6D23BBDA1 /* Empty.h */, ); - path = StaticLibrary_Swift; + path = CopyFiles; sourceTree = ""; }; - D81BDF703E98A5351121B96103BD52A6 /* UnderFileGroup */ = { + G_A1CE8BFBEAC6AFDC64D7068C3CE11421 /* Carthage */ = { isa = PBXGroup; children = ( - 1359BCAE8548E7063115210477D5CB83 /* MoreUnder.swift */, + G_26EB72A03E79484F94412C6DF07B2C65 /* iOS */, + G_77F9CDD1713BAEF02DF44C1EA19D86B8 /* Mac */, + G_3569DDFAF0CD0D2E17F8D05B12F9A7BA /* tvOS */, + G_CC8E08E619EF6EA96B28904C6651F6B8 /* watchOS */, ); - path = UnderFileGroup; + name = Carthage; + path = Carthage/Build; sourceTree = ""; }; - DA18B6EB7FF6E1DAACDFA5EB93833C54 /* watchOS */ = { + G_AFE0E055A99B8BF7C44E69B9B69889C8 /* Module */ = { isa = PBXGroup; children = ( - C16ABECF1E65BF7DD6C87529FF02EB72 /* Result.framework */, + FR_96127F4D9D804B89024AB846F0961621 /* module.modulemap */, ); - path = watchOS; + path = Module; sourceTree = ""; }; - E0B77C999E8E6D192A135A06E7331C27 /* Mac */ = { + G_B0D2DFD450BCF614AA46E474644F2CE3 /* Products */ = { isa = PBXGroup; children = ( - B542FC1F38087BEC4C749F9E0D9122EB /* Result.framework */, + FR_5B3188BDA6DB0560398A483646F17AE4 /* App_iOS_Tests.xctest */, + FR_9403DF729F7FE2E6B823C1DACE1E6214 /* App_iOS_UITests.xctest */, + FR_1672C218968DD6996F05E3C7688F0718 /* App_iOS.app */, + FR_F18AD4408D0A35A0B9EAE353E8087CDE /* App_macOS.app */, + FR_09608EA4613E62B3088BBA06F08E00E9 /* App_watchOS Extension.appex */, + FR_0DDA6B4CCFF0DEB79BE16E3F72B95C7F /* App_watchOS.app */, + FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, + FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, + FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, + FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, + FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, + FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, + FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, + FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, + FR_1E05BB66BFD5629EAFDC86A4E869F864 /* iMessageApp.app */, + FR_586C1089A4869FFCB50BE6A26B0FA1E7 /* iMessageExtension.appex */, + FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, + FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, + FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, + FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, + FR_5465435FA4A3763830C566514B358969 /* StaticLibrary_Swift.a */, + FR_8FCFCDD6A5A7292C72787E2FC0A36294 /* XPC Service.xpc */, ); - path = Mac; + name = Products; sourceTree = ""; }; - ECD23E49A0CA25E14EC0D028673840D6 /* iMessage */ = { + G_CBE9DB02095FA0DF8A7ECE76A4BD81A4 = { isa = PBXGroup; children = ( - EF485495979F5EF324B541071E00D33B /* Assets.xcassets */, - 2923CD786EB965107819EFF08193E672 /* Info.plist */, - ); - path = iMessage; - sourceTree = ""; - }; - EDFE6B7A5CE9583846B704EE371675F2 = { - isa = PBXGroup; - children = ( - BA50A516F5BBC843E3CD4B1845B99334 /* App */, - 17999F76E13B84D118972DC03BCEA6F2 /* App_iOS_Tests */, - 09F7EC373CEDA69072DC9D77495F0E25 /* App_iOS_UITests */, - 03A84AADCBED3566C47BC9335B8085C7 /* App_macOS */, - 56936C3686A0928B34562E16F94536C8 /* App_watchOS */, - B2AA9B645D928F657D399D8F62BB4DDC /* App_watchOS Extension */, - 215025EF88E84A49861B7B0A717D575C /* Configs */, - 5BC30B8BA34DE0A67196277EA184BAAC /* CopyFiles */, - C30E33740CB17218735DAE1FFFC565AE /* FileGroup */, - 4AD39BFA18B0D81C8C8BA3425FE6E91A /* Framework */, - ECD23E49A0CA25E14EC0D028673840D6 /* iMessage */, - 874A71D4E37BA319FD212D21173C1CED /* iMessage MessagesExtension */, - 384C5FF5A3C798619B2A3F5A9C654EE3 /* Resources */, - C27E200F9D2708164A4BDD75B7A861BC /* StandaloneFiles */, - 63A2C5F06E17FA2652DDA338F0A32501 /* StaticLibrary_ObjC */, - D59738133ECA1ACC9C32CAD22FBEF0F4 /* StaticLibrary_Swift */, - BEB2E21F3B6F8B8E6CA0CB877DE3D47D /* Vendor */, - F37F48EF1C25643F0E408DC3E115895A /* XPC Service */, - FFA022D59DE3CD80EDCC5CCEC6DB29C7 /* Folder */, - 224967658A2D92DC2BD9D665A1CA1F5F /* Headers */, - 7AF3ACEAC55D3B6352EED8415D5B2951 /* Mintfile */, - 138DC1A4CB4E585A69355474092AE0E0 /* ResourceFolder */, - 247D8122E426D1FC239D36918CE3C0C5 /* SomeFile */, - 1AAEB7BBE834CAB4A205069AE3E0AF11 /* Frameworks */, - FC1E35057FBB1EE0597B70D0D9EDF4EE /* Products */, + G_8F5765334752A7E52B1E63ACAC466729 /* App */, + G_4401384B8D17D0B62305BE82DE0660D2 /* App_iOS_Tests */, + G_373C03E19EC66ABB051FC35B4E57A52E /* App_iOS_UITests */, + G_68375B6CA3E19FBBA0246B55B60849C0 /* App_macOS */, + G_7C1E92BE8CA995A6B0952C8AE6F5ADF9 /* App_watchOS */, + G_089F5A7E7FB159719FE19B5E84B85D5D /* App_watchOS Extension */, + G_81658721738C48797F805CC891E70B6F /* Configs */, + G_9E36E5E1B7BEC6A8D683D2E36CE21BCE /* CopyFiles */, + G_9DEB15811B31C2D4D4B63339FBE33149 /* FileGroup */, + G_0D2DDBB1C39493B8B0EAF9CC23272F2D /* Framework */, + G_DFE333D63D37FEA4C705A105F9FE0C2A /* iMessage */, + G_415E92CCC7C77CD8BB161FA75E8B66EF /* iMessage MessagesExtension */, + G_322C327C1DB8AE7E0B99EF59318DFE22 /* Resources */, + G_D0428A559D8B50225BCD0A3640D8B431 /* StandaloneFiles */, + G_4A1045347B09A484656D26436E35FDCC /* StaticLibrary_ObjC */, + G_CC2410394CB552EF47011133E3A148F5 /* StaticLibrary_Swift */, + G_EEC8BB7E2370237E3F5D64AA1BD42CC9 /* Vendor */, + G_23236546763854F4301D7847EBA0A2BF /* XPC Service */, + FR_3B4065B548BFD8CFB3D1153F7106DDA3 /* Folder */, + FR_3DD4DE355C21662A9169EE41C44F73E3 /* Headers */, + FR_5E4B4E53251DE2294715A48CC249EBFD /* Mintfile */, + FR_1B0304C0E4DC73614BAA550E4A80D41C /* ResourceFolder */, + FR_C86A7EAE4DFF4327D1E7D32A597CA4AC /* SomeFile */, + G_54CAD56F6F3EAD10E9DB8D50B52D09F3 /* Frameworks */, + G_B0D2DFD450BCF614AA46E474644F2CE3 /* Products */, ); indentWidth = 2; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; - EF06950CAC36EBAD861CAD7CA561D440 /* tvOS */ = { + G_CC2410394CB552EF47011133E3A148F5 /* StaticLibrary_Swift */ = { isa = PBXGroup; children = ( - 2C26F9CE571A93EC043EC05B66DBF382 /* Result.framework */, + FR_CCC97AF230188CAF9B4A66324891CCAD /* StaticLibrary.swift */, ); - path = tvOS; + path = StaticLibrary_Swift; sourceTree = ""; }; - F37F48EF1C25643F0E408DC3E115895A /* XPC Service */ = { + G_CC8E08E619EF6EA96B28904C6651F6B8 /* watchOS */ = { isa = PBXGroup; children = ( - 8AFEF032B9B258B97EFBD5B5AA741E8C /* Info.plist */, - AC31952D4BF4BB8CC21459D75DCB7DC9 /* main.m */, - 77532D0489A67876EE56705C71C908C6 /* XPC_Service.h */, - 508B113F244D2D7F7731ED871B2F16DA /* XPC_Service.m */, - F8D572C96FEC4C18AE61EB3D4D84466C /* XPC_ServiceProtocol.h */, + FR_DC1C8DE46218F90A3F4FD5F8DE4F0ABB /* Result.framework */, ); - path = "XPC Service"; + path = watchOS; sourceTree = ""; }; - F4476AACF02F14D7CACC61F1763C176B /* Carthage */ = { + G_D0428A559D8B50225BCD0A3640D8B431 /* StandaloneFiles */ = { isa = PBXGroup; children = ( - 61FC1E8D4842FD2FBD2E37F067E943F9 /* iOS */, - E0B77C999E8E6D192A135A06E7331C27 /* Mac */, - EF06950CAC36EBAD861CAD7CA561D440 /* tvOS */, - DA18B6EB7FF6E1DAACDFA5EB93833C54 /* watchOS */, + FR_82E3C6C060C4487B5177509917C3FAE3 /* Standalone.swift */, + FR_C6A9DE885CAF350F6C9D0AC6F7324CD3 /* StandaloneAssets.xcassets */, ); - name = Carthage; - path = Carthage/Build; + path = StandaloneFiles; sourceTree = ""; }; - FC1E35057FBB1EE0597B70D0D9EDF4EE /* Products */ = { + G_DFE333D63D37FEA4C705A105F9FE0C2A /* iMessage */ = { isa = PBXGroup; children = ( - C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */, - EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */, - 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */, - AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */, - 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */, - CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */, - E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, - E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, - E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, - E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */, - 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */, - 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */, - 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */, - 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */, - D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */, - 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */, - 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */, - 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */, - 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */, - 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */, - 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */, - DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */, + FR_B537FEE8515090D3BA0F5CFF3BC76BB1 /* Assets.xcassets */, + FR_41E1155D8A7FDD97B783A1D5B3AD2C5B /* Info.plist */, ); - name = Products; + path = iMessage; + sourceTree = ""; + }; + G_EEC8BB7E2370237E3F5D64AA1BD42CC9 /* Vendor */ = { + isa = PBXGroup; + children = ( + FR_4EB4AAACD714C13E5BC894C71B954299 /* SomeXPCService.xpc */, + ); + path = Vendor; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 440F7F1F9382CEDD92D75B89E25552D5 /* Headers */ = { + HBP_1A14716AFB45FE3C40861AEC5BFC7160 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E249D28B974B22ED41B7BAE7A1CC7468 /* Headers in Headers */, - 486E2AABDE448C496C0FCC393A35E669 /* MyFramework.h in Headers */, + BF_0A6C302954FF03411D6F2704ECF5C738 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8200CD1FC8A4EDF8D0C8A971D7B5C35C /* Headers */ = { + HBP_28AB146B2409C5AB0F7A57873541C794 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 63570E645EE5129EF6C454A8444DBA1A /* MyFramework.h in Headers */, + BF_390908C547D6F8520DF9AA0CC5A98EB1 /* Headers in Headers */, + BF_BEFDF47CD7D88221A9C166BD65BF2013 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9C424B9F3AFC563C6A6CE8FA124F8801 /* Headers */ = { + HBP_5B487D2A0AEF5F301CF0DD29039EC911 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FF688241378D1AE956E9A9F46EEBCFAA /* Headers in Headers */, - 6013ED0F37BB222A6B44D0CB89CE69AE /* MyFramework.h in Headers */, + BF_4EBBAD70FA73DDC89BD933866B90DD08 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9EFB55828B52CAA000828935A560E877 /* Headers */ = { + HBP_7854F8DBCA44D8AB407768095D725CA7 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - EBE418FA45EA5317C0CF06FDCA026876 /* MyFramework.h in Headers */, + BF_EC0616A0D18A2F723D2AF50287C43669 /* Headers in Headers */, + BF_569CC068CD4B7BCE35E974D7B61566DB /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A08871F94C4ADE4FF10D349F4ECC06C9 /* Headers */ = { + HBP_98CC32EF86CB88CC66AA4CD229EB6072 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 44B62E9C097529F3D5C7A44A5F777A61 /* Headers in Headers */, - 11620E0E3097992FFB14B60ADB580C14 /* MyFramework.h in Headers */, + BF_9830FFD35765AACD86D1B619E22830D6 /* Headers in Headers */, + BF_3B680DD27CFCD491675F1BF257A95A24 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B6AA01763EF8349E60D1FA4E652778F3 /* Headers */ = { + HBP_9DD85101234CF2E78A49044D618D1D80 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 702E56BFA3B2A830E24D74FCA3A33D55 /* Headers in Headers */, - 8CF2462D2181DDDA1A8E8A1F176F9A47 /* MyFramework.h in Headers */, + BF_7C9646667C0D479544A2207DEE3E930B /* Headers in Headers */, + BF_33EA0F8B2ADA2D24A683FCD8D6235B10 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - BF4B25304A35C041BB8EACF6703B5F3F /* Headers */ = { + HBP_A3CA1B21BE2C36844B1C6BA4D2A20394 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 5679C223A300E533FFBBF0AE849DAFFB /* MyFramework.h in Headers */, + BF_E35C9C198B45406E64439FF96C17F056 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - F3EF44E81C5DEAAC1013F6F98B98D2CA /* Headers */ = { + HBP_D19BC27B3521E3ED15AB860A9AC22D2A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E8B95950224163C1A158F78FD2938D82 /* MyFramework.h in Headers */, + BF_B6E31790D07B981E52CD5BC9049FE303 /* MyFramework.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXLegacyTarget section */ - D47258787A296733EB9A496796369EDC /* Legacy */ = { + LT_5A51AFB390A610885D62F601DE321E4E /* Legacy */ = { isa = PBXLegacyTarget; - buildConfigurationList = 7523052A5C96494802A0431E05947F67 /* Build configuration list for PBXLegacyTarget "Legacy" */; + buildConfigurationList = CL_F8A83116F913B5DD0538C3680E08BDDB /* Build configuration list for PBXLegacyTarget "Legacy" */; buildPhases = ( - 634CFCBFE3760F2A0288F1BF42B66FF9 /* Sources */, + SBP_C18D008976BE0EFD3D3A3C68FB79D271 /* Sources */, ); buildToolPath = /usr/bin/true; dependencies = ( @@ -960,12 +960,12 @@ /* End PBXLegacyTarget section */ /* Begin PBXNativeTarget section */ - 15879457507DA34869A0D03EEEBD5DFE /* StaticLibrary_ObjC_macOS */ = { + NT_15609BCEEB00CBCC4C42110EB0366A6F /* StaticLibrary_ObjC_macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = B2C7678C2E2663B0DB1ED71352D99426 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */; + buildConfigurationList = CL_3BB54CFB2F2EFE7302C0B0709BD0AE04 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */; buildPhases = ( - B07FD4FDF599BF4F54EF8B3381CFF050 /* Sources */, - 9ABD85CE4BE56F04AD335239A3D8465F /* CopyFiles */, + SBP_52AE5DCFB4487297D6889C7F014AD281 /* Sources */, + CFBP_712E86A86BBF89DB5B5F3874B24B8996 /* CopyFiles */, ); buildRules = ( ); @@ -973,354 +973,31 @@ ); name = StaticLibrary_ObjC_macOS; productName = StaticLibrary_ObjC_macOS; - productReference = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; + productReference = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; productType = "com.apple.product-type.library.static"; }; - 1E8C6D55C8B9978E9D6A615CE98A90E0 /* Framework2_tvOS */ = { + NT_193BAF154270D1C21E269EDF2A1BD3F6 /* App_iOS_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = B792E5189C47CA21F95A329FA1C05715 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */; + buildConfigurationList = CL_89763567DCA601C83E4C78A9917D81AD /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; buildPhases = ( - 8200CD1FC8A4EDF8D0C8A971D7B5C35C /* Headers */, - FE2EE5AFF99E31C8919F2875F62884E1 /* Sources */, + SBP_70B2F11AAC526FDB99D68212C2C92CE6 /* Sources */, + CFBP_2FE0B34CC045616C815F2675387DA9D5 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - ); - name = Framework2_tvOS; - productName = Framework2_tvOS; - productReference = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; - productType = "com.apple.product-type.framework"; - }; - 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 59C3AA3AEA5802DA17DF9B42615D9B6B /* Build configuration list for PBXNativeTarget "iMessageApp" */; - buildPhases = ( - 1C8F955BEA261BDB36838B408C2D7D23 /* Sources */, - DFB4932D20872BF046F9902EB430C6B6 /* Resources */, - 8C62857F0DCEBB22C299F26FCCE769F9 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - D976477E0195A8FFD5043C8BBD4B67C4 /* PBXTargetDependency */, - ); - name = iMessageApp; - productName = iMessageApp; - productReference = D26369BE2A7A98A736F7A13BA924A4A2 /* iMessageApp.app */; - productType = "com.apple.product-type.application.messages"; - }; - 2563A01E1A5E949F2AE1CD7308779FE3 /* Framework_tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0AA719054B034D653457F3861CE722A9 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; - buildPhases = ( - B6AA01763EF8349E60D1FA4E652778F3 /* Headers */, - E74DACDAB11D89D5B824405B81E48D89 /* Sources */, - C79A51DBA8AF7631AEF22BA83E104A04 /* Frameworks */, - ADF413AF548A97CB33898BB4F6211314 /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - 7361EDBA6CC2A0CC04DCB2658DEAA7D3 /* PBXTargetDependency */, - ); - name = Framework_tvOS; - productName = Framework_tvOS; - productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; - productType = "com.apple.product-type.framework"; - }; - 30FE6802B08DEC0251F565BD100C6552 /* Framework2_iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = C6AB800DC544086FBA8F60B46D0000E8 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */; - buildPhases = ( - BF4B25304A35C041BB8EACF6703B5F3F /* Headers */, - 1A0DA3851491E727A610A7638ABB5434 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Framework2_iOS; - productName = Framework2_iOS; - productReference = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; - productType = "com.apple.product-type.framework"; - }; - 347AE2E7B939A276DEE77148A708FDE4 /* Framework_watchOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = CCF68725DCD5EF7FD03872D0B98C32F0 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; - buildPhases = ( - 9C424B9F3AFC563C6A6CE8FA124F8801 /* Headers */, - A0301004CBF36C0004B23102202FA9FE /* Sources */, - F6C2490C6497837A21966090C77C3602 /* Frameworks */, - DABB7DFD3C5DB4EAC8C5D24C79EA4E35 /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - 79285886AE41FF04B4E0274CE54C6C60 /* PBXTargetDependency */, - ); - name = Framework_watchOS; - productName = Framework_watchOS; - productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; - productType = "com.apple.product-type.framework"; - }; - 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9BA95DBD7B862EE1F43DC68338281D0E /* Build configuration list for PBXNativeTarget "Framework_macOS" */; - buildPhases = ( - A08871F94C4ADE4FF10D349F4ECC06C9 /* Headers */, - 1411E21883A09388E140C6D123029288 /* Sources */, - 266AF93F95F8ECC5F62E443DD79D4263 /* Frameworks */, - 78EF33E6A08B3BB88D8805DC3588843C /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - A0D6CD1CF256FD0AA1C77265A094A814 /* PBXTargetDependency */, - ); - name = Framework_macOS; - productName = Framework_macOS; - productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; - productType = "com.apple.product-type.framework"; - }; - 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 330B76D4702856DD55067456FD7A4F4A /* Build configuration list for PBXNativeTarget "iMessageExtension" */; - buildPhases = ( - 35714896F7B0D8F151E1A3B4C04AE0DB /* Sources */, - 32ECF2BB5AFA1C4E9A0F6DFE1417110E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iMessageExtension; - productName = iMessageExtension; - productReference = 28C9901BE3ADBC6102849237424B03D6 /* iMessageExtension.appex */; - productType = "com.apple.product-type.app-extension.messages"; - }; - 8CDD0FC5B69DB55054CAECF513716138 /* App_iOS_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4DF366239AC6F6E9EE59EEA525319ABA /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; - buildPhases = ( - E74227370CF6081A47B8C2AB02479899 /* Sources */, - 31035708668339C7624CD18BC4971F27 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 85A9116EE91FAB1AA6CA20FD4203A941 /* PBXTargetDependency */, + TD_402541000CCC58970431E41C3D928AB8 /* PBXTargetDependency */, ); name = App_iOS_Tests; productName = App_iOS_Tests; - productReference = C7F72C86B98DCABE16D17DDC9894C845 /* App_iOS_Tests.xctest */; + productReference = FR_5B3188BDA6DB0560398A483646F17AE4 /* App_iOS_Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */ = { + NT_23509FD082D1F788E6D6431F509B11AF /* XPC Service */ = { isa = PBXNativeTarget; - buildConfigurationList = 13FC8BD638A49F585CF46B85EF6E6E4E /* Build configuration list for PBXNativeTarget "App_watchOS" */; + buildConfigurationList = CL_6993244897DFCCF1F61A6136FDBE3C01 /* Build configuration list for PBXNativeTarget "XPC Service" */; buildPhases = ( - 8E6FC06C82186DB3FA95E51EFE18711C /* Sources */, - 24E393E5BC60BE4C18A4E88099C92B0B /* Resources */, - 1D124A23C4D38CE6B023194E85A64BBA /* Frameworks */, - 64735A35127234188A50A9CC433F3D43 /* Embed App Extensions */, - 2F13215A0801F44C3CCF154F3EE02A7B /* Carthage */, - ); - buildRules = ( - ); - dependencies = ( - 586BE274C55FC00DE6BE62A0AAC127F6 /* PBXTargetDependency */, - ); - name = App_watchOS; - productName = App_watchOS; - productReference = CFF173E643CE5FF0AE955580CB2B6641 /* App_watchOS.app */; - productType = "com.apple.product-type.application.watchapp2"; - }; - A79BE4AD95C20F54B13A8B76DC061CDE /* StaticLibrary_ObjC_tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = E5E32C1485A6F6887EA6CC53B4584F3E /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */; - buildPhases = ( - C88A74B7BA8B2E80B92E453D04A9688A /* Sources */, - C03880471FE232DBFD669107EC84C23E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_ObjC_tvOS; - productName = StaticLibrary_ObjC_tvOS; - productReference = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; - productType = "com.apple.product-type.library.static"; - }; - B145BCFEB550C3DDF48510BB85CDE8DC /* App_iOS_UITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 933D4300D58AA7B25E208357C65F2AD3 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; - buildPhases = ( - D037068D88E7DAEB3A373602EE996609 /* Sources */, - 916C69163E65CD06E8BD0CCC8D8227C2 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - A835D5FBAD20741BCF95975E1CD63A7A /* PBXTargetDependency */, - ); - name = App_iOS_UITests; - productName = App_iOS_UITests; - productReference = EABA2B52871944E6E80A12C64E198883 /* App_iOS_UITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - BA741EB2126CE44DAD218BBADD277CA9 /* Framework2_macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = CDA4223FB9077220550DAC72871CFB38 /* Build configuration list for PBXNativeTarget "Framework2_macOS" */; - buildPhases = ( - 9EFB55828B52CAA000828935A560E877 /* Headers */, - ADD1A71858A73905360F9EF440895A09 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Framework2_macOS; - productName = Framework2_macOS; - productReference = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; - productType = "com.apple.product-type.framework"; - }; - CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */ = { - isa = PBXNativeTarget; - buildConfigurationList = FC084246C395F08CB12677620BAF2399 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */; - buildPhases = ( - 910907240480D0AFBF32A79A4008D866 /* Sources */, - 918FF44B84209799C8ECD292189E6D55 /* Resources */, - 78E2554EF343D4CF421577E8651E5480 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "App_watchOS Extension"; - productName = "App_watchOS Extension"; - productReference = 42CEA852937FACF2B5D933EC8EC14418 /* App_watchOS Extension.appex */; - productType = "com.apple.product-type.watchkit2-extension"; - }; - D20DB1C7D23BB53FF8FD09BAF451A294 /* StaticLibrary_Swift */ = { - isa = PBXNativeTarget; - buildConfigurationList = F40A414D7A0A13368AC9FB64BA5C73AC /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */; - buildPhases = ( - A305A9C4673244353334E95DCDFD735D /* Sources */, - 06FB4F63AAEECCDD060382A3AF8AEF4B /* Copy Swift Objective-C Interface Header */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_Swift; - productName = StaticLibrary_Swift; - productReference = 715B87EA4FFA97FECCBA0D1D269A19F4 /* StaticLibrary_Swift.a */; - productType = "com.apple.product-type.library.static"; - }; - DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5B1322FEBB7A746BD1BF9227D37A7421 /* Build configuration list for PBXNativeTarget "App_iOS" */; - buildPhases = ( - 1C758FAD884F96BE234FBB1BBE295E97 /* Sources */, - FEFBCD77CD631C182084B94EC52BEE33 /* Resources */, - FE39362C1CB6263D81609FF7975359EE /* CopyFiles */, - 3730EBC6001089E597081CA9CF12AF52 /* Frameworks */, - 1130301AAAB06CA6AE2DBC09B9F82B74 /* Embed Frameworks */, - 800C402270322E33CF2C5DBBAE32DD06 /* Embed Watch Content */, - 712CA3288AD8B0F43FAA19930C53500B /* Carthage */, - 974A437754992A1B4A30613EC766AE2C /* Strip Unused Architectures from Frameworks */, - 70D0BCF93538A104153586A9BF269386 /* MyScript */, - ); - buildRules = ( - ); - dependencies = ( - 10B5BED93CB8C9A5B7BB81E996C7F071 /* PBXTargetDependency */, - 107877BC5E43BF7DDE7F77EC0A14BF24 /* PBXTargetDependency */, - 5189C5E269DD98A187BF59169A4FC1D1 /* PBXTargetDependency */, - 5E65F165E37E737337177A885B1D8276 /* PBXTargetDependency */, - 16156D2E07BFBB09D5921589B483FF23 /* PBXTargetDependency */, - ); - name = App_iOS; - productName = App_iOS; - productReference = 9FD5A8B54C9F429451BCCCC3F04CDB99 /* App_iOS.app */; - productType = "com.apple.product-type.application"; - }; - E165F00BB866D2A7087C93650EDB1138 /* App_macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 837376727FE2CF4AE46785F0E9561ED1 /* Build configuration list for PBXNativeTarget "App_macOS" */; - buildPhases = ( - 25185271EDE7FEEC99372505A683359C /* Sources */, - 83D69B533FE35E8D96403BD29AB37F9F /* Resources */, - 0B85189BAB2D1568EECF81226FF3FF97 /* CopyFiles */, - C8CA7D5902F866D50BF6F9A24BF1D10A /* Frameworks */, - DBC722FD0EE319959445B8F14D3EE091 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - BCAEBFE2D144CD4E9F4042CB793B6FFB /* PBXTargetDependency */, - 92AF10FC3AC60DB57A91645E9BDB9B2C /* PBXTargetDependency */, - 632C4C9ABCE4E550CC5CC6F87B5C4DBD /* PBXTargetDependency */, - ); - name = App_macOS; - productName = App_macOS; - productReference = AE0CDFA0B5B4F5D2FBB870B59FE51154 /* App_macOS.app */; - productType = "com.apple.product-type.application"; - }; - E980A2FD24ABE1336B8C24765456F655 /* Framework2_watchOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6D4D2839561B5E9CF0D2C239573C2178 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */; - buildPhases = ( - F3EF44E81C5DEAAC1013F6F98B98D2CA /* Headers */, - 6EA5EBCD13C2DDEB4B9422C07D81B71A /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Framework2_watchOS; - productName = Framework2_watchOS; - productReference = 6CB30008BDEA34CECCA3CBEB51850F9A /* Framework2.framework */; - productType = "com.apple.product-type.framework"; - }; - EA82D195375B7CB5C6034F26A1C28D44 /* StaticLibrary_ObjC_watchOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = D54A0CC77F5631F35C75FEA20D1BA43F /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */; - buildPhases = ( - EBA907A9A32C582C14D2C34324CA3898 /* Sources */, - 29FB14F57B61FDFF88A94C7B9D664F12 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_ObjC_watchOS; - productName = StaticLibrary_ObjC_watchOS; - productReference = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; - productType = "com.apple.product-type.library.static"; - }; - EC0A54038C133DEC055A8FC6B9E86304 /* StaticLibrary_ObjC_iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79A5A52B3AEBCBFB7ED1858548D1282A /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */; - buildPhases = ( - DB71FFE5444FA615A2092FB2C7BDEFA7 /* Sources */, - 3F08DFC5C47AB8175AF8061735995D5F /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_ObjC_iOS; - productName = StaticLibrary_ObjC_iOS; - productReference = 948EA9EE1BAE66408843BF6200620E70 /* StaticLibrary_ObjC.a */; - productType = "com.apple.product-type.library.static"; - }; - F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */ = { - isa = PBXNativeTarget; - buildConfigurationList = 526C1EB2E50CDBABCB448EE2FDF2E5D8 /* Build configuration list for PBXNativeTarget "XPC Service" */; - buildPhases = ( - E32AAD525623BF5008484D641327F1AD /* Sources */, + SBP_669CBAFD2D7234A2BEDCEAA4949ED575 /* Sources */, ); buildRules = ( ); @@ -1328,48 +1005,374 @@ ); name = "XPC Service"; productName = "XPC Service"; - productReference = DBF5F2565C6807B74F18D4ACCE28D071 /* XPC Service.xpc */; + productReference = FR_8FCFCDD6A5A7292C72787E2FC0A36294 /* XPC Service.xpc */; productType = "com.apple.product-type.xpc-service"; }; - FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */ = { + NT_2940463C85DCD0660288786BC66F2C4C /* StaticLibrary_Swift */ = { isa = PBXNativeTarget; - buildConfigurationList = ABBCABD06AD7666C13DD9BAF0C16276E /* Build configuration list for PBXNativeTarget "Framework_iOS" */; + buildConfigurationList = CL_159255858B3EEC02844A3059326A6B93 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */; buildPhases = ( - 440F7F1F9382CEDD92D75B89E25552D5 /* Headers */, - AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */, - 6F3C985C6701880E8731C4AAFBDC9FEF /* Frameworks */, - 2983C9312429A22DF5437C4020B9937E /* MyScript */, + SBP_3DD17ED231CE07543581040F32049525 /* Sources */, + SSBP_4A83147402B05D3C84D21F0487315914 /* Copy Swift Objective-C Interface Header */, ); buildRules = ( ); dependencies = ( - 2EA3B710428DD5AC737E68EA2707702D /* PBXTargetDependency */, + ); + name = StaticLibrary_Swift; + productName = StaticLibrary_Swift; + productReference = FR_5465435FA4A3763830C566514B358969 /* StaticLibrary_Swift.a */; + productType = "com.apple.product-type.library.static"; + }; + NT_34A020E43FBBD797051205235CD82B70 /* StaticLibrary_ObjC_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_2E30D27084B352548CCAA3500158519B /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */; + buildPhases = ( + SBP_924258C7A9F27B13508604CAF625E0D3 /* Sources */, + CFBP_4DFB7882C9F8BAB250BB0A6B9457B4CC /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_watchOS; + productName = StaticLibrary_ObjC_watchOS; + productReference = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; + NT_38A9FE87056942A2746E0FF025B52A91 /* App_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_C50D7BB75115E8561A0975DE1B65E088 /* Build configuration list for PBXNativeTarget "App_watchOS" */; + buildPhases = ( + SBP_ED63FCA00BD617EFF125ECDF9D24FAD8 /* Sources */, + RBP_5623703FDC4F6DF4679D8BAF27518F2F /* Resources */, + FBP_3C7ADC43EF430300C2A315B0D2860080 /* Frameworks */, + CFBP_469B033759EACBB99ECBF1008677C590 /* Embed App Extensions */, + SSBP_7F147E7ED45BAAE2186975B7FF9EB08A /* Carthage */, + ); + buildRules = ( + ); + dependencies = ( + TD_2A43F973A3E1CF675A967054BA52074B /* PBXTargetDependency */, + ); + name = App_watchOS; + productName = App_watchOS; + productReference = FR_0DDA6B4CCFF0DEB79BE16E3F72B95C7F /* App_watchOS.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + NT_5245AB6D3B3CFBC95AEBADF6E0C593B8 /* App_watchOS Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_333C6C3162FB671343E806257FB2A411 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */; + buildPhases = ( + SBP_49F3C650EA105D1EF50817673A8DB33A /* Sources */, + RBP_1BFB64F249645ABF48C3CCDF8D5FA094 /* Resources */, + FBP_F6E2D2D110453E88BF9E3FB6A466B8EC /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "App_watchOS Extension"; + productName = "App_watchOS Extension"; + productReference = FR_09608EA4613E62B3088BBA06F08E00E9 /* App_watchOS Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; + NT_66B6A18138FD1FB5ECF3FC67B20FF3D3 /* Framework2_tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_A55E6C4018D2631D41C660DBF2113765 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */; + buildPhases = ( + HBP_A3CA1B21BE2C36844B1C6BA4D2A20394 /* Headers */, + SBP_DB9B8E1504ED9DD92AE41067C53B5082 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_tvOS; + productName = Framework2_tvOS; + productReference = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_6A4FC6EE80FB2821AB96D51C3BC8966E /* iMessageExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_3ABBEC1A6EFC98F40894F5E4769650EF /* Build configuration list for PBXNativeTarget "iMessageExtension" */; + buildPhases = ( + SBP_110D7B4160D965B7964619BF78E01DE2 /* Sources */, + RBP_A5B7C086E8F07F5FEE9B99375E375819 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iMessageExtension; + productName = iMessageExtension; + productReference = FR_586C1089A4869FFCB50BE6A26B0FA1E7 /* iMessageExtension.appex */; + productType = "com.apple.product-type.app-extension.messages"; + }; + NT_6A7B08EB167FD3A759C339FDBED7E019 /* Framework_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_674C71F7D7B679C67A944F0110840758 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; + buildPhases = ( + HBP_98CC32EF86CB88CC66AA4CD229EB6072 /* Headers */, + SBP_8990272D7DD45CFBDAB18690861BD4E8 /* Sources */, + FBP_71D96680A2FBE24C4C8BD0B5E55FE034 /* Frameworks */, + SSBP_B07F447D73408EA48C54A8E7F5B8D575 /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + TD_205ABD699FA8E05C47D73E8EB2D0F9EF /* PBXTargetDependency */, + ); + name = Framework_watchOS; + productName = Framework_watchOS; + productReference = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_6AEE12F93D449E249F5348BBF35D3053 /* StaticLibrary_ObjC_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_F6ECF2D45799DBBB48DE9AE80AC280AA /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */; + buildPhases = ( + SBP_D6209A702C851D0CFD1CC2B225986D45 /* Sources */, + CFBP_0B6C520DAC94DDCE678BE15C53528F25 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_iOS; + productName = StaticLibrary_ObjC_iOS; + productReference = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; + NT_6BD068FAAC6AA35C090C48147B94EC6E /* iMessageApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_AA475AE6741D5744A91627E7FAF4C986 /* Build configuration list for PBXNativeTarget "iMessageApp" */; + buildPhases = ( + SBP_20DDAC7BCD11ECA8B08695FE5D7314A9 /* Sources */, + RBP_9291220ECDCB98B69BB31C3E875042EC /* Resources */, + CFBP_AD91D17C63B2CD9AE7EFB9EFD62A8223 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + TD_846DB03B9778D6C8E81FE52A5A212420 /* PBXTargetDependency */, + ); + name = iMessageApp; + productName = iMessageApp; + productReference = FR_1E05BB66BFD5629EAFDC86A4E869F864 /* iMessageApp.app */; + productType = "com.apple.product-type.application.messages"; + }; + NT_7D108AE86BED8C9CCF52C2646FA4C5DE /* Framework_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_9FEF3E411E281B1820B2B067FC1C1B85 /* Build configuration list for PBXNativeTarget "Framework_iOS" */; + buildPhases = ( + HBP_28AB146B2409C5AB0F7A57873541C794 /* Headers */, + SBP_0CB30551A2D40126958D8D6DAF6922E2 /* Sources */, + FBP_98B76E46D78FD48FB47A41B8891665BC /* Frameworks */, + SSBP_13B42B84708A6ABC082BE00176F5DCB2 /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + TD_117F878FC368C83443CEC1707531F7F2 /* PBXTargetDependency */, ); name = Framework_iOS; productName = Framework_iOS; - productReference = E3C43679A1164385CDC2FCB5DD62C634 /* Framework.framework */; + productReference = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_87DF09E78830E7EB3C00B6134A2D5A5D /* Framework2_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_289609080F2D20D506C8A587BC92807B /* Build configuration list for PBXNativeTarget "Framework2_macOS" */; + buildPhases = ( + HBP_5B487D2A0AEF5F301CF0DD29039EC911 /* Headers */, + SBP_C469AFC0C383156AF5C80EBBC089D9FC /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_macOS; + productName = Framework2_macOS; + productReference = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_9D53AF351F8DAE25354F2391248DFCCA /* Framework_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_7A3206BF9A92D4552AE40D148897BB3E /* Build configuration list for PBXNativeTarget "Framework_macOS" */; + buildPhases = ( + HBP_7854F8DBCA44D8AB407768095D725CA7 /* Headers */, + SBP_EA528A5DC6D79AA397B25949B07AE70F /* Sources */, + FBP_935BCDE6C86D2D59A945DC1E6886D7C3 /* Frameworks */, + SSBP_C8F56E533BE956498E644805330168EB /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + TD_BBB2D0EDFD9EF8193F1864D1F3D5F97A /* PBXTargetDependency */, + ); + name = Framework_macOS; + productName = Framework_macOS; + productReference = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_9F72C903B42E1AA3B88F97B917231B15 /* Framework2_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_0562279D56EF60E8CCC0973D2C663637 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */; + buildPhases = ( + HBP_D19BC27B3521E3ED15AB860A9AC22D2A /* Headers */, + SBP_84E9A8BE77910B67B3F2DCD5916DC498 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_iOS; + productName = Framework2_iOS; + productReference = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_A3933B4002C44B46F34B238F654D1362 /* Framework2_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_E92E1636D45B284E44D38EB3EF7C98C9 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */; + buildPhases = ( + HBP_1A14716AFB45FE3C40861AEC5BFC7160 /* Headers */, + SBP_48868408A19D9BBE4A58CA4FAE00C0D4 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_watchOS; + productName = Framework2_watchOS; + productReference = FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; + NT_B91A6EACD6F5192FECA2E95FD531D0CA /* App_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_D72660834ED9ED4EB0E973ABC256E014 /* Build configuration list for PBXNativeTarget "App_macOS" */; + buildPhases = ( + SBP_7EE428F1F0444ACB29B3C5259C04FF6D /* Sources */, + RBP_BA57258FD71062047F5503B4B160FE15 /* Resources */, + CFBP_CC737A6BF6243B189B109606B0C4B5A2 /* CopyFiles */, + FBP_4E773D46F6F726BBC0032C576D02FCB7 /* Frameworks */, + CFBP_CB2355266C8BAA9C97863011F3DE05A2 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + TD_B8F32B4B3CC431FE0EC1C4E7D096E3AC /* PBXTargetDependency */, + TD_35F382102AABCCCEFADCBC201E5B1CE1 /* PBXTargetDependency */, + TD_C762D8FBA80775A921AA5B50422E9349 /* PBXTargetDependency */, + ); + name = App_macOS; + productName = App_macOS; + productReference = FR_F18AD4408D0A35A0B9EAE353E8087CDE /* App_macOS.app */; + productType = "com.apple.product-type.application"; + }; + NT_BEB0891E36797FE2214A0A9D516D408D /* App_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_C7673A8886407721BA5BFA1B18F184D4 /* Build configuration list for PBXNativeTarget "App_iOS" */; + buildPhases = ( + SBP_77EF8BC7FC3D693C9C0C1CB51984F3E2 /* Sources */, + RBP_85DF5DDC76E0E2A78CAFC9A3EC508232 /* Resources */, + CFBP_D7E07645BC437C4DFBB212DFC4F3B09E /* CopyFiles */, + FBP_18D4325BBE506E88E1C742F57AECB0CD /* Frameworks */, + CFBP_1C40B0777F31334440F91C2DB34EF404 /* Embed Frameworks */, + CFBP_961F46C30E720E886AEFD11D45DDA199 /* Embed Watch Content */, + SSBP_7F8DED07519BA4B70C40A9A755844874 /* Carthage */, + SSBP_062CBBF024005F57EECA660F9C7B0C7D /* Strip Unused Architectures from Frameworks */, + SSBP_376C0662E4E8416C049A50660864798B /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + TD_0C5CE0308CB64DB986A853307CCF8A95 /* PBXTargetDependency */, + TD_94E481CDF62CDA1E9B37D1DA08E5A5AF /* PBXTargetDependency */, + TD_4013C738E59E1CA40B4A982AF74E8604 /* PBXTargetDependency */, + TD_266243C3BBC1C83485E1B43C0FFC3626 /* PBXTargetDependency */, + TD_743D7CD7BB700A16A02A7A4A1E02D845 /* PBXTargetDependency */, + ); + name = App_iOS; + productName = App_iOS; + productReference = FR_1672C218968DD6996F05E3C7688F0718 /* App_iOS.app */; + productType = "com.apple.product-type.application"; + }; + NT_D4BAEEEC88124103C8DFF41FCE206DCE /* App_iOS_UITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_DB66C428B606518C825ECFF73A5EF059 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; + buildPhases = ( + SBP_3848ADAF2343866973E57344A1054BE3 /* Sources */, + CFBP_3BE6FE084D6BE913354F37B1DD9A8D92 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + TD_98EB63C93477EA15558367FBAB5797CE /* PBXTargetDependency */, + ); + name = App_iOS_UITests; + productName = App_iOS_UITests; + productReference = FR_9403DF729F7FE2E6B823C1DACE1E6214 /* App_iOS_UITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + NT_D4C3E345E90AF9F6CBE8CF226FCFBCD6 /* StaticLibrary_ObjC_tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_91682ADED17A2C81A700A67F5D70BA1F /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */; + buildPhases = ( + SBP_645418A0FA6E3F5727685DE191C6B793 /* Sources */, + CFBP_CC1EF1963551F7E08925519982C248B9 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_tvOS; + productName = StaticLibrary_ObjC_tvOS; + productReference = FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; + NT_FA652FEB38562C3A5C93D5EC7ED09776 /* Framework_tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_11BB9F4DF26D98C0A2C8E1668356269F /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; + buildPhases = ( + HBP_9DD85101234CF2E78A49044D618D1D80 /* Headers */, + SBP_9DB756A33A199E4D91CE6E6E2A5A706C /* Sources */, + FBP_1BDCD6E0245ED2400E6FE9AC9C334DE4 /* Frameworks */, + SSBP_1B2C6BA1C514471EF42FB7E03ACD8C83 /* MyScript */, + ); + buildRules = ( + ); + dependencies = ( + TD_79BA73EB5832255541811162BB2B0218 /* PBXTargetDependency */, + ); + name = Framework_tvOS; + productName = Framework_tvOS; + productReference = FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 48BA824E9883B72747F77581255D9C94 /* Project object */ = { + P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0930; TargetAttributes = { - AB59C0690172FF119F045336C1F1CA0D = { + AT_D40C01B2BAD29EDEA392714DFB69FE8F = { CUSTOM = value; }; - DB85CB6A2C15660854D634EF1B0C1FAD = { + NT_B91A6EACD6F5192FECA2E95FD531D0CA = { ProvisioningStyle = Automatic; }; - E165F00BB866D2A7087C93650EDB1138 = { + NT_BEB0891E36797FE2214A0A9D516D408D = { ProvisioningStyle = Automatic; }; + NT_D4BAEEEC88124103C8DFF41FCE206DCE = { + TestTargetID = NT_BEB0891E36797FE2214A0A9D516D408D; + }; }; }; - buildConfigurationList = 0D5965C1A1D5123D687DA32AC9B957F8 /* Build configuration list for PBXProject "Project" */; + buildConfigurationList = CL_85167C2DED9F1F2F7D5162C1DD252426 /* Build configuration list for PBXProject "Project" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = en; hasScannedForEncodings = 0; @@ -1377,103 +1380,159 @@ Base, en, ); - mainGroup = EDFE6B7A5CE9583846B704EE371675F2; + mainGroup = G_CBE9DB02095FA0DF8A7ECE76A4BD81A4; projectDirPath = ""; projectRoot = ""; targets = ( - DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */, - 8CDD0FC5B69DB55054CAECF513716138 /* App_iOS_Tests */, - B145BCFEB550C3DDF48510BB85CDE8DC /* App_iOS_UITests */, - E165F00BB866D2A7087C93650EDB1138 /* App_macOS */, - 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */, - CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */, - 30FE6802B08DEC0251F565BD100C6552 /* Framework2_iOS */, - BA741EB2126CE44DAD218BBADD277CA9 /* Framework2_macOS */, - 1E8C6D55C8B9978E9D6A615CE98A90E0 /* Framework2_tvOS */, - E980A2FD24ABE1336B8C24765456F655 /* Framework2_watchOS */, - FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */, - 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */, - 2563A01E1A5E949F2AE1CD7308779FE3 /* Framework_tvOS */, - 347AE2E7B939A276DEE77148A708FDE4 /* Framework_watchOS */, - D47258787A296733EB9A496796369EDC /* Legacy */, - EC0A54038C133DEC055A8FC6B9E86304 /* StaticLibrary_ObjC_iOS */, - 15879457507DA34869A0D03EEEBD5DFE /* StaticLibrary_ObjC_macOS */, - A79BE4AD95C20F54B13A8B76DC061CDE /* StaticLibrary_ObjC_tvOS */, - EA82D195375B7CB5C6034F26A1C28D44 /* StaticLibrary_ObjC_watchOS */, - D20DB1C7D23BB53FF8FD09BAF451A294 /* StaticLibrary_Swift */, - AB59C0690172FF119F045336C1F1CA0D /* SuperTarget */, - F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */, - 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */, - 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */, + NT_BEB0891E36797FE2214A0A9D516D408D /* App_iOS */, + NT_193BAF154270D1C21E269EDF2A1BD3F6 /* App_iOS_Tests */, + NT_D4BAEEEC88124103C8DFF41FCE206DCE /* App_iOS_UITests */, + NT_B91A6EACD6F5192FECA2E95FD531D0CA /* App_macOS */, + NT_38A9FE87056942A2746E0FF025B52A91 /* App_watchOS */, + NT_5245AB6D3B3CFBC95AEBADF6E0C593B8 /* App_watchOS Extension */, + NT_9F72C903B42E1AA3B88F97B917231B15 /* Framework2_iOS */, + NT_87DF09E78830E7EB3C00B6134A2D5A5D /* Framework2_macOS */, + NT_66B6A18138FD1FB5ECF3FC67B20FF3D3 /* Framework2_tvOS */, + NT_A3933B4002C44B46F34B238F654D1362 /* Framework2_watchOS */, + NT_7D108AE86BED8C9CCF52C2646FA4C5DE /* Framework_iOS */, + NT_9D53AF351F8DAE25354F2391248DFCCA /* Framework_macOS */, + NT_FA652FEB38562C3A5C93D5EC7ED09776 /* Framework_tvOS */, + NT_6A7B08EB167FD3A759C339FDBED7E019 /* Framework_watchOS */, + LT_5A51AFB390A610885D62F601DE321E4E /* Legacy */, + NT_6AEE12F93D449E249F5348BBF35D3053 /* StaticLibrary_ObjC_iOS */, + NT_15609BCEEB00CBCC4C42110EB0366A6F /* StaticLibrary_ObjC_macOS */, + NT_D4C3E345E90AF9F6CBE8CF226FCFBCD6 /* StaticLibrary_ObjC_tvOS */, + NT_34A020E43FBBD797051205235CD82B70 /* StaticLibrary_ObjC_watchOS */, + NT_2940463C85DCD0660288786BC66F2C4C /* StaticLibrary_Swift */, + AT_D40C01B2BAD29EDEA392714DFB69FE8F /* SuperTarget */, + NT_23509FD082D1F788E6D6431F509B11AF /* XPC Service */, + NT_6BD068FAAC6AA35C090C48147B94EC6E /* iMessageApp */, + NT_6A4FC6EE80FB2821AB96D51C3BC8966E /* iMessageExtension */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 24E393E5BC60BE4C18A4E88099C92B0B /* Resources */ = { + RBP_1BFB64F249645ABF48C3CCDF8D5FA094 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5163749E505B01D5ACB99C653525D046 /* Assets.xcassets in Resources */, - 370B3DF5D5741094E48BE3C0E00B68E7 /* Interface.storyboard in Resources */, + BF_FA5F3C87A2571E0F39637D118B6C6F8F /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 32ECF2BB5AFA1C4E9A0F6DFE1417110E /* Resources */ = { + RBP_5623703FDC4F6DF4679D8BAF27518F2F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7C2B87BE6AEC5813069E896736FA68A3 /* Assets.xcassets in Resources */, - 9F2CA54E38CDF41C367FAC8E304AF4C5 /* MainInterface.storyboard in Resources */, + BF_ABA4EA32A6DB022806126D9C1418BBA3 /* Assets.xcassets in Resources */, + BF_19C973A29D9994B1E0655B1AFC5528AD /* Interface.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 83D69B533FE35E8D96403BD29AB37F9F /* Resources */ = { + RBP_85DF5DDC76E0E2A78CAFC9A3EC508232 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3F23F02A130E74E4DACB22F380E3462D /* Assets.xcassets in Resources */, - C0D7A2DF599055387B153A51128FB20A /* Main.storyboard in Resources */, + BF_EBC45940911A4942BA04AE1285BF3802 /* Assets.xcassets in Resources */, + BF_B57F9691AD12CA8AE5528A2BAB9E4A43 /* LaunchScreen.storyboard in Resources */, + BF_AC2CE59D56846478FDFBB376FF9F9DC0 /* Localizable.strings in Resources */, + BF_65835F9276FF0DB8E27D098367F9D03C /* Localizable.stringsdict in Resources */, + BF_47FBEFEA08B9642C1F711EDA77FC8C89 /* LocalizedStoryboard.storyboard in Resources */, + BF_47A75C8A7EF15658238E254C846C5C6B /* Main.storyboard in Resources */, + BF_A8A5905BCA8872B2D7B0EF6326B33077 /* MyBundle.bundle in Resources */, + BF_149B8FD8F114C531F675E01FBE814609 /* ResourceFolder in Resources */, + BF_E2D02DDEDD7DC21831F50A6EAA71E528 /* StandaloneAssets.xcassets in Resources */, + BF_D1EF4AECA866B1132F3F01B826B5EE5D /* iMessageApp.app in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 918FF44B84209799C8ECD292189E6D55 /* Resources */ = { + RBP_9291220ECDCB98B69BB31C3E875042EC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3E8A30F173DFFDBDDD0EBDA2D21A0D77 /* Assets.xcassets in Resources */, + BF_9D9B97D239384F4CE6E73852E027B787 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DFB4932D20872BF046F9902EB430C6B6 /* Resources */ = { + RBP_A5B7C086E8F07F5FEE9B99375E375819 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C5DD61FED061701F52A2AE59334C3964 /* Assets.xcassets in Resources */, + BF_D6588CD7B83034816FFD3A7DB10DAD78 /* Assets.xcassets in Resources */, + BF_EA0063B4FC2A0980A746D35A8DF71CED /* MainInterface.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - FEFBCD77CD631C182084B94EC52BEE33 /* Resources */ = { + RBP_BA57258FD71062047F5503B4B160FE15 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D9338C1374B8F82194B44B6F73075123 /* Assets.xcassets in Resources */, - 2CCCB0657766F9F9527F77A9F42AAF9E /* LaunchScreen.storyboard in Resources */, - 3243ACA306AD909C8186921F288640DB /* Localizable.strings in Resources */, - DB95C341F44FE1E093C948F4F734515B /* Localizable.stringsdict in Resources */, - 3D49538E97F4592012896021971B0166 /* LocalizedStoryboard.storyboard in Resources */, - 7AE6DE3A93E56909084D4F93795B3C93 /* Main.storyboard in Resources */, - 809CDDAA142679CDCFCF376C9CA71C09 /* MyBundle.bundle in Resources */, - BE38983978B6D70795D2924F52F3081D /* ResourceFolder in Resources */, - AA5AF277386012CD6CC015073239E50F /* StandaloneAssets.xcassets in Resources */, - 5A6137039176A4E48CF6B399372D56EA /* iMessageApp.app in Resources */, + BF_51D370314B5DA8E002A908021E459F50 /* Assets.xcassets in Resources */, + BF_52C8E2C5962601534CE6F00B88FDB048 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 06FB4F63AAEECCDD060382A3AF8AEF4B /* Copy Swift Objective-C Interface Header */ = { + SSBP_062CBBF024005F57EECA660F9C7B0C7D /* Strip Unused Architectures from Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Strip Unused Architectures from Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/sh; + shellScript = "################################################################################\n#\n# Copyright 2015 Realm Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n################################################################################\n\n# This script strips all non-valid architectures from dynamic libraries in\n# the application's `Frameworks` directory.\n#\n# The following environment variables are required:\n#\n# BUILT_PRODUCTS_DIR\n# FRAMEWORKS_FOLDER_PATH\n# VALID_ARCHS\n# EXPANDED_CODE_SIGN_IDENTITY\n\n\n# Signs a framework with the provided identity\ncode_sign() {\n # Use the current code_sign_identitiy\n echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1\"\n /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"\n}\n\n# Set working directory to product’s embedded frameworks\ncd \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nif [ \"$ACTION\" = \"install\" ]; then\n echo \"Copy .bcsymbolmap files to .xcarchive\"\n find . -name '*.bcsymbolmap' -type f -exec mv {} \"${CONFIGURATION_BUILD_DIR}\" \\;\nelse\n # Delete *.bcsymbolmap files from framework bundle unless archiving\n find . -name '*.bcsymbolmap' -type f -exec rm -rf \"{}\" +\\;\nfi\n\necho \"Stripping frameworks\"\n\nfor file in $(find . -type f -perm +111); do\n # Skip non-dynamic libraries\n if ! [[ \"$(file \"$file\")\" == *\"dynamically linked shared library\"* ]]; then\n continue\n fi\n # Get architectures for current file\n archs=\"$(lipo -info \"${file}\" | rev | cut -d ':' -f1 | rev)\"\n stripped=\"\"\n for arch in $archs; do\n if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n # Strip non-valid architectures in-place\n lipo -remove \"$arch\" -output \"$file\" \"$file\" || exit 1\n stripped=\"$stripped $arch\"\n fi\n done\n if [[ \"$stripped\" != \"\" ]]; then\n echo \"Stripped $file of architectures:$stripped\"\n if [ \"${CODE_SIGNING_REQUIRED}\" == \"YES\" ]; then\n code_sign \"${file}\"\n fi\n fi\ndone\n"; + }; + SSBP_13B42B84708A6ABC082BE00176F5DCB2 /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script\"\n"; + }; + SSBP_1B2C6BA1C514471EF42FB7E03ACD8C83 /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script\"\n"; + }; + SSBP_376C0662E4E8416C049A50660864798B /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"You ran a script!\"\n"; + }; + SSBP_4A83147402B05D3C84D21F0487315914 /* Copy Swift Objective-C Interface Header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1489,21 +1548,7 @@ shellPath = /bin/sh; shellScript = "ditto \"${SCRIPT_INPUT_FILE_0}\" \"${SCRIPT_OUTPUT_FILE_0}\"\n"; }; - 2983C9312429A22DF5437C4020B9937E /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"You ran a script\"\n"; - }; - 2F13215A0801F44C3CCF154F3EE02A7B /* Carthage */ = { + SSBP_7F147E7ED45BAAE2186975B7FF9EB08A /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1519,35 +1564,7 @@ shellPath = /bin/sh; shellScript = "carthage copy-frameworks\n"; }; - 69E4B11A07FF06F8306B5646CA2403EF /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"do the thing\""; - }; - 70D0BCF93538A104153586A9BF269386 /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"You ran a script!\"\n"; - }; - 712CA3288AD8B0F43FAA19930C53500B /* Carthage */ = { + SSBP_7F8DED07519BA4B70C40A9A755844874 /* Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1563,7 +1580,21 @@ shellPath = /bin/sh; shellScript = "carthage copy-frameworks\n"; }; - 78EF33E6A08B3BB88D8805DC3588843C /* MyScript */ = { + SSBP_831D7D5A30B0F736E1E92F7B5CF9428F /* MyScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = MyScript; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"do the thing\""; + }; + SSBP_B07F447D73408EA48C54A8E7F5B8D575 /* MyScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1577,35 +1608,7 @@ shellPath = /bin/sh; shellScript = "echo \"You ran a script\"\n"; }; - 974A437754992A1B4A30613EC766AE2C /* Strip Unused Architectures from Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Strip Unused Architectures from Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "################################################################################\n#\n# Copyright 2015 Realm Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n################################################################################\n\n# This script strips all non-valid architectures from dynamic libraries in\n# the application's `Frameworks` directory.\n#\n# The following environment variables are required:\n#\n# BUILT_PRODUCTS_DIR\n# FRAMEWORKS_FOLDER_PATH\n# VALID_ARCHS\n# EXPANDED_CODE_SIGN_IDENTITY\n\n\n# Signs a framework with the provided identity\ncode_sign() {\n # Use the current code_sign_identitiy\n echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1\"\n /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"\n}\n\n# Set working directory to product’s embedded frameworks\ncd \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nif [ \"$ACTION\" = \"install\" ]; then\n echo \"Copy .bcsymbolmap files to .xcarchive\"\n find . -name '*.bcsymbolmap' -type f -exec mv {} \"${CONFIGURATION_BUILD_DIR}\" \\;\nelse\n # Delete *.bcsymbolmap files from framework bundle unless archiving\n find . -name '*.bcsymbolmap' -type f -exec rm -rf \"{}\" +\\;\nfi\n\necho \"Stripping frameworks\"\n\nfor file in $(find . -type f -perm +111); do\n # Skip non-dynamic libraries\n if ! [[ \"$(file \"$file\")\" == *\"dynamically linked shared library\"* ]]; then\n continue\n fi\n # Get architectures for current file\n archs=\"$(lipo -info \"${file}\" | rev | cut -d ':' -f1 | rev)\"\n stripped=\"\"\n for arch in $archs; do\n if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n # Strip non-valid architectures in-place\n lipo -remove \"$arch\" -output \"$file\" \"$file\" || exit 1\n stripped=\"$stripped $arch\"\n fi\n done\n if [[ \"$stripped\" != \"\" ]]; then\n echo \"Stripped $file of architectures:$stripped\"\n if [ \"${CODE_SIGNING_REQUIRED}\" == \"YES\" ]; then\n code_sign \"${file}\"\n fi\n fi\ndone\n"; - }; - ADF413AF548A97CB33898BB4F6211314 /* MyScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = MyScript; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"You ran a script\"\n"; - }; - DABB7DFD3C5DB4EAC8C5D24C79EA4E35 /* MyScript */ = { + SSBP_C8F56E533BE956498E644805330168EB /* MyScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1622,499 +1625,363 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1411E21883A09388E140C6D123029288 /* Sources */ = { + SBP_0CB30551A2D40126958D8D6DAF6922E2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD4C8B77EF89CF7F4ED0D1C4713397E4 /* FrameworkFile.swift in Sources */, + BF_E6B3BA0A3A687598FB5CCDF0524E1B10 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1A0DA3851491E727A610A7638ABB5434 /* Sources */ = { + SBP_110D7B4160D965B7964619BF78E01DE2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DB8A64197C4C63F208D8D98C4D87C1B2 /* FrameworkFile.swift in Sources */, + BF_76825DD9B3B10103CDAB9D235BDF6A91 /* MessagesViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1C758FAD884F96BE234FBB1BBE295E97 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 766C78D100B581A2A469B47A02A0E6D9 /* AppDelegate.swift in Sources */, - FFA6D03EB711292F77E0BB317C750F5A /* Model.xcdatamodeld in Sources */, - 0A774DBC62F3C7721971E0C95BB2564A /* MoreUnder.swift in Sources */, - 304090AFAC1ED0D09C95B0CB2BEFEB9E /* Standalone.swift in Sources */, - 55E7240008DD5452802A41DA6FC7A16F /* ViewController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1C8F955BEA261BDB36838B408C2D7D23 /* Sources */ = { + SBP_20DDAC7BCD11ECA8B08695FE5D7314A9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 25185271EDE7FEEC99372505A683359C /* Sources */ = { + SBP_3848ADAF2343866973E57344A1054BE3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 39F00BF22067B72F4FB20F216AFA52DC /* AppDelegate.swift in Sources */, - 277BE1159CD7855C287566F29F8939BA /* Standalone.swift in Sources */, - B98C8E72B61BBDB105CFBC7A22B5E972 /* ViewController.swift in Sources */, + BF_1EC32E6544284999188A140FB5FC6E67 /* TestProjectUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 35714896F7B0D8F151E1A3B4C04AE0DB /* Sources */ = { + SBP_3DD17ED231CE07543581040F32049525 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AD00993C2491D03BD3A1B6E48D685C29 /* MessagesViewController.swift in Sources */, + BF_DBF3047DCE71CB2E7B9AC7367F44F8DB /* StaticLibrary.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 634CFCBFE3760F2A0288F1BF42B66FF9 /* Sources */ = { + SBP_48868408A19D9BBE4A58CA4FAE00C0D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_5C6407EDAC3D88B020BCB46724DC1D14 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_49F3C650EA105D1EF50817673A8DB33A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_A29F8B04C9DD9ADE1EF5AFDAAA0130D2 /* ExtensionDelegate.swift in Sources */, + BF_5336CD16DBDB1654D75AA91B922DEAD6 /* InterfaceController.swift in Sources */, + BF_CD062A97959629BD672893FDAE89A1E9 /* NotificationController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_52AE5DCFB4487297D6889C7F014AD281 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_77C9BB7BED4F5970D02E69312259FE09 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_645418A0FA6E3F5727685DE191C6B793 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_D0676C98017B6FDD96A733CB851645DE /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_669CBAFD2D7234A2BEDCEAA4949ED575 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_FA28229372AB6236883309181258AF26 /* XPC_Service.m in Sources */, + BF_FD13F69A90FB1D5676B97A8C77D710B4 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_70B2F11AAC526FDB99D68212C2C92CE6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_B2B4B15D6F7B242DBDA39939111282F9 /* TestProjectTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_77EF8BC7FC3D693C9C0C1CB51984F3E2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_021628792D80050372F6E56A6C3D0561 /* AppDelegate.swift in Sources */, + BF_9A74AED05E2F61530BFA0F7D23AF0112 /* Model.xcdatamodeld in Sources */, + BF_FF7EBDFA4462D2983743C84CE99D9714 /* MoreUnder.swift in Sources */, + BF_47FF83A37355E90F93C0F5B2CFBCE317 /* Standalone.swift in Sources */, + BF_F12E44D8E7F617E8A5FD8E1A342E5FAD /* ViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_7EE428F1F0444ACB29B3C5259C04FF6D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_81711FB79375EB743254B809B4E246E0 /* AppDelegate.swift in Sources */, + BF_F7AC9F45ED37FCD5A749FD6F5F4518AF /* Standalone.swift in Sources */, + BF_98DEE7FD578AA439550E0023A2ECE8D0 /* ViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_84E9A8BE77910B67B3F2DCD5916DC498 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_3080067722B357BFC053D89CCDBF5397 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_8990272D7DD45CFBDAB18690861BD4E8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_8610CB66872BC72C1690EBD8D102FBC0 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_924258C7A9F27B13508604CAF625E0D3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_E228A4D3997297780216722D71AC9FE5 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_9DB756A33A199E4D91CE6E6E2A5A706C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_729EB1C88A5E43B2342099D81B301F4D /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + SBP_C18D008976BE0EFD3D3A3C68FB79D271 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 6EA5EBCD13C2DDEB4B9422C07D81B71A /* Sources */ = { + SBP_C469AFC0C383156AF5C80EBBC089D9FC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1DAB513CE479D00840BC5D0698409634 /* FrameworkFile.swift in Sources */, + BF_3811C1771AF5342AD8F9FEB63A3465B5 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8E6FC06C82186DB3FA95E51EFE18711C /* Sources */ = { + SBP_D6209A702C851D0CFD1CC2B225986D45 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + BF_C9D24A56926211130F4E25B5D9972B58 /* StaticLibrary_ObjC.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 910907240480D0AFBF32A79A4008D866 /* Sources */ = { + SBP_DB9B8E1504ED9DD92AE41067C53B5082 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D8E194DE99C1389B4335B7112DEA7DC4 /* ExtensionDelegate.swift in Sources */, - A6CCC432869EB6B8A65A89B565B57EA5 /* InterfaceController.swift in Sources */, - 49C46F18756F4E9EE9E1CC328F79A2AD /* NotificationController.swift in Sources */, + BF_D3D64E2595369BBDEF03E07543AE2779 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A0301004CBF36C0004B23102202FA9FE /* Sources */ = { + SBP_EA528A5DC6D79AA397B25949B07AE70F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C4F880A62908F7CD24C87CE5D67B0196 /* FrameworkFile.swift in Sources */, + BF_4D56F3F4D081A77C11325B96DD34D8E1 /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A305A9C4673244353334E95DCDFD735D /* Sources */ = { + SBP_ED63FCA00BD617EFF125ECDF9D24FAD8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A4E000AF88BD17B9A2B08452C17C2EEF /* StaticLibrary.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - ADD1A71858A73905360F9EF440895A09 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4EE4F4B638DFB130C8032FB1426CB9F3 /* FrameworkFile.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - AFF1863F9CDDD4DD0B0EB22A6AD9850A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - EBC3AA70BAD516864D119DDEEE2C436D /* FrameworkFile.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B07FD4FDF599BF4F54EF8B3381CFF050 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B73A1BC6DB57DC8D7548C59B109CB49 /* StaticLibrary_ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C88A74B7BA8B2E80B92E453D04A9688A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6693ECDA5AD8C2A96135B694E16C3199 /* StaticLibrary_ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D037068D88E7DAEB3A373602EE996609 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F7E9F427669FE7710D0A19AA4E1156F4 /* TestProjectUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DB71FFE5444FA615A2092FB2C7BDEFA7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8EA31D26241C81C5B7BF40D4B7070B6A /* StaticLibrary_ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E32AAD525623BF5008484D641327F1AD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 51FCB6F2D56B68E627A35C53729E423A /* XPC_Service.m in Sources */, - 7AF2CCC3F2ECDC1FE82B2C05BEF75B71 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E74227370CF6081A47B8C2AB02479899 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 68642C69AC9333487FC491E6FA98261E /* TestProjectTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E74DACDAB11D89D5B824405B81E48D89 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F16AD8A4E1A6E1189CE048C03CEA9469 /* FrameworkFile.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EBA907A9A32C582C14D2C34324CA3898 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 242BCE1F2307F71F1BB3EAF2ED63875A /* StaticLibrary_ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE2EE5AFF99E31C8919F2875F62884E1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2FADF97C0767D01C764933FD041CE39C /* FrameworkFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 107877BC5E43BF7DDE7F77EC0A14BF24 /* PBXTargetDependency */ = { + TD_0C5CE0308CB64DB986A853307CCF8A95 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 30FE6802B08DEC0251F565BD100C6552 /* Framework2_iOS */; - targetProxy = 3F55262AEB18533E792A957CE709A5F8 /* PBXContainerItemProxy */; + target = NT_38A9FE87056942A2746E0FF025B52A91 /* App_watchOS */; + targetProxy = CIP_6D60DD975DE7829AEA72BD4098DE13E6 /* PBXContainerItemProxy */; }; - 10B5BED93CB8C9A5B7BB81E996C7F071 /* PBXTargetDependency */ = { + TD_117F878FC368C83443CEC1707531F7F2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 9F21B9C99E75314E51854589C0A2D40C /* App_watchOS */; - targetProxy = 61EAE260C32C57D1ADCEAA01E33B62F0 /* PBXContainerItemProxy */; + target = NT_6AEE12F93D449E249F5348BBF35D3053 /* StaticLibrary_ObjC_iOS */; + targetProxy = CIP_1F8C8F9FAC75236BB2F60C3BCAE41C55 /* PBXContainerItemProxy */; }; - 16156D2E07BFBB09D5921589B483FF23 /* PBXTargetDependency */ = { + TD_205ABD699FA8E05C47D73E8EB2D0F9EF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 24B389B0959F4A6CB05BB732DABDFE40 /* iMessageApp */; - targetProxy = 0BF678D2C5D11E654050E6FD6AF1321C /* PBXContainerItemProxy */; + target = NT_34A020E43FBBD797051205235CD82B70 /* StaticLibrary_ObjC_watchOS */; + targetProxy = CIP_47399FDE0885501C87782313489C95A3 /* PBXContainerItemProxy */; }; - 2EA3B710428DD5AC737E68EA2707702D /* PBXTargetDependency */ = { + TD_266243C3BBC1C83485E1B43C0FFC3626 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = EC0A54038C133DEC055A8FC6B9E86304 /* StaticLibrary_ObjC_iOS */; - targetProxy = FAE0D33AD5DFB0090F183AC2E48BA1D2 /* PBXContainerItemProxy */; + target = NT_6AEE12F93D449E249F5348BBF35D3053 /* StaticLibrary_ObjC_iOS */; + targetProxy = CIP_1AEF07B9F6A9BC9605E82F26AE7BFE15 /* PBXContainerItemProxy */; }; - 3E978D446B3957A557629CD1DF47004B /* PBXTargetDependency */ = { + TD_2A43F973A3E1CF675A967054BA52074B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; - targetProxy = 931421A32656354E62549752A08EDBF8 /* PBXContainerItemProxy */; + target = NT_5245AB6D3B3CFBC95AEBADF6E0C593B8 /* App_watchOS Extension */; + targetProxy = CIP_5F2FD3F0AED59431B4F98D7238CAA733 /* PBXContainerItemProxy */; }; - 3FFD524CC10F62CA07750D1026106CB3 /* PBXTargetDependency */ = { + TD_35F382102AABCCCEFADCBC201E5B1CE1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */; - targetProxy = EEB2D30EB7369BDB638EBEEF136463C2 /* PBXContainerItemProxy */; + target = NT_15609BCEEB00CBCC4C42110EB0366A6F /* StaticLibrary_ObjC_macOS */; + targetProxy = CIP_64ED071F49DC88F8192387D7A18827F1 /* PBXContainerItemProxy */; }; - 5189C5E269DD98A187BF59169A4FC1D1 /* PBXTargetDependency */ = { + TD_4013C738E59E1CA40B4A982AF74E8604 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = FE8D0077B0ADF688264AFA16A3FC213E /* Framework_iOS */; - targetProxy = 29DD3982DDC8FB1816F3413908D59361 /* PBXContainerItemProxy */; + target = NT_7D108AE86BED8C9CCF52C2646FA4C5DE /* Framework_iOS */; + targetProxy = CIP_DC690C90FF2F615A1EB93D9803F8D905 /* PBXContainerItemProxy */; }; - 586BE274C55FC00DE6BE62A0AAC127F6 /* PBXTargetDependency */ = { + TD_402541000CCC58970431E41C3D928AB8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = CBCC05D0B8E90F960AA198981827667B /* App_watchOS Extension */; - targetProxy = 454E9650A00080FE30274224CC9F46C0 /* PBXContainerItemProxy */; + target = NT_BEB0891E36797FE2214A0A9D516D408D /* App_iOS */; + targetProxy = CIP_73A78E804E93B79E9ED934358CDD7D9D /* PBXContainerItemProxy */; }; - 5E65F165E37E737337177A885B1D8276 /* PBXTargetDependency */ = { + TD_743D7CD7BB700A16A02A7A4A1E02D845 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = EC0A54038C133DEC055A8FC6B9E86304 /* StaticLibrary_ObjC_iOS */; - targetProxy = ED4E74C287B41CF65512AA3E218CCD4A /* PBXContainerItemProxy */; + target = NT_6BD068FAAC6AA35C090C48147B94EC6E /* iMessageApp */; + targetProxy = CIP_5E9F76628F77E820EB9AA60A282D8691 /* PBXContainerItemProxy */; }; - 632C4C9ABCE4E550CC5CC6F87B5C4DBD /* PBXTargetDependency */ = { + TD_79BA73EB5832255541811162BB2B0218 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = F61DEA90F1B7331EE9B26BBA1F66D1F3 /* XPC Service */; - targetProxy = 9B58798122BFEA3C65A8FF0A3351860D /* PBXContainerItemProxy */; + target = NT_D4C3E345E90AF9F6CBE8CF226FCFBCD6 /* StaticLibrary_ObjC_tvOS */; + targetProxy = CIP_1C3D8F2BF099A773651CF8A195466469 /* PBXContainerItemProxy */; }; - 7361EDBA6CC2A0CC04DCB2658DEAA7D3 /* PBXTargetDependency */ = { + TD_846DB03B9778D6C8E81FE52A5A212420 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = A79BE4AD95C20F54B13A8B76DC061CDE /* StaticLibrary_ObjC_tvOS */; - targetProxy = 1466B8370FAB4F9766F799F21EB3E6F8 /* PBXContainerItemProxy */; + target = NT_6A4FC6EE80FB2821AB96D51C3BC8966E /* iMessageExtension */; + targetProxy = CIP_B5B71FB9D5064D7E05E9E44827A87775 /* PBXContainerItemProxy */; }; - 79285886AE41FF04B4E0274CE54C6C60 /* PBXTargetDependency */ = { + TD_94E481CDF62CDA1E9B37D1DA08E5A5AF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = EA82D195375B7CB5C6034F26A1C28D44 /* StaticLibrary_ObjC_watchOS */; - targetProxy = F012DD49D84B1DDE30124D55ED320316 /* PBXContainerItemProxy */; + target = NT_9F72C903B42E1AA3B88F97B917231B15 /* Framework2_iOS */; + targetProxy = CIP_862C50E687ABB75CCDF71F1157709A4D /* PBXContainerItemProxy */; }; - 85A9116EE91FAB1AA6CA20FD4203A941 /* PBXTargetDependency */ = { + TD_98EB63C93477EA15558367FBAB5797CE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; - targetProxy = CC516AFC796533BF02DD6B96F8DD7E74 /* PBXContainerItemProxy */; + target = NT_BEB0891E36797FE2214A0A9D516D408D /* App_iOS */; + targetProxy = CIP_291A38592460740F400A80DE5DBA9679 /* PBXContainerItemProxy */; }; - 92AF10FC3AC60DB57A91645E9BDB9B2C /* PBXTargetDependency */ = { + TD_B8AB4064784522A5F3760CB1372D1BCD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 15879457507DA34869A0D03EEEBD5DFE /* StaticLibrary_ObjC_macOS */; - targetProxy = 96D6946F3C582A81EDB142746A377EF9 /* PBXContainerItemProxy */; + target = NT_BEB0891E36797FE2214A0A9D516D408D /* App_iOS */; + targetProxy = CIP_4FA1F11884BC4F5DBDFAC1FBEC60AFC1 /* PBXContainerItemProxy */; }; - A0D6CD1CF256FD0AA1C77265A094A814 /* PBXTargetDependency */ = { + TD_B8F32B4B3CC431FE0EC1C4E7D096E3AC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 15879457507DA34869A0D03EEEBD5DFE /* StaticLibrary_ObjC_macOS */; - targetProxy = 8E732CDAED0C28344CAED954EDDEC26C /* PBXContainerItemProxy */; + target = NT_9D53AF351F8DAE25354F2391248DFCCA /* Framework_macOS */; + targetProxy = CIP_CA46A507405C3CBD7579D2C9A3F8719E /* PBXContainerItemProxy */; }; - A835D5FBAD20741BCF95975E1CD63A7A /* PBXTargetDependency */ = { + TD_BBB2D0EDFD9EF8193F1864D1F3D5F97A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DB85CB6A2C15660854D634EF1B0C1FAD /* App_iOS */; - targetProxy = 09709070DE34AF9CD99E9E5EB9990FEA /* PBXContainerItemProxy */; + target = NT_15609BCEEB00CBCC4C42110EB0366A6F /* StaticLibrary_ObjC_macOS */; + targetProxy = CIP_C82ED1EBAD4D7218ED9694EB7BF4DE74 /* PBXContainerItemProxy */; }; - BCAEBFE2D144CD4E9F4042CB793B6FFB /* PBXTargetDependency */ = { + TD_C762D8FBA80775A921AA5B50422E9349 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 6805881B1B6A80ABD523DAF4AFA493E2 /* Framework_macOS */; - targetProxy = 322420B31CCE201E90F298BE48129574 /* PBXContainerItemProxy */; + target = NT_23509FD082D1F788E6D6431F509B11AF /* XPC Service */; + targetProxy = CIP_BAAD03920C86C2839C3C93FDA5568ECE /* PBXContainerItemProxy */; }; - D976477E0195A8FFD5043C8BBD4B67C4 /* PBXTargetDependency */ = { + TD_D056799E80FFF41247BAE692D01142F0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 8A0FE14A3A3815C1F26B447C6178089C /* iMessageExtension */; - targetProxy = DE00464172E7A41CC51991B9136AA5BD /* PBXContainerItemProxy */; + target = NT_7D108AE86BED8C9CCF52C2646FA4C5DE /* Framework_iOS */; + targetProxy = CIP_A760C88E6F24D3F06081AEBDEB8AE54B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 466B302E661DE3B3972203B31F4AFED4 /* Localizable.stringsdict */ = { + VG_06DC429EEFBBA25BC3EE1AA1B4062C10 /* MainInterface.storyboard */ = { isa = PBXVariantGroup; children = ( - 6B9588F9AA980468B26837ADE36D0D2E /* Base */, - 2E871C49A75D636E1E87F8904C5BA3D9 /* en */, - ); - name = Localizable.stringsdict; - sourceTree = ""; - }; - 49A30AD670910672DABA8B736EECBAEB /* LocalizedStoryboard.storyboard */ = { - isa = PBXVariantGroup; - children = ( - F56A7C74F4A75492F063A0A5BDBBF65C /* Base */, - DB194C9EF763551CE2D5131407E8CF1C /* en */, - ); - name = LocalizedStoryboard.storyboard; - sourceTree = ""; - }; - 81F7E21FBB8DA98ECF0A51099CDAF2EE /* MainInterface.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 354650483D8F76CB15A0FB0A99D2657F /* Base */, + FR_7C8280C3C5E1D43BBB12A5F0156A8305 /* Base */, ); name = MainInterface.storyboard; sourceTree = ""; }; - 8EAFD105FB449C592C944D3003203AB5 /* Main.storyboard */ = { + VG_14B7B5469AA17939993A2B25E775D391 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( - C8822458902508063262BA655921BA2F /* Base */, + FR_7532DD7B78451A5040048474AC4FBCCC /* Base */, ); name = Main.storyboard; sourceTree = ""; }; - 9835A83F1E5D8E22848E171BA3C2DBA6 /* LaunchScreen.storyboard */ = { + VG_30676EBEE9BE54AA26CAE69BE744CAE8 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( - 5FA5EA11F66D659044AB1FB5496EBF25 /* Base */, + FR_C5682A1371F91CBD1254C115F0439F12 /* Base */, ); - name = LaunchScreen.storyboard; + name = Main.storyboard; sourceTree = ""; }; - C358B60A4C6D98BF3CD9B2C0C75FFC31 /* Interface.storyboard */ = { + VG_6542B94EE7DA40CD30BC54DED26C61C7 /* Interface.storyboard */ = { isa = PBXVariantGroup; children = ( - A59DAE760F32225493BDC5D378468EA9 /* Base */, + FR_2649A01C17A7301DD72EA826604ED8AA /* Base */, ); name = Interface.storyboard; sourceTree = ""; }; - E005A2734C32783354AAB8546A12718B /* Localizable.strings */ = { + VG_BE436BDD64E90EFB600D47AC69B49DD3 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - F435E28C9379AF718A5D502BF3B2FB26 /* Base */, - EC5C7923578F1110EE9EE74505530753 /* en */, + FR_62ECE5A3D0F25415CB50A28226B91EBE /* Base */, + FR_11E95FCD1DEB0C8A01A053518C1DAA8E /* en */, ); name = Localizable.strings; sourceTree = ""; }; - FDFD35E7E9845A353B2B0DF8B68296A8 /* Main.storyboard */ = { + VG_C247AA37E9057916EDDC65C7B55E2F38 /* Localizable.stringsdict */ = { isa = PBXVariantGroup; children = ( - 2553AE42F1AAAE25D59E0FE045BA52C2 /* Base */, + FR_4B58A01ABBE8E0A56B7B5A539C9BF5C7 /* Base */, + FR_BCEF8D29C9B93D3160D8D76DD368C8AD /* en */, ); - name = Main.storyboard; + name = Localizable.stringsdict; + sourceTree = ""; + }; + VG_F256536BB07CF3E64C4DD934F75BED9C /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + FR_C73B96CEEE97DE429C638EBD9C2F3D2B /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + VG_FE6D89DA2D7E7F58340D566590FF221C /* LocalizedStoryboard.storyboard */ = { + isa = PBXVariantGroup; + children = ( + FR_A51DE87AC269BC36016F9CAC32B4ECB2 /* Base */, + FR_35B9B5E8A2ED60FBB9CED8AE515B16B5 /* en */, + ); + name = LocalizedStoryboard.storyboard; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 005BBEE3C0E483C0B46EFCCE3563F2E5 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; - PRODUCT_NAME = Framework2; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Release"; - }; - 017D658B4ABE46C5A30A44E1EB610EEC /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - 01DBD7FCC87C5676808C8DC642E5076D /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - 033BB6B0853606FB2D2FD4F80238B6C0 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = App_macOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Staging Release"; - }; - 042BBE336DA13DF962EA6C453B022AF8 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - 043A0C042785957178A6693CFA0E1AD6 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - 073C2C693117E1D34E1B0F985E54181E /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Staging Debug"; - }; - 07E1360852ED801B9A2C191311650CB6 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = App_macOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Production Release"; - }; - 096ECE14561204A143946060635175E2 /* Test Debug */ = { + BC_0198386D4EF48A4C053820EEEE1936CB /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; @@ -2131,7 +1998,7 @@ }; name = "Test Debug"; }; - 0A20244EB4E72EC58117F028E72046EC /* Staging Release */ = { + BC_0271561C28AF4A74C6924A2187BC8487 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2153,108 +2020,44 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; + name = "Test Release"; }; - 0E98CA343910624717406D4EDFE7BB68 /* Staging Release */ = { + BC_032D44BB36CD1AC13FFFAC654631D432 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; - PRODUCT_NAME = Framework2; - SDKROOT = macosx; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; - }; - 129A56DA11ACAC4A31B865C9DCBA1820 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = "Staging Release"; - }; - 12CA842D6B2FF31191FE1307FCD9D7EE /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - 16B8CDB44A6128CAA0F76CADB3C8666F /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; name = "Production Debug"; }; - 17DD6C54D892A228DC61C020225C9051 /* Production Release */ = { + BC_057931652E9069AFF23BA573B6564BE5 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Production Release"; + name = "Production Debug"; }; - 17F6FF338B0EDFF7796A8F04E3F3800F /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 182E0CC8A3915AEB912F5D1291301A43 /* Production Debug */ = { + BC_079D311B8C64F17C816583A1A4D84F42 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2273,98 +2076,9 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; SDKROOT = macosx; }; - name = "Production Debug"; + name = "Staging Release"; }; - 1A086472EE7B5AD1BCC790833A32EEBD /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Test Debug"; - }; - 1B04852DE1BAC9963EC108C9CF616C68 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - 1B9700E8063BFE2CBE2FB8B1EDB34253 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; - PRODUCT_NAME = Framework2; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - 1B998C2AF9280CE3625E7DCBA5B62F6E /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; - PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - 1D285F94CF59832C2BA027CD569DDAB7 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Debug"; - }; - 1D9EB22E5DBAB4FA60986D9F7D4EB36B /* Test Release */ = { + BC_0B1CBABAB9579A064729249F5E1B7B84 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2387,20 +2101,46 @@ TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Release"; + name = "Test Debug"; }; - 238AD5E15AEE443741AA30FC7DF9BE4E /* Test Debug */ = { + BC_0B57E3E0E8C194293ABFEEF97F104F30 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_0D53E4051E21792867D5FA4A11B751AB /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 3; }; - name = "Test Debug"; + name = "Production Release"; }; - 239E8DC605456167C1F5A3E11E89E02E /* Test Release */ = { + BC_0D96F61E117D6A8D2353B0E7CB445AEA /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2423,101 +2163,27 @@ SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Release"; - }; - 263225267AC9E77B5610B7D31E71CB44 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; - PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; name = "Staging Release"; }; - 2B951E215B2D888141E1252E2FA1F2DF /* Production Release */ = { + BC_0E087681CE92CC2069F9E562ECC9FD23 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; - PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - 2DD3A646E69429A5AF67450B9CB2FCB2 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; - PRODUCT_NAME = Framework2; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; + MY_SETTING = hello; }; name = "Staging Debug"; }; - 2EABDD2A3CB1E85833E8A1555AE92380 /* Production Debug */ = { + BC_0E104167F96EA087A23DFBE2430D5612 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - 336426B8AB782E9CBB9AB6471046BF19 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; - PRODUCT_NAME = Framework2; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; SDKROOT = watchos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; + name = "Production Debug"; }; - 3B64F4C26A564FBA69A8B5DD22A9CF1E /* Staging Release */ = { + BC_11CBEB05340DE3C8F396B359A9144039 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; @@ -2528,290 +2194,7 @@ }; name = "Staging Release"; }; - 3BAD8F458B7F998E8BF6F3C7D2A8516A /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Debug"; - }; - 3BE57E2A55CD16BC51F289949EC85F76 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Release"; - }; - 3C145C72644EBBA1C6177D17710C9CD2 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = "Staging Debug"; - }; - 3E086BCE5D760D61BB3D412C9F0B4BDA /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 3EC13048478BFF2EF5984AF7F98E93DD /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; - PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 412CC38BB25D52A84D6951A85EF344DF /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; - PRODUCT_NAME = Framework2; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - 41AE4D3B9E1B4B940169B84E3BA5CCE7 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Staging Debug"; - }; - 4280A141F22CF2FEFA06373AEFFAAC0F /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = "Test Debug"; - }; - 42E41490B4F137D48214D74A60E82741 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Staging Release"; - }; - 48C7C82163507BFDDBBE9640C56C4384 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - 4B2E7C0E64CC8AE67BAE91B33EAFB6F9 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Staging Release"; - }; - 4B5E0992A404F791F2CFFAD1C96F95E2 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; - PRODUCT_NAME = Framework2; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 4E69BB19B16E547D43AF93A25BCD9F31 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; - name = "Test Release"; - }; - 53FA2A6BC1E12907C7E04A1686CD2235 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - 54F359EE934A693B2193AAEC11473AA8 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; - PRODUCT_NAME = Framework2; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 56663C3D4D239DB7132EFC6F4BD6931F /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Production Debug"; - }; - 5720F6E9771684E5729A08D75426C874 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - 591C680E52370290108989EB469E5509 /* Production Debug */ = { + BC_120D6C5C7E4D1D6566CBD71E11C3DF37 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -2834,13 +2217,12 @@ SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Production Debug"; + name = "Staging Debug"; }; - 5A1D3DA3365EDDAF6EC275BEF2A939B0 /* Staging Release */ = { + BC_1603C1C58A4D6AE1BD0707D13D2C8F44 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2848,60 +2230,21 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", + "$(PROJECT_DIR)/Carthage/Build/tvOS", ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; PRODUCT_NAME = Framework; - SDKROOT = macosx; + SDKROOT = appletvos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; - }; - 5AA86BB667B6BB6A065CDC7A86358C06 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Test Debug"; - }; - 5AFEBB1B2CFDA4E69B52143EF4C01713 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - }; name = "Test Release"; }; - 5C0EB6B29716576F8BEC3FCC79F4761A /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - 5E2F1BACE5D532159E4E4CDEA7781A53 /* Staging Debug */ = { + BC_161B10E65E0BE143A17EADFA5EE88B3D /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2924,72 +2267,7 @@ }; name = "Staging Debug"; }; - 5F2AF4A04FDD6171C4B13DBFE74F77AD /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = "Staging Debug"; - }; - 5F9AF0BD4959D01102D429D68A1AE409 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - 600D2124C2A4443FF163E6E3B501E909 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - 60521A88A3FF4EDF3DD3A4E909DB4541 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = "Production Release"; - }; - 617BB41EB582FD2294AD3F0EF67FF86C /* Production Debug */ = { + BC_16E1FCDA9DB6E70091B54603E4E6F58B /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -3004,9 +2282,16 @@ TARGETED_DEVICE_FAMILY = 4; WATCHOS_DEPLOYMENT_TARGET = 3.0; }; + name = "Test Release"; + }; + BC_1841B61F3F85EC24C4AACBC5C025BD08 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; name = "Production Debug"; }; - 65444C57D9A364444BA7003179D5061D /* Staging Release */ = { + BC_19CBA184C0BDC24CE3657C025A8FC279 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3023,7 +2308,174 @@ }; name = "Staging Release"; }; - 676171EF49F08996E70CF35B0210B3EE /* Staging Release */ = { + BC_19E3B21D0DA59BAF1B99899A35858D52 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + BUNDLE_ID_SUFFIX = .test; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = "Test Release"; + }; + BC_1CF7F7BC6E19981DCBBFE6FE2D9FCB62 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_1D9A30F2A4E9057FD8A7101D4AA4F47D /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + BC_209579D4C144FB697FDD46843485CC6A /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = "Production Debug"; + }; + BC_22D59B57A805B62A266F803CCDD49C26 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_24042033AF9D3DEDAD53ACAF1C2BB0B2 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3032,48 +2484,67 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; SDKROOT = appletvos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Staging Release"; + name = "Production Release"; }; - 679FF6873FEB353F21917C19BCC838E8 /* Staging Debug */ = { + BC_27A94FA771ABEE02868BCED0690C89E1 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/tvOS", - ); INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; - PRODUCT_NAME = Framework; - SDKROOT = appletvos; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; name = "Staging Debug"; }; - 6E76891FB5D6528F7679C4029CEA9DDB /* Staging Release */ = { + BC_291E5C210DD53C3B3A4C6057C2B9652A /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Production Release"; + }; + BC_2D532F03F57D7D107FDAC3EF23DBFBFE /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + BC_2DB4D72679A12506C6A8B4728F130B7D /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -3083,17 +2554,140 @@ }; name = "Staging Release"; }; - 6FFE1C21D2525DBB6DFB640EA7DC613A /* Staging Debug */ = { + BC_2F352436A75D33C6D3337012367BE90C /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; + name = "Staging Release"; + }; + BC_3134697E7D6C32A5C4376C581C189D6B /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_313481FFED1411A2B5969B70EBA94383 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + BC_3CCE54849732E01493DDDB7D86E033D4 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; name = "Staging Debug"; }; - 70725C98440FD53BB91443718AC11C49 /* Production Debug */ = { + BC_3D9C1A83637AB10D5FFC5D4F8331091E /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + BC_42C4FEAD23C2FE1A906F4D37F43182AB /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Production Release"; + }; + BC_4346300D78CE0EC28B467470E8C4DB2E /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_46EDEC047C02E1E271BADF861EFB2F8D /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Test Release"; + }; + BC_4AC83F754F5BB02C3019E8AE2303E966 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; @@ -3108,9 +2702,118 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; }; + name = "Production Release"; + }; + BC_4F7A9BAD8AB16D47ECA510689FB5F899 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Staging Debug"; + }; + BC_50C3D866E3B57D83181A8F04E553F557 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; name = "Production Debug"; }; - 71D8747E9D932CC57F5C7689CDAB915E /* Staging Debug */ = { + BC_53BBB90244275C55B50604E0DC26809E /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Staging Debug"; + }; + BC_541CCB32267A890B3BABCE62FFE461E2 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_54F3754420D0F7418AB42235B1D71751 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + BC_56B4C0BD8630088AECC29D1D7064530F /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Debug"; + }; + BC_57D3973CA01D421550D834AFA79D2B4B /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Test Release"; + }; + BC_58D5B708B08789E2DFD4D60A906AAA6E /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_5901F7B4A1799821B3061B5EA7C4A033 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3124,20 +2827,422 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; + name = "Production Debug"; + }; + BC_5951C33138E508D3E6CA672980D5F2B6 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; name = "Staging Debug"; }; - 76B45660690ECDC9D44E1D9957AF5029 /* Production Debug */ = { + BC_5996DB19FBFE69C54C671E0624798C4B /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + BC_5A05C344BCA2E54DFF945E68ECC21064 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + BC_5B12F047BB0206FED25C955314A29B18 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_5BC104FB79C437B79CC9D676B3B964D2 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_5CA18B8A4079FC28EF3A05BDC5E4D501 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + BC_5CBE4F01DBB084436375039EFEDDE6E4 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; SDKROOT = macosx; + SKIP_INSTALL = YES; }; name = "Production Debug"; }; - 78064626756CECDA6038E7E6CF655FCD /* Test Release */ = { + BC_5D33E2C3F29594425D03B339108871CF /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_5D7B920759B10537602230A4B5520551 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_606DC3CBE672B2D9CA4B68FF6F55762D /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + BC_6396C78E99C21A774B9819DC09D88BD7 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Debug"; + }; + BC_63E4D52E21696EFA858D20EA01500612 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Test Debug"; + }; + BC_656BA4FF26F3FB2ECFA5F81D7E133C94 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_679AB0D3CA0237CCB4B711609C0CB16A /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_6851DF4113AFF271AA5DD6D587181A03 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = "Production Release"; + }; + BC_689C05D134F6C4AB2A86666C7C2D1E8F /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + BC_69E8021CB05224B9CAC27F6AFA1763CA /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Staging Debug"; + }; + BC_6A4D0B334934E5E4901A4164AD2DF70A /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_6D1ED651D660692438EF3196506DC5AD /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; + PRODUCT_NAME = Framework; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_6EDDF7399F4EE2E8226F9D006C31ACB1 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Production Release"; + }; + BC_71D19FC08A12CCAB1A85C7A5320A451A /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + BC_724E9BA97FC0605F596460587FFD4C61 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_7477F8344D6D7313C39D897C1864F1B7 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; @@ -3149,7 +3254,222 @@ }; name = "Test Release"; }; - 787DD7CC61878131127305CB1AB42E45 /* Test Debug */ = { + BC_7527094FD7492E6A964EC95E7378EF22 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + BC_791A2E3F88BE34E647BEE192E06BBA74 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Test Debug"; + }; + BC_7A2C8B05671807E16D816BD7F0436418 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_7BA9BA11D163D5F132FE6FFBA4DA1AB8 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_7D0687E6BFF4B05D03341A00447B5070 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_80331E927C4BB7E48B375DB00FD90281 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = App_macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Production Debug"; + }; + BC_80FA279C7B3455A79612ECAB12C9E8F6 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Test Release"; + }; + BC_833320F190FC427049CDF16E1B1AF316 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_83922E2AEA387FB9ABF402C3F401DBA1 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_8433EE3901A89DD2CDDE9F61906433E5 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Test Release"; + }; + BC_853248A59437336C149C6DD8E6E4A208 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Production Debug"; + }; + BC_85A9D050B594B6F44602E90470E75818 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + BC_8624FCCF5B865B80E0B21BA20FA0FAC5 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_865AB65A39A201C7BF448737D287EF85 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_874C935D654D12F1F106CBEFBC4D2074 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3172,20 +3492,40 @@ TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Debug"; + name = "Staging Debug"; }; - 797F51DAE74B0206B1FB49EFDC36E882 /* Production Debug */ = { + BC_8895B9B729A8000331A682AF912CA229 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Production Debug"; + name = "Staging Debug"; }; - 7989C422622E5F667D5D91F93C12621C /* Test Debug */ = { + BC_88D810589CFF611B0D20C0CB47822274 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + BC_89C8C1848F2559C9E46F22CB83CDB25A /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3204,51 +3544,37 @@ TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Debug"; + name = "Staging Release"; }; - 7E3E147996410A7F244FA4C20E212C42 /* Production Release */ = { + BC_904676A8DD86F548E50090FAA97FD9E1 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; - PRODUCT_NAME = Framework2; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; + MY_SETTING = hello; }; name = "Production Release"; }; - 7F42FA78F9209A1EA4BE36ECC88B48DA /* Test Release */ = { + BC_9081CEAEC2FCC555B0BFC28B4EEDF0D6 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = App_macOS/Info.plist; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Release"; + name = "Staging Release"; }; - 812AF666AD151E9D5287EC568E17114F /* Production Debug */ = { + BC_917ABD477C99455FF6BE1A89107FDEC9 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -3257,36 +3583,63 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; - PRODUCT_NAME = Framework2; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - 8605D350B1463319F76600AD82025190 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + BC_919006DE8A7D104D16D1D4C0AB2CC241 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Staging Release"; + }; + BC_9360F45D8F5B06962ACEBF423299C71B /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Staging Release"; + }; + BC_93685F04BC9D8657E5D7B62B22E043AF /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; }; - name = "Production Release"; + name = "Staging Release"; }; - 86078CF18D4E8E2A296357BBD43BB418 /* Staging Debug */ = { + BC_96931434222054E6D7469B6B4EC67E87 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3346,30 +3699,135 @@ }; name = "Staging Debug"; }; - 860C0A667616D8C33213E17E6B7FC967 /* Staging Release */ = { + BC_98CCC502104C412E1F48BB2F610EA45E /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; SDKROOT = iphoneos; + SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Staging Release"; }; - 88755377456A33C84C2CDA0C44A6A61A /* Production Release */ = { + BC_9B4D15D591EA1FDE03F33A0EE5B01DAB /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_9CAC5683B65F9EA32F4A78810EAE488B /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + BC_9CDD286FAE4CE2FC296246C95A178023 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Production Debug"; + }; + BC_9EA5ADC667D6445EB2976A3CA508E70D /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Release"; + }; + BC_9F1E5E527BE355504381023DED9562C9 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + BC_9F549905032A4927CF6B843899EF5775 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Production Debug"; + }; + BC_A3FC5819178DDC45D4D2249ECCCA158D /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-tvOS"; + PRODUCT_NAME = Framework; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + BC_A46551B496D75A9F6D5FF83C2308DC79 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3383,429 +3841,9 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Production Release"; - }; - 8946521E677C9578763AF0CAA5650B6E /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Test Release"; - }; - 8A20B26D66C3C3E2B0C19F697723BF52 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - "\"Vendor\"", - ); - INFOPLIST_FILE = App_iOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.app; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - 8A3DFEC561EA277BC662D7722D957AF7 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - 8CBB1A4C1C82E758EB6AF90A77EAED82 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; name = "Test Debug"; }; - 8D88F6B294E0A440C7E8DCFCC8FD89C6 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - 8DAE6E9C2FA87A76A1FCCFABD30ADB1C /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; - PRODUCT_NAME = Framework2; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - 8E8AE92D9637D33B3BA21DD3A4819647 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; - PRODUCT_NAME = Framework2; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - 8EB82130053C36429A3383113E7E4C52 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - 8EBAD5F0051E7CC4CB35D6D849C46F80 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; - name = "Production Release"; - }; - 9163A49EEE507A13BD6BB29DE77C5AEB /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = "Production Debug"; - }; - 919E11B8D5FA5EE79F9312E6467F574E /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Release"; - }; - 9450C1BF180480F99BCF85B483F6CB9A /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Production Release"; - }; - 953F56182B4014BC2431B0C3BC8C6116 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = App_macOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Test Debug"; - }; - 9846B0E883E03113D131FFC4E4BA1F08 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Debug"; - }; - 9945D662313B9CDAC19EE8047DF3F96F /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - 9AE7569A917E0E01254CCE04B73AF7EF /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; - PRODUCT_NAME = Framework2; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - 9B26DE732F220BC292EADF89DE60A554 /* Test Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C64021D20FD55B89CE1AFE88AE7C1CDD /* config.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_ID_SUFFIX = .test; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = "Test Debug"; - }; - 9D3303E44AE7082447202EA72DDBE833 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = App_macOS/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; - SDKROOT = macosx; - }; - name = "Staging Debug"; - }; - A05A9454AB25290C357E4C2DDC4164C3 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = "Test Debug"; - }; - A245D8EE9B5EE2DC9F08D3E480476D6B /* Staging Release */ = { + BC_A61B5D8B6C38C2B4C738A48343FB4CDA /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3857,245 +3895,18 @@ }; name = "Staging Release"; }; - A28E48690DF1F007ADE74AF8232F9936 /* Production Release */ = { + BC_ACF9A90E6BEFB16076EE5B78A3711D41 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - A2FF3320D39C5C2078C7B71ECD03AEF0 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = "Production Debug"; - }; - A3BBDD580918C4146F640B3D5BECDE3A /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - A6191A82E89AAE95FF0927ADC4CED07C /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - A94D9A8E6B3EC8B43280005AA5CA08C5 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - AB6DE922A459F5FD497E4A88028D774F /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - AC0BADE62931604AA108798EB524D47A /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Release"; - }; - AE20EE3DA3CAF7CF656625BC1104E356 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - AEC12413C878641363A9F9D8159AFAFD /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; SDKROOT = watchos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Staging Release"; - }; - B1E2C4D4695C5EF681BF34BD6414FFD9 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Test Release"; }; - B524E0A2A955DEAE9EA8A773C63AB9AC /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - MY_SETTING = hello; - }; - name = "Test Release"; - }; - B5ED36F7268D18E542F85A14D09E1740 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - B6B5C9184CEE823626CCCC86A8CD9AB0 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - B7022F6F63AADF6396ED13F7B439FD4A /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - B84D4575BDB10CC7877B363EE9AB4333 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; - PRODUCT_NAME = Framework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - B93A0939BE7361F012B34296B0258492 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = "Test Release"; - }; - BAC461FFB8CD5E0FBEF317CF56AE0847 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Test Debug"; - }; - BC10D77B329054451FCFC1862EF230EA /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; - BEA623C6A5A8AA7DFF3972CFA7FDB1FF /* Production Release */ = { + BC_AE11EA7D0985D3AD750BDB7F362B6726 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -4116,124 +3927,9 @@ SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Production Release"; - }; - C1B80F9BE08D4FB9503CA748D889BCB6 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Staging Debug"; - }; - C6C03D2CBD5E5EAC3FDBE9BB772D405D /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; - PRODUCT_NAME = Framework2; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - C715D4C7279C44607E66D74085D7E2C3 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = App_watchOS/Info.plist; - PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 3.0; - }; - name = "Test Release"; - }; - C964103E2697EFFCBB8E04FAD89BCB2A /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = App_iOS_UITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = App_iOS; - }; - name = "Staging Debug"; - }; - CA1133BA3266746EA55DC6CA3BB15C79 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; - CCE426FC0F771BD9F1046D237AC09BEA /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; - PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Test Release"; - }; - CF4A979E679D2D7B6180C42079630DF7 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = "XPC Service/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; - SDKROOT = macosx; - }; name = "Test Debug"; }; - D135C764212A868AB1BFA59D08477749 /* Production Release */ = { + BC_B0011E28621230A66DBE3070C59108D4 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -4258,19 +3954,18 @@ }; name = "Production Release"; }; - D298C10A9A216C710978B9EC85B4FAB0 /* Test Release */ = { + BC_B19AA9EDCE45F13CA00B669DADF86395 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; SDKROOT = iphoneos; - SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Test Release"; + name = "Test Debug"; }; - D30FF0A51CA7720140967225CEB93621 /* Production Release */ = { + BC_B2819DF0E90F3F3341B2B3A828778827 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; @@ -4285,32 +3980,119 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; }; - name = "Production Release"; + name = "Production Debug"; }; - D517F3468BE1A7136FA1FCBBEF7555F1 /* Staging Debug */ = { + BC_B290BF236EBF078304DB54D0CE99B85A /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { - INFOPLIST_FILE = IMessage/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Test Debug"; + }; + BC_B2EA5B6CE006C3C8DB5A6AC3A2C78E59 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + MY_SETTING = hello; + }; + name = "Test Debug"; + }; + BC_B3B360DE1D00D5D3DE54D0467886EEDD /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_B3CC7B17DDF2C081536FC92CF25981BD /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + BC_B44CB3772859FEECDAFDCD4B2FFA2E26 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; + BC_B52BB5E51BF8953D7DA1F42BA3803D2E /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = App_macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Test Debug"; + }; + BC_B6F81B24E04D91DFE5F36AAF99FCFA5D /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Staging Debug"; }; - D7F70F65A8FD6B7F2190B24FB308C9D9 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = "Production Release"; - }; - D9FDA7C09DC2A6CD9C4249D09843E029 /* Test Release */ = { + BC_BBA77AE6DA089F82907B6DFC338A6F37 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -4332,13 +4114,24 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Release"; + name = "Test Debug"; }; - DA149E9976E5303041A1B63EE671FA94 /* Test Release */ = { + BC_BC88A6EBF48BB9B821C5B8001678AC2E /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + BC_BFFBE0C278E007152F06241181A3457E /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -4346,23 +4139,206 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; PRODUCT_NAME = Framework2; - SDKROOT = macosx; + SDKROOT = appletvos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Test Release"; + name = "Production Debug"; }; - DC7B7968E87668181B3ECAB77307359B /* Production Debug */ = { + BC_C07EA83764F4BDE5F0059DC49805D92B /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { MY_SETTING = hello; }; + name = "Staging Release"; + }; + BC_C38327E8FC090ADC83AA700666F26B0E /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; name = "Production Debug"; }; - DCF4BAB4108BB4A76F2BFDF0FC92BB42 /* Production Debug */ = { + BC_C507150F28216FCF1029C0C97677DBE5 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = App_macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Test Release"; + }; + BC_C5288877BBCE2FA6BA4D3FACBFF3BA7F /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = App_macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Production Release"; + }; + BC_C60CBFC5B28D2B8906EAF4D4D3C81597 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_C7D3757F2E3D9743FDC0CA97F807919C /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; + BC_C9DCD449062A9160795D3701B9D2286E /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Production Release"; + }; + BC_CD673788A57DF4BFEB50B4F1581C742E /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = IMessage/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_CECBF50DBAC4771C31C83814C20D07B2 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", + ); + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_D02EB4360B13F2E445DB48AD85FDFCE6 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-iOS"; + PRODUCT_NAME = Framework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_D4F031939A239C28219748EFD83D30AA /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "XPC Service/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.XPCService; + SDKROOT = macosx; + }; + name = "Test Debug"; + }; + BC_D4FC53C776F8F2638D1D294F70517658 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -4380,95 +4356,86 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; }; - name = "Production Debug"; + name = "Test Debug"; }; - DDEA2A1A237A241528F5692D8DA284AC /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; - PRODUCT_NAME = Framework2; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - DF95A0DC831A928E81362FACABB65D0C /* Test Release */ = { + BC_DA0BB134B708A4D257F250D3FA757711 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = appletvos; + SDKROOT = iphoneos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Test Release"; }; - E22E8833641D3779586C0B16FA32A016 /* Staging Debug */ = { + BC_DA5027F5182F7A40FB94FD282B57BC3E /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; - INFOPLIST_FILE = "IMessage MessagesExtension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.iMessageApp.extension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; - E3CDCDB9EED4CB38950534D8D9E521B2 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - E6B9E89A82F37BBE7118A108CDD2FA96 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", + "\"Vendor\"", ); - INFOPLIST_FILE = App_iOS_Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + INFOPLIST_FILE = App_iOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.app; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Staging Release"; }; - E86C0E6E6FD6A5052CFD159F134F7C0C /* Test Release */ = { + BC_DD94802386549D49D781D0BF313007D4 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + BC_DF27A9642DF4C47995FB0B0F4F6C2A98 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_E254C909463A5ADF59BD226772066ADA /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; @@ -4485,7 +4452,56 @@ }; name = "Test Release"; }; - E8F27F54DBBD16F2E6BDD29ECD13EA30 /* Test Debug */ = { + BC_E52BEBA72F64BEC8F09733B49F7BA392 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_E6F51B0AAB0A7B33D902BD20A14E355C /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-Tests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; + BC_E8AE376BBD8C86CFB51C9D5A490FDDBE /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = App_iOS_UITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-iOS-UITests"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App_iOS; + }; + name = "Staging Debug"; + }; + BC_E90B182AC1AF70BB78598DADECF9254B /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; @@ -4496,8 +4512,132 @@ }; name = "Test Debug"; }; - EC28E440C15EE7F1FB7DB5DCE6730C35 /* Test Release */ = { + BC_E9A1D87B4DB80BCC61D6B5F59D81865D /* Test Release */ = { isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = "App_watchOS Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch.extension; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Test Release"; + }; + BC_F1A1A29B491BDE527B8095C7420311D9 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = App_watchOS/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = com.project.app.watch; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 3.0; + }; + name = "Test Debug"; + }; + BC_F7D27DC0894036434C159F86616307EF /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Release"; + }; + BC_F81BA31D0E5421AC0DDFB2D799C84E2E /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Staging Release"; + }; + BC_F947CECE4A424652DB631A640F423950 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = App_macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.project.App-macOS"; + SDKROOT = macosx; + }; + name = "Staging Debug"; + }; + BC_F9F3A5E30D3C940B7D85E1AE59A6B3D8 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_FAA6D28DC24848759E58A2552BD37359 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; + PRODUCT_NAME = Framework; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; + BC_FBF3614A1E9EDDE43929E81FDBD8B4B8 /* Test Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FR_22A431E337CB22CE70E39135206EDE27 /* config.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; BUNDLE_ID_SUFFIX = .test; @@ -4529,37 +4669,34 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.0; - VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; - name = "Test Release"; + name = "Test Debug"; }; - EF427E493E485ED823B46796B5706EE0 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-Swift"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; - F17C47BA1D1F10D90B7B92A641698D4B /* Staging Release */ = { + BC_FF1009503385A37130A5A131E70F0B18 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; @@ -4569,45 +4706,9 @@ SDKROOT = macosx; SKIP_INSTALL = YES; }; - name = "Staging Release"; + name = "Production Release"; }; - F554EE27D3B2F59E7560BC2EA81F0126 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/watchOS", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-watchOS"; - PRODUCT_NAME = Framework; - SDKROOT = watchos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 4; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Production Debug"; - }; - F62A9809FA0E2F5B8F48BDA7460B5385 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; - PRODUCT_NAME = StaticLibrary_ObjC; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; - F6BF7393A0C1EF6980A53546CE6F7AB9 /* Staging Debug */ = { + BC_FF3600FA7FDB235869A6CB7BBDBD8C86 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = ""; @@ -4618,437 +4719,339 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; PRODUCT_NAME = Framework2; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = "Staging Debug"; - }; - FB96519CA3C8DDAEBFFFE6D0143547C3 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; - PRODUCT_NAME = StaticLibrary_ObjC; SDKROOT = watchos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; - }; - name = "Production Release"; - }; - FD6B56D66F61D5D15F85BF3A793A4737 /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.project.Legacy; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; - FF1FD074D08FB642C47833A35CF9A077 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = Framework/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework-macOS"; - PRODUCT_NAME = Framework; - SDKROOT = macosx; - SKIP_INSTALL = YES; VERSIONING_SYSTEM = "apple-generic"; }; name = "Production Release"; }; - FF20BE3E1E930A3CDD0440B465F82FD9 /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; - VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = "Production Release"; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0AA719054B034D653457F3861CE722A9 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */ = { + CL_0562279D56EF60E8CCC0973D2C663637 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 53FA2A6BC1E12907C7E04A1686CD2235 /* Production Debug */, - D135C764212A868AB1BFA59D08477749 /* Production Release */, - 679FF6873FEB353F21917C19BCC838E8 /* Staging Debug */, - 676171EF49F08996E70CF35B0210B3EE /* Staging Release */, - 3E086BCE5D760D61BB3D412C9F0B4BDA /* Test Debug */, - 1D9EB22E5DBAB4FA60986D9F7D4EB36B /* Test Release */, + BC_F9F3A5E30D3C940B7D85E1AE59A6B3D8 /* Production Debug */, + BC_4346300D78CE0EC28B467470E8C4DB2E /* Production Release */, + BC_DD94802386549D49D781D0BF313007D4 /* Staging Debug */, + BC_89C8C1848F2559C9E46F22CB83CDB25A /* Staging Release */, + BC_54F3754420D0F7418AB42235B1D71751 /* Test Debug */, + BC_3134697E7D6C32A5C4376C581C189D6B /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 0D5965C1A1D5123D687DA32AC9B957F8 /* Build configuration list for PBXProject "Project" */ = { + CL_11BB9F4DF26D98C0A2C8E1668356269F /* Build configuration list for PBXNativeTarget "Framework_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9163A49EEE507A13BD6BB29DE77C5AEB /* Production Debug */, - FF20BE3E1E930A3CDD0440B465F82FD9 /* Production Release */, - 86078CF18D4E8E2A296357BBD43BB418 /* Staging Debug */, - A245D8EE9B5EE2DC9F08D3E480476D6B /* Staging Release */, - 9B26DE732F220BC292EADF89DE60A554 /* Test Debug */, - EC28E440C15EE7F1FB7DB5DCE6730C35 /* Test Release */, + BC_032D44BB36CD1AC13FFFAC654631D432 /* Production Debug */, + BC_B0011E28621230A66DBE3070C59108D4 /* Production Release */, + BC_A3FC5819178DDC45D4D2249ECCCA158D /* Staging Debug */, + BC_0B57E3E0E8C194293ABFEEF97F104F30 /* Staging Release */, + BC_0B1CBABAB9579A064729249F5E1B7B84 /* Test Debug */, + BC_1603C1C58A4D6AE1BD0707D13D2C8F44 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_159255858B3EEC02844A3059326A6B93 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_606DC3CBE672B2D9CA4B68FF6F55762D /* Production Debug */, + BC_9B4D15D591EA1FDE03F33A0EE5B01DAB /* Production Release */, + BC_5CA18B8A4079FC28EF3A05BDC5E4D501 /* Staging Debug */, + BC_98CCC502104C412E1F48BB2F610EA45E /* Staging Release */, + BC_5996DB19FBFE69C54C671E0624798C4B /* Test Debug */, + BC_541CCB32267A890B3BABCE62FFE461E2 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_289609080F2D20D506C8A587BC92807B /* Build configuration list for PBXNativeTarget "Framework2_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_656BA4FF26F3FB2ECFA5F81D7E133C94 /* Production Debug */, + BC_5D7B920759B10537602230A4B5520551 /* Production Release */, + BC_27A94FA771ABEE02868BCED0690C89E1 /* Staging Debug */, + BC_9081CEAEC2FCC555B0BFC28B4EEDF0D6 /* Staging Release */, + BC_B44CB3772859FEECDAFDCD4B2FFA2E26 /* Test Debug */, + BC_22D59B57A805B62A266F803CCDD49C26 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_2E30D27084B352548CCAA3500158519B /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_0E104167F96EA087A23DFBE2430D5612 /* Production Debug */, + BC_6EDDF7399F4EE2E8226F9D006C31ACB1 /* Production Release */, + BC_56B4C0BD8630088AECC29D1D7064530F /* Staging Debug */, + BC_F7D27DC0894036434C159F86616307EF /* Staging Release */, + BC_E90B182AC1AF70BB78598DADECF9254B /* Test Debug */, + BC_ACF9A90E6BEFB16076EE5B78A3711D41 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_333C6C3162FB671343E806257FB2A411 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_B2819DF0E90F3F3341B2B3A828778827 /* Production Debug */, + BC_4AC83F754F5BB02C3019E8AE2303E966 /* Production Release */, + BC_6396C78E99C21A774B9819DC09D88BD7 /* Staging Debug */, + BC_9EA5ADC667D6445EB2976A3CA508E70D /* Staging Release */, + BC_0198386D4EF48A4C053820EEEE1936CB /* Test Debug */, + BC_E9A1D87B4DB80BCC61D6B5F59D81865D /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_3ABBEC1A6EFC98F40894F5E4769650EF /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_3D9C1A83637AB10D5FFC5D4F8331091E /* Production Debug */, + BC_679AB0D3CA0237CCB4B711609C0CB16A /* Production Release */, + BC_9CAC5683B65F9EA32F4A78810EAE488B /* Staging Debug */, + BC_2F352436A75D33C6D3337012367BE90C /* Staging Release */, + BC_7527094FD7492E6A964EC95E7378EF22 /* Test Debug */, + BC_7477F8344D6D7313C39D897C1864F1B7 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_3BB54CFB2F2EFE7302C0B0709BD0AE04 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_5CBE4F01DBB084436375039EFEDDE6E4 /* Production Debug */, + BC_FF1009503385A37130A5A131E70F0B18 /* Production Release */, + BC_53BBB90244275C55B50604E0DC26809E /* Staging Debug */, + BC_F81BA31D0E5421AC0DDFB2D799C84E2E /* Staging Release */, + BC_63E4D52E21696EFA858D20EA01500612 /* Test Debug */, + BC_8433EE3901A89DD2CDDE9F61906433E5 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_674C71F7D7B679C67A944F0110840758 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_FAA6D28DC24848759E58A2552BD37359 /* Production Debug */, + BC_5BC104FB79C437B79CC9D676B3B964D2 /* Production Release */, + BC_9F1E5E527BE355504381023DED9562C9 /* Staging Debug */, + BC_C60CBFC5B28D2B8906EAF4D4D3C81597 /* Staging Release */, + BC_BBA77AE6DA089F82907B6DFC338A6F37 /* Test Debug */, + BC_0271561C28AF4A74C6924A2187BC8487 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_6993244897DFCCF1F61A6136FDBE3C01 /* Build configuration list for PBXNativeTarget "XPC Service" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_9F549905032A4927CF6B843899EF5775 /* Production Debug */, + BC_C9DCD449062A9160795D3701B9D2286E /* Production Release */, + BC_4F7A9BAD8AB16D47ECA510689FB5F899 /* Staging Debug */, + BC_11CBEB05340DE3C8F396B359A9144039 /* Staging Release */, + BC_D4F031939A239C28219748EFD83D30AA /* Test Debug */, + BC_80FA279C7B3455A79612ECAB12C9E8F6 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_7A3206BF9A92D4552AE40D148897BB3E /* Build configuration list for PBXNativeTarget "Framework_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_5D33E2C3F29594425D03B339108871CF /* Production Debug */, + BC_58D5B708B08789E2DFD4D60A906AAA6E /* Production Release */, + BC_120D6C5C7E4D1D6566CBD71E11C3DF37 /* Staging Debug */, + BC_0D96F61E117D6A8D2353B0E7CB445AEA /* Staging Release */, + BC_5A05C344BCA2E54DFF945E68ECC21064 /* Test Debug */, + BC_6D1ED651D660692438EF3196506DC5AD /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; + CL_85167C2DED9F1F2F7D5162C1DD252426 /* Build configuration list for PBXProject "Project" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_209579D4C144FB697FDD46843485CC6A /* Production Debug */, + BC_6851DF4113AFF271AA5DD6D587181A03 /* Production Release */, + BC_96931434222054E6D7469B6B4EC67E87 /* Staging Debug */, + BC_A61B5D8B6C38C2B4C738A48343FB4CDA /* Staging Release */, + BC_FBF3614A1E9EDDE43929E81FDBD8B4B8 /* Test Debug */, + BC_19E3B21D0DA59BAF1B99899A35858D52 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; - 13FC8BD638A49F585CF46B85EF6E6E4E /* Build configuration list for PBXNativeTarget "App_watchOS" */ = { + CL_89763567DCA601C83E4C78A9917D81AD /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 617BB41EB582FD2294AD3F0EF67FF86C /* Production Debug */, - 17DD6C54D892A228DC61C020225C9051 /* Production Release */, - C1B80F9BE08D4FB9503CA748D889BCB6 /* Staging Debug */, - AEC12413C878641363A9F9D8159AFAFD /* Staging Release */, - BAC461FFB8CD5E0FBEF317CF56AE0847 /* Test Debug */, - C715D4C7279C44607E66D74085D7E2C3 /* Test Release */, + BC_5901F7B4A1799821B3061B5EA7C4A033 /* Production Debug */, + BC_E52BEBA72F64BEC8F09733B49F7BA392 /* Production Release */, + BC_E6F51B0AAB0A7B33D902BD20A14E355C /* Staging Debug */, + BC_689C05D134F6C4AB2A86666C7C2D1E8F /* Staging Release */, + BC_A46551B496D75A9F6D5FF83C2308DC79 /* Test Debug */, + BC_833320F190FC427049CDF16E1B1AF316 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 330B76D4702856DD55067456FD7A4F4A /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { + CL_91682ADED17A2C81A700A67F5D70BA1F /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - B6B5C9184CEE823626CCCC86A8CD9AB0 /* Production Debug */, - B7022F6F63AADF6396ED13F7B439FD4A /* Production Release */, - E22E8833641D3779586C0B16FA32A016 /* Staging Debug */, - 8EB82130053C36429A3383113E7E4C52 /* Staging Release */, - A94D9A8E6B3EC8B43280005AA5CA08C5 /* Test Debug */, - 78064626756CECDA6038E7E6CF655FCD /* Test Release */, + BC_C38327E8FC090ADC83AA700666F26B0E /* Production Debug */, + BC_0D53E4051E21792867D5FA4A11B751AB /* Production Release */, + BC_69E8021CB05224B9CAC27F6AFA1763CA /* Staging Debug */, + BC_9360F45D8F5B06962ACEBF423299C71B /* Staging Release */, + BC_791A2E3F88BE34E647BEE192E06BBA74 /* Test Debug */, + BC_46EDEC047C02E1E271BADF861EFB2F8D /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 4DF366239AC6F6E9EE59EEA525319ABA /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */ = { + CL_9FEF3E411E281B1820B2B067FC1C1B85 /* Build configuration list for PBXNativeTarget "Framework_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 600D2124C2A4443FF163E6E3B501E909 /* Production Debug */, - 88755377456A33C84C2CDA0C44A6A61A /* Production Release */, - 71D8747E9D932CC57F5C7689CDAB915E /* Staging Debug */, - E6B9E89A82F37BBE7118A108CDD2FA96 /* Staging Release */, - 043A0C042785957178A6693CFA0E1AD6 /* Test Debug */, - 01DBD7FCC87C5676808C8DC642E5076D /* Test Release */, + BC_724E9BA97FC0605F596460587FFD4C61 /* Production Debug */, + BC_D02EB4360B13F2E445DB48AD85FDFCE6 /* Production Release */, + BC_874C935D654D12F1F106CBEFBC4D2074 /* Staging Debug */, + BC_6A4D0B334934E5E4901A4164AD2DF70A /* Staging Release */, + BC_71D19FC08A12CCAB1A85C7A5320A451A /* Test Debug */, + BC_917ABD477C99455FF6BE1A89107FDEC9 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 526C1EB2E50CDBABCB448EE2FDF2E5D8 /* Build configuration list for PBXNativeTarget "XPC Service" */ = { + CL_A55E6C4018D2631D41C660DBF2113765 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 76B45660690ECDC9D44E1D9957AF5029 /* Production Debug */, - 8EBAD5F0051E7CC4CB35D6D849C46F80 /* Production Release */, - 41AE4D3B9E1B4B940169B84E3BA5CCE7 /* Staging Debug */, - 3B64F4C26A564FBA69A8B5DD22A9CF1E /* Staging Release */, - CF4A979E679D2D7B6180C42079630DF7 /* Test Debug */, - 8946521E677C9578763AF0CAA5650B6E /* Test Release */, + BC_BFFBE0C278E007152F06241181A3457E /* Production Debug */, + BC_24042033AF9D3DEDAD53ACAF1C2BB0B2 /* Production Release */, + BC_88D810589CFF611B0D20C0CB47822274 /* Staging Debug */, + BC_DF27A9642DF4C47995FB0B0F4F6C2A98 /* Staging Release */, + BC_313481FFED1411A2B5969B70EBA94383 /* Test Debug */, + BC_8624FCCF5B865B80E0B21BA20FA0FAC5 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 59C3AA3AEA5802DA17DF9B42615D9B6B /* Build configuration list for PBXNativeTarget "iMessageApp" */ = { + CL_AA475AE6741D5744A91627E7FAF4C986 /* Build configuration list for PBXNativeTarget "iMessageApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - A6191A82E89AAE95FF0927ADC4CED07C /* Production Debug */, - 48C7C82163507BFDDBBE9640C56C4384 /* Production Release */, - D517F3468BE1A7136FA1FCBBEF7555F1 /* Staging Debug */, - CA1133BA3266746EA55DC6CA3BB15C79 /* Staging Release */, - AB6DE922A459F5FD497E4A88028D774F /* Test Debug */, - 8D88F6B294E0A440C7E8DCFCC8FD89C6 /* Test Release */, + BC_50C3D866E3B57D83181A8F04E553F557 /* Production Debug */, + BC_CD673788A57DF4BFEB50B4F1581C742E /* Production Release */, + BC_5951C33138E508D3E6CA672980D5F2B6 /* Staging Debug */, + BC_93685F04BC9D8657E5D7B62B22E043AF /* Staging Release */, + BC_B19AA9EDCE45F13CA00B669DADF86395 /* Test Debug */, + BC_7A2C8B05671807E16D816BD7F0436418 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 5B1322FEBB7A746BD1BF9227D37A7421 /* Build configuration list for PBXNativeTarget "App_iOS" */ = { + CL_B523BC91AF70F483BF998E2BA8DD6669 /* Build configuration list for PBXAggregateTarget "SuperTarget" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1B04852DE1BAC9963EC108C9CF616C68 /* Production Debug */, - BEA623C6A5A8AA7DFF3972CFA7FDB1FF /* Production Release */, - 5E2F1BACE5D532159E4E4CDEA7781A53 /* Staging Debug */, - 860C0A667616D8C33213E17E6B7FC967 /* Staging Release */, - 042BBE336DA13DF962EA6C453B022AF8 /* Test Debug */, - 8A20B26D66C3C3E2B0C19F697723BF52 /* Test Release */, + BC_1841B61F3F85EC24C4AACBC5C025BD08 /* Production Debug */, + BC_904676A8DD86F548E50090FAA97FD9E1 /* Production Release */, + BC_0E087681CE92CC2069F9E562ECC9FD23 /* Staging Debug */, + BC_C07EA83764F4BDE5F0059DC49805D92B /* Staging Release */, + BC_B2EA5B6CE006C3C8DB5A6AC3A2C78E59 /* Test Debug */, + BC_57D3973CA01D421550D834AFA79D2B4B /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 6D4D2839561B5E9CF0D2C239573C2178 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */ = { + CL_C50D7BB75115E8561A0975DE1B65E088 /* Build configuration list for PBXNativeTarget "App_watchOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - DCF4BAB4108BB4A76F2BFDF0FC92BB42 /* Production Debug */, - 412CC38BB25D52A84D6951A85EF344DF /* Production Release */, - 2DD3A646E69429A5AF67450B9CB2FCB2 /* Staging Debug */, - 336426B8AB782E9CBB9AB6471046BF19 /* Staging Release */, - 54F359EE934A693B2193AAEC11473AA8 /* Test Debug */, - 8DAE6E9C2FA87A76A1FCCFABD30ADB1C /* Test Release */, + BC_853248A59437336C149C6DD8E6E4A208 /* Production Debug */, + BC_42C4FEAD23C2FE1A906F4D37F43182AB /* Production Release */, + BC_3CCE54849732E01493DDDB7D86E033D4 /* Staging Debug */, + BC_919006DE8A7D104D16D1D4C0AB2CC241 /* Staging Release */, + BC_F1A1A29B491BDE527B8095C7420311D9 /* Test Debug */, + BC_16E1FCDA9DB6E70091B54603E4E6F58B /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 7523052A5C96494802A0431E05947F67 /* Build configuration list for PBXLegacyTarget "Legacy" */ = { + CL_C7673A8886407721BA5BFA1B18F184D4 /* Build configuration list for PBXNativeTarget "App_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2EABDD2A3CB1E85833E8A1555AE92380 /* Production Debug */, - A28E48690DF1F007ADE74AF8232F9936 /* Production Release */, - 6FFE1C21D2525DBB6DFB640EA7DC613A /* Staging Debug */, - 6E76891FB5D6528F7679C4029CEA9DDB /* Staging Release */, - FD6B56D66F61D5D15F85BF3A793A4737 /* Test Debug */, - B1E2C4D4695C5EF681BF34BD6414FFD9 /* Test Release */, + BC_C7D3757F2E3D9743FDC0CA97F807919C /* Production Debug */, + BC_1CF7F7BC6E19981DCBBFE6FE2D9FCB62 /* Production Release */, + BC_161B10E65E0BE143A17EADFA5EE88B3D /* Staging Debug */, + BC_DA5027F5182F7A40FB94FD282B57BC3E /* Staging Release */, + BC_AE11EA7D0985D3AD750BDB7F362B6726 /* Test Debug */, + BC_CECBF50DBAC4771C31C83814C20D07B2 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 79A5A52B3AEBCBFB7ED1858548D1282A /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */ = { + CL_D72660834ED9ED4EB0E973ABC256E014 /* Build configuration list for PBXNativeTarget "App_macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - F62A9809FA0E2F5B8F48BDA7460B5385 /* Production Debug */, - BC10D77B329054451FCFC1862EF230EA /* Production Release */, - 12CA842D6B2FF31191FE1307FCD9D7EE /* Staging Debug */, - 5C0EB6B29716576F8BEC3FCC79F4761A /* Staging Release */, - 8CBB1A4C1C82E758EB6AF90A77EAED82 /* Test Debug */, - D298C10A9A216C710978B9EC85B4FAB0 /* Test Release */, + BC_80331E927C4BB7E48B375DB00FD90281 /* Production Debug */, + BC_C5288877BBCE2FA6BA4D3FACBFF3BA7F /* Production Release */, + BC_F947CECE4A424652DB631A640F423950 /* Staging Debug */, + BC_079D311B8C64F17C816583A1A4D84F42 /* Staging Release */, + BC_B52BB5E51BF8953D7DA1F42BA3803D2E /* Test Debug */, + BC_C507150F28216FCF1029C0C97677DBE5 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 837376727FE2CF4AE46785F0E9561ED1 /* Build configuration list for PBXNativeTarget "App_macOS" */ = { + CL_DB66C428B606518C825ECFF73A5EF059 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 182E0CC8A3915AEB912F5D1291301A43 /* Production Debug */, - 07E1360852ED801B9A2C191311650CB6 /* Production Release */, - 9D3303E44AE7082447202EA72DDBE833 /* Staging Debug */, - 033BB6B0853606FB2D2FD4F80238B6C0 /* Staging Release */, - 953F56182B4014BC2431B0C3BC8C6116 /* Test Debug */, - 7F42FA78F9209A1EA4BE36ECC88B48DA /* Test Release */, + BC_9CDD286FAE4CE2FC296246C95A178023 /* Production Debug */, + BC_291E5C210DD53C3B3A4C6057C2B9652A /* Production Release */, + BC_E8AE376BBD8C86CFB51C9D5A490FDDBE /* Staging Debug */, + BC_19CBA184C0BDC24CE3657C025A8FC279 /* Staging Release */, + BC_B290BF236EBF078304DB54D0CE99B85A /* Test Debug */, + BC_E254C909463A5ADF59BD226772066ADA /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 933D4300D58AA7B25E208357C65F2AD3 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */ = { + CL_E92E1636D45B284E44D38EB3EF7C98C9 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 56663C3D4D239DB7132EFC6F4BD6931F /* Production Debug */, - 8605D350B1463319F76600AD82025190 /* Production Release */, - C964103E2697EFFCBB8E04FAD89BCB2A /* Staging Debug */, - 65444C57D9A364444BA7003179D5061D /* Staging Release */, - 5AA86BB667B6BB6A065CDC7A86358C06 /* Test Debug */, - E86C0E6E6FD6A5052CFD159F134F7C0C /* Test Release */, + BC_B3B360DE1D00D5D3DE54D0467886EEDD /* Production Debug */, + BC_FF3600FA7FDB235869A6CB7BBDBD8C86 /* Production Release */, + BC_85A9D050B594B6F44602E90470E75818 /* Staging Debug */, + BC_865AB65A39A201C7BF448737D287EF85 /* Staging Release */, + BC_D4FC53C776F8F2638D1D294F70517658 /* Test Debug */, + BC_83922E2AEA387FB9ABF402C3F401DBA1 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - 9BA95DBD7B862EE1F43DC68338281D0E /* Build configuration list for PBXNativeTarget "Framework_macOS" */ = { + CL_F6ECF2D45799DBBB48DE9AE80AC280AA /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 591C680E52370290108989EB469E5509 /* Production Debug */, - FF1FD074D08FB642C47833A35CF9A077 /* Production Release */, - E3CDCDB9EED4CB38950534D8D9E521B2 /* Staging Debug */, - 5A1D3DA3365EDDAF6EC275BEF2A939B0 /* Staging Release */, - 17F6FF338B0EDFF7796A8F04E3F3800F /* Test Debug */, - 239E8DC605456167C1F5A3E11E89E02E /* Test Release */, + BC_B3CC7B17DDF2C081536FC92CF25981BD /* Production Debug */, + BC_7D0687E6BFF4B05D03341A00447B5070 /* Production Release */, + BC_B6F81B24E04D91DFE5F36AAF99FCFA5D /* Staging Debug */, + BC_BC88A6EBF48BB9B821C5B8001678AC2E /* Staging Release */, + BC_1D9A30F2A4E9057FD8A7101D4AA4F47D /* Test Debug */, + BC_DA0BB134B708A4D257F250D3FA757711 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - ABBCABD06AD7666C13DD9BAF0C16276E /* Build configuration list for PBXNativeTarget "Framework_iOS" */ = { + CL_F8A83116F913B5DD0538C3680E08BDDB /* Build configuration list for PBXLegacyTarget "Legacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9945D662313B9CDAC19EE8047DF3F96F /* Production Debug */, - 5F9AF0BD4959D01102D429D68A1AE409 /* Production Release */, - 5720F6E9771684E5729A08D75426C874 /* Staging Debug */, - AC0BADE62931604AA108798EB524D47A /* Staging Release */, - 787DD7CC61878131127305CB1AB42E45 /* Test Debug */, - B84D4575BDB10CC7877B363EE9AB4333 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - B2C7678C2E2663B0DB1ED71352D99426 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A2FF3320D39C5C2078C7B71ECD03AEF0 /* Production Debug */, - 60521A88A3FF4EDF3DD3A4E909DB4541 /* Production Release */, - 5F2AF4A04FDD6171C4B13DBFE74F77AD /* Staging Debug */, - F17C47BA1D1F10D90B7B92A641698D4B /* Staging Release */, - A05A9454AB25290C357E4C2DDC4164C3 /* Test Debug */, - B93A0939BE7361F012B34296B0258492 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - B792E5189C47CA21F95A329FA1C05715 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1B998C2AF9280CE3625E7DCBA5B62F6E /* Production Debug */, - 2B951E215B2D888141E1252E2FA1F2DF /* Production Release */, - F6BF7393A0C1EF6980A53546CE6F7AB9 /* Staging Debug */, - 263225267AC9E77B5610B7D31E71CB44 /* Staging Release */, - 3EC13048478BFF2EF5984AF7F98E93DD /* Test Debug */, - CCE426FC0F771BD9F1046D237AC09BEA /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - C6AB800DC544086FBA8F60B46D0000E8 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 812AF666AD151E9D5287EC568E17114F /* Production Debug */, - 7E3E147996410A7F244FA4C20E212C42 /* Production Release */, - 9AE7569A917E0E01254CCE04B73AF7EF /* Staging Debug */, - 005BBEE3C0E483C0B46EFCCE3563F2E5 /* Staging Release */, - 7989C422622E5F667D5D91F93C12621C /* Test Debug */, - C6C03D2CBD5E5EAC3FDBE9BB772D405D /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CCF68725DCD5EF7FD03872D0B98C32F0 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F554EE27D3B2F59E7560BC2EA81F0126 /* Production Debug */, - 919E11B8D5FA5EE79F9312E6467F574E /* Production Release */, - 8A3DFEC561EA277BC662D7722D957AF7 /* Staging Debug */, - 0A20244EB4E72EC58117F028E72046EC /* Staging Release */, - 9846B0E883E03113D131FFC4E4BA1F08 /* Test Debug */, - D9FDA7C09DC2A6CD9C4249D09843E029 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - CDA4223FB9077220550DAC72871CFB38 /* Build configuration list for PBXNativeTarget "Framework2_macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DDEA2A1A237A241528F5692D8DA284AC /* Production Debug */, - 1B9700E8063BFE2CBE2FB8B1EDB34253 /* Production Release */, - 8E8AE92D9637D33B3BA21DD3A4819647 /* Staging Debug */, - 0E98CA343910624717406D4EDFE7BB68 /* Staging Release */, - 4B5E0992A404F791F2CFFAD1C96F95E2 /* Test Debug */, - DA149E9976E5303041A1B63EE671FA94 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - D54A0CC77F5631F35C75FEA20D1BA43F /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 797F51DAE74B0206B1FB49EFDC36E882 /* Production Debug */, - FB96519CA3C8DDAEBFFFE6D0143547C3 /* Production Release */, - 3BAD8F458B7F998E8BF6F3C7D2A8516A /* Staging Debug */, - 4B2E7C0E64CC8AE67BAE91B33EAFB6F9 /* Staging Release */, - E8F27F54DBBD16F2E6BDD29ECD13EA30 /* Test Debug */, - 5AFEBB1B2CFDA4E69B52143EF4C01713 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - DF19D3419A77EDFF6F8498EFC3E36048 /* Build configuration list for PBXAggregateTarget "SuperTarget" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DC7B7968E87668181B3ECAB77307359B /* Production Debug */, - 9450C1BF180480F99BCF85B483F6CB9A /* Production Release */, - 073C2C693117E1D34E1B0F985E54181E /* Staging Debug */, - 42E41490B4F137D48214D74A60E82741 /* Staging Release */, - 1A086472EE7B5AD1BCC790833A32EEBD /* Test Debug */, - B524E0A2A955DEAE9EA8A773C63AB9AC /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - E5E32C1485A6F6887EA6CC53B4584F3E /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 16B8CDB44A6128CAA0F76CADB3C8666F /* Production Debug */, - D7F70F65A8FD6B7F2190B24FB308C9D9 /* Production Release */, - 3C145C72644EBBA1C6177D17710C9CD2 /* Staging Debug */, - 129A56DA11ACAC4A31B865C9DCBA1820 /* Staging Release */, - 4280A141F22CF2FEFA06373AEFFAAC0F /* Test Debug */, - DF95A0DC831A928E81362FACABB65D0C /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - F40A414D7A0A13368AC9FB64BA5C73AC /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AE20EE3DA3CAF7CF656625BC1104E356 /* Production Debug */, - 017D658B4ABE46C5A30A44E1EB610EEC /* Production Release */, - B5ED36F7268D18E542F85A14D09E1740 /* Staging Debug */, - A3BBDD580918C4146F640B3D5BECDE3A /* Staging Release */, - 238AD5E15AEE443741AA30FC7DF9BE4E /* Test Debug */, - EF427E493E485ED823B46796B5706EE0 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; - FC084246C395F08CB12677620BAF2399 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 70725C98440FD53BB91443718AC11C49 /* Production Debug */, - D30FF0A51CA7720140967225CEB93621 /* Production Release */, - 1D285F94CF59832C2BA027CD569DDAB7 /* Staging Debug */, - 3BE57E2A55CD16BC51F289949EC85F76 /* Staging Release */, - 096ECE14561204A143946060635175E2 /* Test Debug */, - 4E69BB19B16E547D43AF93A25BCD9F31 /* Test Release */, + BC_057931652E9069AFF23BA573B6564BE5 /* Production Debug */, + BC_5B12F047BB0206FED25C955314A29B18 /* Production Release */, + BC_8895B9B729A8000331A682AF912CA229 /* Staging Debug */, + BC_2DB4D72679A12506C6A8B4728F130B7D /* Staging Release */, + BC_2D532F03F57D7D107FDAC3EF23DBFBFE /* Test Debug */, + BC_7BA9BA11D163D5F132FE6FFBA4DA1AB8 /* Test Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; @@ -5056,19 +5059,19 @@ /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ - 32AE52CAD620F8B92487AA4F5924D0EC /* Model.xcdatamodeld */ = { + VG_EB676136B9F946373D4796800CC00AD4 /* Model.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */, - F04030C0892CAC78F4B4376F938018E3 /* Model 3.xcdatamodel */, - D99F14029800E2D9F2434C4B6D718A5E /* Model.xcdatamodel */, + FR_347062562C9C212A082B1326BBCDC71B /* Model 2.xcdatamodel */, + FR_6643E0FE8DD9AAC71691A739070C6833 /* Model 3.xcdatamodel */, + FR_58A974F0E117C1384FD1B5147E524659 /* Model.xcdatamodel */, ); - currentVersion = FBF4C9FD09B493401414CA2F3086041F /* Model 2.xcdatamodel */; + currentVersion = FR_347062562C9C212A082B1326BBCDC71B /* Model 2.xcdatamodel */; path = Model.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; /* End XCVersionGroup section */ }; - rootObject = 48BA824E9883B72747F77581255D9C94 /* Project object */; + rootObject = P_88EC38DC1E39C9039D2FA49EDC2FA124 /* Project object */; } diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme index acf0b9a1..3c8c9251 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,7 +53,7 @@ @@ -86,7 +86,7 @@ runnableDebuggingMode = "0"> @@ -115,7 +115,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme index 1cf28c94..ff78fb87 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,7 +53,7 @@ @@ -86,7 +86,7 @@ runnableDebuggingMode = "0"> @@ -115,7 +115,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme index dc623756..57dbf591 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -33,7 +33,7 @@ skipped = "NO"> @@ -43,7 +43,7 @@ skipped = "NO"> @@ -53,7 +53,7 @@ @@ -86,7 +86,7 @@ runnableDebuggingMode = "0"> @@ -115,7 +115,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme index d5d61020..b5bd2d09 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_watchOS.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme index fa3f0ee7..a9f290e1 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme @@ -14,7 +14,7 @@ @@ -32,7 +32,7 @@ buildForAnalyzing = "YES"> @@ -50,7 +50,7 @@ @@ -72,7 +72,7 @@ @@ -101,7 +101,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme index 1e73621f..3bed2d8f 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/iMessageApp.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ @@ -57,7 +57,7 @@ runnableDebuggingMode = "0"> @@ -78,7 +78,7 @@ runnableDebuggingMode = "0"> diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 660a0d38..31bede0f 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -262,7 +262,7 @@ class ProjectGeneratorTests: XCTestCase { throw failure("Couldn't find UITest Target") } - //try expect(targetAttributes[uiTestTarget.reference]?["TestTargetID"] as? String) == appTarget.reference.value + try expect(targetAttributes[uiTestTarget]?["TestTargetID"] as? String) != nil try expect(targetAttributes[uiTestTarget]?["ProvisioningStyle"] as? String) == "Manual" try expect(targetAttributes[appTarget]?["ProvisioningStyle"] as? String) == "Automatic" try expect(targetAttributes[appTarget]?["DevelopmentTeam"] as? String) == "123" From a26b2d382a9871ae91709a7698abc42f00154054 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Wed, 10 Oct 2018 20:19:37 +1100 Subject: [PATCH 12/20] fix warnings --- Tests/XcodeGenKitTests/ProjectGeneratorTests.swift | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 31bede0f..7c77635b 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -262,7 +262,7 @@ class ProjectGeneratorTests: XCTestCase { throw failure("Couldn't find UITest Target") } - try expect(targetAttributes[uiTestTarget]?["TestTargetID"] as? String) != nil + try expect((targetAttributes[uiTestTarget]?["TestTargetID"] as? PBXNativeTarget)?.name) == app.name try expect(targetAttributes[uiTestTarget]?["ProvisioningStyle"] as? String) == "Manual" try expect(targetAttributes[appTarget]?["ProvisioningStyle"] as? String) == "Automatic" try expect(targetAttributes[appTarget]?["DevelopmentTeam"] as? String) == "123" @@ -939,10 +939,6 @@ class ProjectGeneratorTests: XCTestCase { try expect(xcodeProject.sharedData?.schemes.count) == 2 - guard let nativeTarget = xcodeProject.pbxproj.nativeTargets - .first(where: { $0.name == app.name }) else { - throw failure("Target not found") - } guard let xcscheme = xcodeProject.sharedData?.schemes .first(where: { $0.name == "\(target.name) Test" }) else { throw failure("Scheme not found") @@ -951,7 +947,7 @@ class ProjectGeneratorTests: XCTestCase { throw failure("Build Action entry not found") } - // FIXME: try expect(buildActionEntry.buildableReference.blueprintIdentifier) == nativeTarget + try expect(buildActionEntry.buildableReference.blueprintIdentifier.count > 0) == true try expect(xcscheme.launchAction?.buildConfiguration) == "Test Debug" try expect(xcscheme.testAction?.buildConfiguration) == "Test Debug" From e17bf7d0f2e6d395a46b7ab73099dee27d85db28 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 11 Oct 2018 21:01:33 +1100 Subject: [PATCH 13/20] update xcodeproj --- Package.resolved | 14 +++++++------- Package.swift | 2 +- Sources/XcodeGen/main.swift | 3 +-- Sources/XcodeGenKit/SettingsBuilder.swift | 3 +-- Tests/XcodeGenKitTests/PerformanceTests.swift | 5 ++--- Tests/XcodeGenKitTests/ProjectFixtureTests.swift | 3 +-- 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/Package.resolved b/Package.resolved index dc529f00..77a558f8 100644 --- a/Package.resolved +++ b/Package.resolved @@ -56,21 +56,21 @@ } }, { - "package": "SwiftPM", - "repositoryURL": "https://github.com/apple/swift-package-manager", + "package": "SwiftShell", + "repositoryURL": "https://github.com/kareman/SwiftShell", "state": { "branch": null, - "revision": "235aacc514cb81a6881364b0fedcb3dd083228f3", - "version": "0.3.0" + "revision": "beebe43c986d89ea5359ac3adcb42dac94e5e08a", + "version": "4.1.2" } }, { "package": "xcodeproj", "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { - "branch": null, - "revision": "ed33abf5f983232d5a27ada48d120ad7564a3087", - "version": "6.1.0" + "branch": "master", + "revision": "7a32fa0ebf0c6120ed8a7de03a632c2a10bbe243", + "version": null } }, { diff --git a/Package.swift b/Package.swift index 31d86154..9c933b68 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.1.0"), + .package(url: "https://github.com/tuist/xcodeproj.git", .branch("master")), ], targets: [ .target(name: "XcodeGen", dependencies: [ diff --git a/Sources/XcodeGen/main.swift b/Sources/XcodeGen/main.swift index 70c91d98..9d732054 100644 --- a/Sources/XcodeGen/main.swift +++ b/Sources/XcodeGen/main.swift @@ -1,4 +1,3 @@ -import Basic import Commander import Foundation import JSONUtilities @@ -55,7 +54,7 @@ func generate(spec: String, project: String, isQuiet: Bool, justVersion: Bool) { if projectFile.exists { try projectFile.copy(tempPath) } - try xcodeProject.write(path: AbsolutePath(tempPath.absolute().string), override: true) + try xcodeProject.write(path: tempPath, override: true) try? projectFile.delete() try tempPath.copy(projectFile) try? tempPath.delete() diff --git a/Sources/XcodeGenKit/SettingsBuilder.swift b/Sources/XcodeGenKit/SettingsBuilder.swift index 2203dd5c..d63cf4f2 100644 --- a/Sources/XcodeGenKit/SettingsBuilder.swift +++ b/Sources/XcodeGenKit/SettingsBuilder.swift @@ -1,4 +1,3 @@ -import Basic import Foundation import JSONUtilities import PathKit @@ -126,7 +125,7 @@ extension Project { if let cached = configFileSettings[configFilePath.string] { return cached.value } else { - guard let configFile = try? XCConfig(path: AbsolutePath(configFilePath.absolute().string)) else { + guard let configFile = try? XCConfig(path: configFilePath) else { configFileSettings[configFilePath.string] = .nothing return nil } diff --git a/Tests/XcodeGenKitTests/PerformanceTests.swift b/Tests/XcodeGenKitTests/PerformanceTests.swift index 0f34a0d5..11058593 100644 --- a/Tests/XcodeGenKitTests/PerformanceTests.swift +++ b/Tests/XcodeGenKitTests/PerformanceTests.swift @@ -4,7 +4,6 @@ import Foundation import XCTest import ProjectSpec import PathKit -import Basic class GeneratedPerformanceTests: XCTestCase { @@ -23,7 +22,7 @@ class GeneratedPerformanceTests: XCTestCase { let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() self.measure { - try! xcodeProject.write(path: AbsolutePath(project.projectPath.absolute().string)) + try! xcodeProject.write(path: project.projectPath) } } } @@ -51,7 +50,7 @@ class FixturePerformanceTests: XCTestCase { let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() self.measure { - try! xcodeProject.write(path: AbsolutePath(project.projectPath.absolute().string)) + try! xcodeProject.write(path: project.projectPath) } } } diff --git a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift index 6e5d94b0..6a0fae4f 100644 --- a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift +++ b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift @@ -4,7 +4,6 @@ import Spectre import XcodeGenKit import xcodeproj import XCTest -import Basic class ProjectFixtureTests: XCTestCase { @@ -63,7 +62,7 @@ fileprivate func generateXcodeProject(specPath: Path, file: String = #file, line let project = try Project(path: specPath) let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() - try xcodeProject.write(path: AbsolutePath(project.projectPath.absolute().string), override: true) + try xcodeProject.write(path: project.projectPath, override: true) return xcodeProject } From 0c02e0973eea72c157aa1ab64c7c7540b6563a80 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Thu, 11 Oct 2018 23:04:26 +1100 Subject: [PATCH 14/20] invalidate references when running performance tests --- Tests/XcodeGenKitTests/PerformanceTests.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tests/XcodeGenKitTests/PerformanceTests.swift b/Tests/XcodeGenKitTests/PerformanceTests.swift index 11058593..6ecaec3d 100644 --- a/Tests/XcodeGenKitTests/PerformanceTests.swift +++ b/Tests/XcodeGenKitTests/PerformanceTests.swift @@ -22,6 +22,7 @@ class GeneratedPerformanceTests: XCTestCase { let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() self.measure { + xcodeProject.pbxproj.invalidateUUIDs() try! xcodeProject.write(path: project.projectPath) } } @@ -50,6 +51,7 @@ class FixturePerformanceTests: XCTestCase { let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() self.measure { + xcodeProject.pbxproj.invalidateUUIDs() try! xcodeProject.write(path: project.projectPath) } } From 65d82bece61dd3dfde9a40d5bf234a6cb17d18f3 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Fri, 12 Oct 2018 00:07:21 +1100 Subject: [PATCH 15/20] improve performance by not sorting files that are later sorted --- Sources/XcodeGenKit/PBXProjGenerator.swift | 6 +++--- Sources/XcodeGenKit/SourceGenerator.swift | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index a441c58f..68100097 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -389,6 +389,7 @@ public class PBXProjGenerator { let carthageDependencies = getAllCarthageDependencies(target: target) let sourceFiles = try sourceGenerator.getAllSourceFiles(targetType: target.type, sources: target.sources) + .sorted { $0.path.lastComponent < $1.path.lastComponent } var plistPath: Path? var searchForPlist = true @@ -572,14 +573,13 @@ public class PBXProjGenerator { var buildPhases: [PBXBuildPhase] = [] func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXBuildFile] { - let files = sourceFiles + return sourceFiles .reduce(into: [SourceFile]()) { output, sourceFile in if !output.contains(where: { $0.fileReference === sourceFile.fileReference }) { output.append(sourceFile) } } - .sorted { $0.path.lastComponent < $1.path.lastComponent } - return files.map { addObject($0.buildFile) } + .map { addObject($0.buildFile) } } func getBuildFilesForPhase(_ buildPhase: BuildPhase) -> [PBXBuildFile] { diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index 59e0e83b..cf2f23c0 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -308,15 +308,12 @@ class SourceGenerator { let directories = children .filter { $0.isDirectory && $0.extension == nil && $0.extension != "lproj" } - .sorted { $0.lastComponent < $1.lastComponent } let filePaths = children .filter { $0.isFile || $0.extension != nil && $0.extension != "lproj" } - .sorted { $0.lastComponent < $1.lastComponent } let localisedDirectories = children .filter { $0.extension == "lproj" } - .sorted { $0.lastComponent < $1.lastComponent } var groupChildren: [PBXFileElement] = filePaths.map { getFileReference(path: $0, inPath: path) } var allSourceFiles: [SourceFile] = filePaths.map { From 3bb7f97aa72f41aa754fbcb8f9c983c82849b718 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Fri, 12 Oct 2018 19:10:59 +1100 Subject: [PATCH 16/20] update xcodeproj --- Package.resolved | 6 +++--- Package.swift | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Package.resolved b/Package.resolved index 77a558f8..2336d7c9 100644 --- a/Package.resolved +++ b/Package.resolved @@ -68,9 +68,9 @@ "package": "xcodeproj", "repositoryURL": "https://github.com/tuist/xcodeproj.git", "state": { - "branch": "master", - "revision": "7a32fa0ebf0c6120ed8a7de03a632c2a10bbe243", - "version": null + "branch": null, + "revision": "869ae3f417b0fb545e454ead36e2e13f157265a2", + "version": "6.2.0" } }, { diff --git a/Package.swift b/Package.swift index 9c933b68..0be7a994 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), - .package(url: "https://github.com/tuist/xcodeproj.git", .branch("master")), + .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.2.0"), ], targets: [ .target(name: "XcodeGen", dependencies: [ From b1b7901f1e30f1d2277efc906ca8bc8e8cd34284 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 14 Oct 2018 21:31:43 +1100 Subject: [PATCH 17/20] don't generate duplicate product file references for cross platform targets --- Sources/ProjectSpec/Target.swift | 11 +++++++---- Sources/XcodeGenKit/PBXProjGenerator.swift | 10 +++++----- .../TestProject/Project.xcodeproj/project.pbxproj | 9 --------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/Sources/ProjectSpec/Target.swift b/Sources/ProjectSpec/Target.swift index 4cdb7b88..f4118c3c 100644 --- a/Sources/ProjectSpec/Target.swift +++ b/Sources/ProjectSpec/Target.swift @@ -39,14 +39,14 @@ public struct Target: ProjectTarget { public var legacy: LegacyTarget? public var deploymentTarget: Version? public var attributes: [String: Any] - internal var productName: String? + public var productName: String public var isLegacy: Bool { return legacy != nil } public var filename: String { - var filename = productName ?? name + var filename = productName if let fileExtension = type.fileExtension { filename += ".\(fileExtension)" } @@ -57,6 +57,7 @@ public struct Target: ProjectTarget { name: String, type: PBXProductType, platform: Platform, + productName: String? = nil, deploymentTarget: Version? = nil, settings: Settings = .empty, configFiles: [String: String] = [:], @@ -76,6 +77,7 @@ public struct Target: ProjectTarget { self.type = type self.platform = platform self.deploymentTarget = deploymentTarget + self.productName = productName ?? name self.settings = settings self.configFiles = configFiles self.sources = sources @@ -230,8 +232,9 @@ extension LegacyTarget: JSONObjectConvertible { extension Target: NamedJSONDictionaryConvertible { public init(name: String, jsonDictionary: JSONDictionary) throws { - self.name = jsonDictionary.json(atKeyPath: "name") ?? name - productName = jsonDictionary.json(atKeyPath: "productName") + let resolvedName: String = jsonDictionary.json(atKeyPath: "name") ?? name + self.name = resolvedName + self.productName = jsonDictionary.json(atKeyPath: "productName") ?? resolvedName let typeString: String = try jsonDictionary.json(atKeyPath: "type") if let type = PBXProductType(string: typeString) { self.type = type diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 68100097..be7072f1 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -123,7 +123,7 @@ public class PBXProjGenerator { lastKnownFileType = fileType } - if !target.isLegacy { + if !target.isLegacy && targetFileReferences[target.productName] == nil { let fileReference = addObject( PBXFileReference( sourceTree: .buildProductsDir, @@ -134,7 +134,7 @@ public class PBXProjGenerator { ) ) - targetFileReferences[target.name] = fileReference + targetFileReferences[target.productName] = fileReference } } @@ -441,7 +441,7 @@ public class PBXProjGenerator { guard let dependencyTarget = project.getTarget(dependencyTargetName) else { continue } - let dependencyFileReference = targetFileReferences[dependencyTargetName]! + let dependencyFileReference = targetFileReferences[dependencyTarget.productName]! let dependecyLinkage = dependencyTarget.defaultLinkage let link = dependency.link ?? ( @@ -449,7 +449,7 @@ public class PBXProjGenerator { || (dependecyLinkage == .static && target.type.isExecutable) ) if link { - let dependencyFile = targetFileReferences[dependencyTargetName]! + let dependencyFile = targetFileReferences[dependencyTarget.productName]! let buildFile = addObject( PBXBuildFile(file: dependencyFile, settings: getDependencyFrameworkSettings(dependency: dependency)) ) @@ -569,7 +569,7 @@ public class PBXProjGenerator { } } - let fileReference = targetFileReferences[target.name] + let fileReference = targetFileReferences[target.productName] var buildPhases: [PBXBuildPhase] = [] func getBuildFilesForSourceFiles(_ sourceFiles: [SourceFile]) -> [PBXBuildFile] { diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index eb94ceaf..10501eab 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -775,19 +775,10 @@ FR_09608EA4613E62B3088BBA06F08E00E9 /* App_watchOS Extension.appex */, FR_0DDA6B4CCFF0DEB79BE16E3F72B95C7F /* App_watchOS.app */, FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, - FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, - FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, - FR_F25AB3F5F1D72653F078DF0E063DC9A5 /* Framework.framework */, - FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, - FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, - FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, FR_20EF6A69E91EC1859026CEBF5AD33FC2 /* Framework2.framework */, FR_1E05BB66BFD5629EAFDC86A4E869F864 /* iMessageApp.app */, FR_586C1089A4869FFCB50BE6A26B0FA1E7 /* iMessageExtension.appex */, FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, - FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, - FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, - FR_0EDA4C9F9810C805C447660BF181FFF9 /* StaticLibrary_ObjC.a */, FR_5465435FA4A3763830C566514B358969 /* StaticLibrary_Swift.a */, FR_8FCFCDD6A5A7292C72787E2FC0A36294 /* XPC Service.xpc */, ); From eb38020f9bd6f31d31d2085cdc4f2c9a6903312d Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 14 Oct 2018 21:49:51 +1100 Subject: [PATCH 18/20] update JSONUtilities --- Package.resolved | 4 ++-- Package.swift | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Package.resolved b/Package.resolved index 2336d7c9..bf25ace5 100644 --- a/Package.resolved +++ b/Package.resolved @@ -24,8 +24,8 @@ "repositoryURL": "https://github.com/yonaskolb/JSONUtilities.git", "state": { "branch": null, - "revision": "d9f957b1b2a078c93f96c723040d4cbffcb7d3f9", - "version": "4.0.2" + "revision": "db238f4858ac2ac3fff228b5b71ce90488a6a9b3", + "version": "4.1.0" } }, { diff --git a/Package.swift b/Package.swift index 0be7a994..9f44a5c4 100644 --- a/Package.swift +++ b/Package.swift @@ -13,7 +13,7 @@ let package = Package( .package(url: "https://github.com/kylef/PathKit.git", from: "0.9.0"), .package(url: "https://github.com/kylef/Commander.git", from: "0.8.0"), .package(url: "https://github.com/jpsim/Yams.git", from: "1.0.0"), - .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.0.0"), + .package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.1.0"), .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), .package(url: "https://github.com/tuist/xcodeproj.git", from: "6.2.0"), From 7c4623d6cfaef9fcf0daac4a3e575f5a1245e686 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 14 Oct 2018 21:50:05 +1100 Subject: [PATCH 19/20] compile fixture in Swift 4.1 --- .circleci/config.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index f1edcc7f..14b4cb35 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,5 +1,13 @@ version: 2 jobs: + macOS_swift_4.1: + macos: + xcode: "9.4.0" + steps: + - checkout + - run: + name: Build Test Project + command: ./build-fixtures.sh macOS_swift_4.2: macos: xcode: "10.0.0" @@ -24,4 +32,5 @@ workflows: version: 2 workflow: jobs: + - macOS_swift_4.1 - macOS_swift_4.2 From fd968b0e50d391bb16ca68dd20262b0ac9fabb0c Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sun, 14 Oct 2018 22:08:53 +1100 Subject: [PATCH 20/20] updated changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b6fb0e3..971f6feb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ #### Added - Added `weak` Weak linking setting for dependencies [411](https://github.com/yonaskolb/XcodeGen/pull/411) @alvarhansen +#### Changed +- Performance improvements for large projects [388](https://github.com/yonaskolb/XcodeGen/pull/388) @yonaskolb +- Upgraded to xcodeproj 6 [388](https://github.com/yonaskolb/XcodeGen/pull/388) @yonaskolb +- Upgraded to Swift 4.2 [388](https://github.com/yonaskolb/XcodeGen/pull/388) @yonaskolb ## 1.11.2