diff --git a/Jenkinsfile b/Jenkinsfile index 34c30ee..d43fb68 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ library "openiumpipeline" -env.DEVELOPER_DIR="/Applications/Xcode-15.3.0.app/Contents/Developer" +env.DEVELOPER_DIR="/Applications/Xcode-15.4.0.app/Contents/Developer" //env.SIMULATOR_DEVICE_TYPES="iPad--7th-generation-" env.IS_PACKAGE_SWIFT=1 env.TARGETS_MACOS=1 diff --git a/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift b/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift index f6d58ed..82c512c 100644 --- a/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift +++ b/Sources/ResgenSwift/Images/Generator/XcassetsGenerator.swift @@ -68,8 +68,15 @@ class XcassetsGenerator { let output3x = "\(imagesetPath)/\(parsedImage.name)@3x.\(OutputImageExtension.png.rawValue)" // Check if we need to convert image - guard self.shouldGenerate(inputImagePath: imageData.path, xcassetImagePath: output1x) else { - //print("\(parsedImage.name) -> Not regenerating") + + var needToGenerateForSvg = false + + if imageData.ext == "svg" && !parsedImage.imageExtensions.contains(.png) { + needToGenerateForSvg = true + } + + guard self.shouldGenerate(inputImagePath: imageData.path, xcassetImagePath: output1x, needToGenerateForSvg: needToGenerateForSvg) else { + print("\(parsedImage.name) -> Not regenerating") return } @@ -83,6 +90,15 @@ class XcassetsGenerator { print(error.description) Images.exit(withError: error) } + } else { + do { + let documentsDirectory = try fileManager.contentsOfDirectory(atPath: imagesetPath) + for filePath in documentsDirectory { + try fileManager.removeItem(atPath: "\(imagesetPath)/\(filePath)") + } + } catch { + print("Error deleting previous assets") + } } let convertArguments = parsedImage.convertArguments @@ -181,8 +197,8 @@ class XcassetsGenerator { // MARK: - Helpers: bypass generation - private func shouldGenerate(inputImagePath: String, xcassetImagePath: String) -> Bool { - if forceGeneration { + private func shouldGenerate(inputImagePath: String, xcassetImagePath: String, needToGenerateForSvg: Bool) -> Bool { + if forceGeneration || needToGenerateForSvg { return true }