当尝试在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)我不知道这里到底出了什么问题。在本地,构建和归档是成功的。我在stackoverflow上尝试了一些类似问题的解决方案,但他们指出了一个不同的问题。或者我不知道哪个库可能没有正确链接。
更新:
函数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()!
}
}发布于 2019-08-15 17:06:19
解决方案:问题是代码的这一部分:
[self.size.width, self.size.height].max()!我将其替换为:
let referenceLength = self.size.width >= self.size.height ? self.size.width : self.size.height;现在它起作用了。
https://stackoverflow.com/questions/57186142
复制相似问题