不能 Lint/Push Swift Cocoapods podspec
Cannot Lint/Push a Swift Cocoapods podspec
我试图创建我的第一个 podspec 结合 ObjC 和 Swift 代码,但我很快偶然发现了一个我在上传时无法解决的顽固错误
Copying MyLibrary from /Users/lukasschwoebel/Library/Caches/CocoaPods/Pods/External/MyLibrary/540307feb534d63ad9015f3f6452b3ad-be661
to
../../../../../../private/var/folders/2p/_pc_vts51b3_pfydgm7_2n200000gn/T/CocoaPods/Lint/Pods/MyLibrary
- Running pre install hooks
-> MyLibrary (0.1.0)
- ERROR | [iOS] Encountered an unknown error (Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add use_frameworks!
to your Podfile or target to opt into using it. The Swift Pod being used is: MyLibrary) during validation.
这是我使用的命令:
pod repo push test-podspecs MyLibrary/MyLibrary.podspec --use-libraries --allow-warnings --verbose
如您所见,这是来自 CocoaPods 的最小未修改示例项目,如此处所述:https://guides.cocoapods.org/making/using-pod-lib-create.html
由于我什至无法制作此示例 运行,我怀疑我的 cocoapods 配置有问题。
我确保 pod 中没有要上传的单个 Objective C 行(尽管最后,我想要一个包含 ObjC 和 Swift 代码的 podspec,但此时我只想有一个工作的 podspec Swift).
我什至不能用纯 Swift 上传这个简单的 pod。我首先尝试使用 CocoaPods v0.39.0,然后降级到 0.38.2,之后是 0.38.0,甚至是 0.36.0。即使完全卸载 CocoaPods。
看来我需要在 CocoaPods 中配置一些东西才能上传 Swift podspec?我得到的错误显然是在 Podfile 需要 use_frameworks 的 Pod 的构建阶段!被包括。那么在podspec验证时如何让CocoaPods在编译pod时使用它呢?
此外,我安装了 Xcode 7.0.1 和 OSX 10.10.5,它是 Swift 2.0 代码。
提前致谢!
这是完整的 podspec,改编自最初创建的 MyLibrary.podspec(是的,这是一个本地 Podspec-Repo,但不会 cause/change 错误)
Pod::Spec.new do |s|
s.name = "MyLibrary"
s.version = "0.1.0"
s.summary = "A short description of MyLibrary."
s.description = 'Sample Description'
s.license = 'MIT'
s.author = { "Luke A." => "ls@mymail.to" }
s.source = { :git => "file:///Users/.../test/MyLibrary/", :tag => s.version.to_s }
s.platform = :ios, '8.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'MyLibrary' => ['Pod/Assets/*.png']
}
s.frameworks = 'UIKit'
end
我刚刚找到了答案,这似乎有点明显。
upload/push 吊舱的命令在 bash 脚本中,所以我不必总是输入所有标志,只需在 filename/path 上输入 pods佩奇。所以在默认的 bash-script 中,我有一个标志 --use-libraries
,这是我的 pods.
之一所必需的
当我尝试一些东西并在 pod repo push ..
命令中出现错字时,我偶然发现了手册页:
--use-libraries
Linter uses static libraries to install the spec
对于静态库,此标志似乎与 Swift podspecs 不兼容。删除该标志 lints 并成功推送我的 podspec。
我试图创建我的第一个 podspec 结合 ObjC 和 Swift 代码,但我很快偶然发现了一个我在上传时无法解决的顽固错误
Copying MyLibrary from
/Users/lukasschwoebel/Library/Caches/CocoaPods/Pods/External/MyLibrary/540307feb534d63ad9015f3f6452b3ad-be661
to../../../../../../private/var/folders/2p/_pc_vts51b3_pfydgm7_2n200000gn/T/CocoaPods/Lint/Pods/MyLibrary
- Running pre install hooks -> MyLibrary (0.1.0) - ERROR | [iOS] Encountered an unknown error (Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Adduse_frameworks!
to your Podfile or target to opt into using it. The Swift Pod being used is: MyLibrary) during validation.
这是我使用的命令:
pod repo push test-podspecs MyLibrary/MyLibrary.podspec --use-libraries --allow-warnings --verbose
如您所见,这是来自 CocoaPods 的最小未修改示例项目,如此处所述:https://guides.cocoapods.org/making/using-pod-lib-create.html 由于我什至无法制作此示例 运行,我怀疑我的 cocoapods 配置有问题。
我确保 pod 中没有要上传的单个 Objective C 行(尽管最后,我想要一个包含 ObjC 和 Swift 代码的 podspec,但此时我只想有一个工作的 podspec Swift).
我什至不能用纯 Swift 上传这个简单的 pod。我首先尝试使用 CocoaPods v0.39.0,然后降级到 0.38.2,之后是 0.38.0,甚至是 0.36.0。即使完全卸载 CocoaPods。
看来我需要在 CocoaPods 中配置一些东西才能上传 Swift podspec?我得到的错误显然是在 Podfile 需要 use_frameworks 的 Pod 的构建阶段!被包括。那么在podspec验证时如何让CocoaPods在编译pod时使用它呢?
此外,我安装了 Xcode 7.0.1 和 OSX 10.10.5,它是 Swift 2.0 代码。
提前致谢!
这是完整的 podspec,改编自最初创建的 MyLibrary.podspec(是的,这是一个本地 Podspec-Repo,但不会 cause/change 错误)
Pod::Spec.new do |s|
s.name = "MyLibrary"
s.version = "0.1.0"
s.summary = "A short description of MyLibrary."
s.description = 'Sample Description'
s.license = 'MIT'
s.author = { "Luke A." => "ls@mymail.to" }
s.source = { :git => "file:///Users/.../test/MyLibrary/", :tag => s.version.to_s }
s.platform = :ios, '8.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'MyLibrary' => ['Pod/Assets/*.png']
}
s.frameworks = 'UIKit'
end
我刚刚找到了答案,这似乎有点明显。
upload/push 吊舱的命令在 bash 脚本中,所以我不必总是输入所有标志,只需在 filename/path 上输入 pods佩奇。所以在默认的 bash-script 中,我有一个标志 --use-libraries
,这是我的 pods.
当我尝试一些东西并在 pod repo push ..
命令中出现错字时,我偶然发现了手册页:
--use-libraries Linter uses static libraries to install the spec
对于静态库,此标志似乎与 Swift podspecs 不兼容。删除该标志 lints 并成功推送我的 podspec。