不能掉毛/推动Swift Cocoapods podspec

Luk*_*bel 4 objective-c ios cocoapods swift

我试图创建结合ObjC和Swift代码的第一个podspec,但是我很快偶然发现了一个顽固的错误,我在上传时无法解决

将MyLibrary从复制/Users/lukasschwoebel/Library/Caches/CocoaPods/Pods/External/MyLibrary/540307feb534d63ad9015f3f6452b3ad-be661../../../../../../private/var/folders/2p/_pc_vts51b3_pfydgm7_2n200000gn/T/CocoaPods/Lint/Pods/MyLibrary -运行预安装挂钩-> MyLibrary(0.1.0)-错误|错误 [iOS]在验证期间遇到未知错误(用Swift编写的use_frameworks!Pod 只能集成为框架;此功能仍处于beta中。添加到您的Podfile或目标中以选择使用它。正在使用的Swift Pod是:MyLibrary)。

这是我使用的命令:

pod repo push test-podspecs MyLibrary/MyLibrary.podspec --use-libraries --allow-warnings --verbose
Run Code Online (Sandbox Code Playgroud)

如您所见,这是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验证期间如何在编译Pod时使CocoaPods使用它呢?

另外,我安装了Xcode 7.0.1和OSX 10.10.5,它是Swift 2.0代码。

先感谢您!

这是完整的podspec,它是从原始创建的MyLibrary.podspec改编而成的(是的,它是本地的Podspec-Repo,但不会导致/更改错误)

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
Run Code Online (Sandbox Code Playgroud)

Luk*_*bel 5

我刚刚找到了答案,这似乎有点明显。

上传/推送Pod的命令是在bash脚本中,因此我不必总是键入所有标志,而只需在podspec的文件名/路径上输入。因此,在默认的bash脚本中,我具有--use-libraries其中一个pod所需的标志。

当我尝试某些操作并在pod repo push ..命令中输入错误时,我偶然发现了手册页:

--use-libraries Linter使用静态库来安装规范

对于静态库,此标志似乎与Swift podspec不兼容。删除该标志棉绒并成功推动我的podspec。