项目转换为Swift 4后,'pod spec lint'失败

时间:2017-09-24 14:30:40

标签: swift cocoapods swift4 uifontdescriptor

将我的cocoa框架项目转换为Swift 4后,类 UIFontDescriptorFamilyAttribute 现在是 UIFontDescriptor.AttributeName.family ,所以我改变了我的代码:

// Swift 3    
UIFontDescriptor(fontAttributes: [UIFontDescriptorFamilyAttribute: fontFamiliy])

// Swift 4
UIFontDescriptor(fontAttributes: [UIFontDescriptor.AttributeName.family: fontFamiliy])

然而,当我尝试 - pod spec lint 时 - 我收到下一个错误:

- ERROR | [iOS] xcodebuild:  SerializableLabel.swift:108:68: error: type 'UIFontDescriptor' has no member 'AttributeName'

cocoapods在某种程度上还不知道Swift 4吗?我是否必须在配置中更新其他内容?

我的配置:

.podspec

s.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' }

的CocoaPods

$ pod --version
1.3.1

2 个答案:

答案 0 :(得分:6)

尝试创建一个名为.swift-version的文件,然后在里面放入4.0

Cocoapods更新> = 1.5

您现在在podspec中使用s.swift_version = '4.1'

答案 1 :(得分:1)

为不同版本的Swift提供lint:

使用CocoaPods 1.3.1或更新

# example for Swift 4.0
echo "4.0" > .swift-version
pod lib lint

使用CocoaPods 1.4.0或更新版

# example for Swift 4.0
pod lib lint --swift-version=4.0