Swift 如何从Podspec自动安装第三方框架

Swift 如何从Podspec自动安装第三方框架,swift,xcode,cocoapods,Swift,Xcode,Cocoapods,我是创建自己框架的初学者。我能够按照指示创建私人播客。我已经创建了两个repo,一个用于Podspecs repo,另一个用于我试图制作的poda。我已经正确地将PodA推送到Podspecs repo、正确的标记和正确的Podspecs文件 PodA依赖于公共第三方框架。 因此,在我的播客规格中,我添加了 s、 依赖项“Alamofire”,“~>5.0.0-rc.3” 在mainapppodfile中 source '<Private Pod URL>' target 'MyA

我是创建自己框架的初学者。我能够按照指示创建私人播客。我已经创建了两个repo,一个用于Podspecs repo,另一个用于我试图制作的poda。我已经正确地将PodA推送到Podspecs repo、正确的标记和正确的Podspecs文件

PodA依赖于公共第三方框架。 因此,在我的播客规格中,我添加了

s、 依赖项“Alamofire”,“~>5.0.0-rc.3”

在mainapppodfile中

source '<Private Pod URL>'

target 'MyAppName' do   

    use_frameworks!    
    pod 'PodA'

end
提前谢谢

编辑: PodA是我试图创建的Pod的虚拟名称

编辑:添加Podspecs文件。更改摘要、说明和主页

Pod::Spec.new do |s|
  s.name             = 'TestPrivatePod1'
  s.version          = '0.2.2'
  s.summary          = 'Dummy summary.'

  s.description      = <<-DESC
            "Dummy Description."
                       DESC

  s.homepage         = 'http://www.google.com/'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'vicWT' => 'vic@worktable.sg' }
  s.source           = { :git => 'https://github.com/vicWT/TestPrivatePod1.git', :tag => '0.2.2' }

  s.ios.deployment_target = '12.0'


  s.source_files = 'TestPrivatePod1/Classes/**/*'
  s.swift_version = '5'
  s.dependency 'Alamofire', '~> 5.0.0-rc.3'


end
编辑: 移除源

编辑:修复从s.dependency'Alamofire',5.0.0-rc.3到s.dependency'Alamofire','~>5.0.0-rc.3的语法错误

编辑:添加TestPrivatePod1图像

请尝试以下方法:

pod repo remove master
pod setup
pod update
还可以在podfile中更改依赖关系,如下所示

s.dependency 'Alamofire', '~> 5.0.0-rc.3'
并在mainApp pod文件中指定platfor版本:

 platform :ios, '10.3'
如果上述操作不起作用,请运行以下命令重新安装cocoapod:

rm -rf ~/.cocoapods/repos/master

sudo gem install cocoapods

请从项目TestPrivatePod1的podfile中注释pod'Alamofire',“~>4.9”。

您能尝试更改用于指定依赖项版本的语法吗

例如:

s.dependency 'Alamofire', '~> 5.0.0-rc.3'
请注意在指定版本号之前使用的额外符号?Cocoapods建议使用乐观版本指示器,即:~>


如果它仍然不起作用,一定要告诉我…

你似乎误解了这一切是如何起作用的。Cocoapods从spec repo中获取pod的定义,这是pod文件中的源代码,而不是单个pod的存储库。默认的spec repo是https://github.com/CocoaPods/Specs.git,如果您希望能够使用任何公共播客(如Alamofire),则需要将其添加到播客文件中

将您的私有repo添加为URL毫无意义,因为它不是一个包含多个规范的存储库,它只是一个pod的repo

我认为这样做可能会奏效:

source 'https://github.com/CocoaPods/Specs.git'

target 'MyAppName' do   

    use_frameworks!    
    pod 'PodA', :git => '<Private Pod URL>'

end

如果没有,那么您必须创建自己的规范存储库,其中包含pod的定义。我不想说了,

什么是PodA?这是我要制作的Pod的名称。对不起,我应该说得很详细。将编辑文章。这只是一个虚拟名称不,你能分享这个吊舱的名称吗,我知道这是一个虚拟吊舱的名称,但我需要知道什么是吊舱,为什么阿拉莫菲依赖它,否则它将无法工作。请参阅编辑后的文章。它包括私人吊舱的真实名称。TestPrivatePod1I我已经公开了回购协议,所以如果你想去看那个回购协议,但我会在问题解决后把它放回private可以共享你的PodA podspec文件吗?或者我已经编辑了我的答案,请检查。编辑后的帖子要包含Podspecs文件,请尝试使用另一个版本“Alamofire”、“~>4.9”,并检查相同的错误,[!]找不到“TestPrivatePod1”所依赖的“Alamofire~>4.9”规范。您有:*过期的源repo,可以使用“pod repo update”或“pod install-repo update”进行更新。*键入的名称或版本错误。*未将承载Podspec的源repo添加到您的Podfile中。谢谢。。我错过了。。我已将其更改为s.dependency'Alamofire',“~>5.0.0-rc.3”。但错误仍然显示[!]无法找到由“TestPrivatePod1”所依赖的“Alamofire~>5.0.0-rc.3”的规范:*过期的源repo,您可以使用“pod repo update”或“pod install-repo update”进行更新。*键入的名称或版本错误。*未将承载Podspec的源repo添加到您的Podfile中。好的,这个错误是正常的。您可以尝试在终端上执行pod repo更新吗?在输入pod repo更新然后pod安装后,同样的错误出现pod repo更新和pod安装成功?我是说,你在终端上看到任何错误信息了吗?你是说类似这样的东西吗?来源'https://github.com/vicWT/PodSpecsRepoPrivate.git不,添加默认的pod规范回购协议以及您自己的私有协议。你可以有多个回购协议。对不起,我不明白,默认pod规范是什么意思?那私人的呢?我的理解是“private”是TestPrivatePod1,默认的pod规范是TestPrivatePod1.podspec,对吗?当我添加源代码时,请参见上面的图片https://github.com/CocoaPods/Specs.git ,和pod'TestPrivatePod1',:git=>'https://github.com/vicWT/PodSpecsRepoPrivate.git,然后安装吊舱,看起来它只是在加载,我不得不终止终端。。
source 'https://github.com/CocoaPods/Specs.git'

target 'MyAppName' do   

    use_frameworks!    
    pod 'PodA', :git => '<Private Pod URL>'

end