diff --git a/Makefile b/Makefile index 1aab87e7..3fc7958a 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ install: build mkdir -p $(SHARE_PATH) cp -R $(CURRENT_PATH)/SettingPresets $(SHARE_PATH)/SettingPresets +.PHONY: build build: swift build --disable-sandbox -c release -Xswiftc -static-stdlib diff --git a/README.md b/README.md index 9ac6b6dc..9e043f90 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ $ xcodegen This will look for a project spec in the current directory called `project.yml` -Use `xcodegen help` to see the list of options: +Use `xcodegen --help` to see the list of options: - **--spec**: An optional path to a `.yml` or `.json` project spec - **--project**: An optional path to a directory where the project will be generated. By default this is the current directory diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 99dd66e9..c7c7495f 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -229,7 +229,8 @@ public class PBXProjGenerator { var dependencies: [String] = [] var targetFrameworkBuildFiles: [String] = [] - var copyFiles: [String] = [] + var copyFrameworksReferences: [String] = [] + var copyResourcesReferences: [String] = [] var copyWatchReferences: [String] = [] var extensions: [String] = [] @@ -265,10 +266,12 @@ public class PBXProjGenerator { if dependencyTarget.type.isExtension { // embed app extension extensions.append(embedFile.reference) + } else if dependencyTarget.type.isFramework { + copyFrameworksReferences.append(embedFile.reference) } else if dependencyTarget.type.isApp && dependencyTarget.platform == .watchOS { copyWatchReferences.append(embedFile.reference) } else { - copyFiles.append(embedFile.reference) + copyResourcesReferences.append(embedFile.reference) } } @@ -287,7 +290,7 @@ public class PBXProjGenerator { if embed { let embedFile = PBXBuildFile(reference: generateUUID(PBXBuildFile.self, fileReference + target.name), fileRef: fileReference, settings: dependency.buildSettings) addObject(embedFile) - copyFiles.append(embedFile.reference) + copyFrameworksReferences.append(embedFile.reference) } case .carthage: if carthageFrameworksByPlatform[target.platform.carthageDirectoryName] == nil { @@ -308,7 +311,7 @@ public class PBXProjGenerator { if target.platform == .macOS && target.type.isApp { let embedFile = PBXBuildFile(reference: generateUUID(PBXBuildFile.self, fileReference + target.name), fileRef: fileReference, settings: dependency.buildSettings) addObject(embedFile) - copyFiles.append(embedFile.reference) + copyFrameworksReferences.append(embedFile.reference) } } } @@ -352,7 +355,7 @@ public class PBXProjGenerator { addObject(sourcesBuildPhase) buildPhases.append(sourcesBuildPhase.reference) - let resourcesBuildPhase = PBXResourcesBuildPhase(reference: generateUUID(PBXResourcesBuildPhase.self, target.name), files: getBuildFilesForPhase(.resources)) + let resourcesBuildPhase = PBXResourcesBuildPhase(reference: generateUUID(PBXResourcesBuildPhase.self, target.name), files: getBuildFilesForPhase(.resources) + copyResourcesReferences) addObject(resourcesBuildPhase) buildPhases.append(resourcesBuildPhase.reference) @@ -383,13 +386,13 @@ public class PBXProjGenerator { buildPhases.append(copyFilesPhase.reference) } - if !copyFiles.isEmpty { + if !copyFrameworksReferences.isEmpty { let copyFilesPhase = PBXCopyFilesBuildPhase( reference: generateUUID(PBXCopyFilesBuildPhase.self, "embed frameworks" + target.name), dstPath: "", dstSubfolderSpec: .frameworks, - files: copyFiles) + files: copyFrameworksReferences) addObject(copyFilesPhase) buildPhases.append(copyFilesPhase.reference) @@ -469,7 +472,7 @@ public class PBXProjGenerator { switch fileExtension { case "swift", "m", "cpp": return .sources case "h", "hh", "hpp", "ipp", "tpp", "hxx", "def": return .headers - case "xcconfig": return nil + case "xcconfig", "entitlements", "gpx", "lproj", "apns": return nil default: return .resources } }