由 UIImage.resize (Xcode 11) 引起的架构 arm64 的未定义符号

Undefined symbols for architecture arm64 caused by UIImage.resize (Xcode 11)

尝试在 Bitrise 中构建应用程序(使用 fastlane)时出现以下错误:

Undefined symbols for architecture arm64
> Symbol: (extension in Swift):Swift.Sequence< where A.Element: Swift.Comparable>.max() -> A.Element?
> Referenced from: (extension in myapp):__C.UIImage.resize(maxDimension: Swift.Double) -> __C.UIImage in UIImage+Resize.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我不知道这里到底出了什么问题。在本地构建和归档是成功的。我在 Whosebug 上针对类似问题尝试了一些解决方案,但它们指出了不同的问题。或者我不知道哪个库链接不正确。

更新:

resize函数是我自己添加的对UIImage的扩展:

import Foundation

extension UIImage {
    func resize(maxDimension: Double) -> UIImage {
        let maxCG = CGFloat(maxDimension)
        if [self.size.width, self.size.height].max()! < maxCG {
            return self
        }
        let factor = self.size.width > self.size.height ? maxCG / self.size.width :  maxCG / self.size.height
        let canvasSize = CGSize(width: self.size.width * factor, height: self.size.height * factor)
        UIGraphicsBeginImageContextWithOptions(canvasSize, false, self.scale)
        defer { UIGraphicsEndImageContext() }
        self.draw(in: CGRect(origin: .zero, size: canvasSize))
        return UIGraphicsGetImageFromCurrentImageContext()!
    }
}

解决:问题出在这部分代码:

[self.size.width, self.size.height].max()!

我将其替换为:

let referenceLength = self.size.width >= self.size.height ? self.size.width : self.size.height;

现在可以了。