Cocoapods pod 创建目标并在使用时更改 Xcode 中的目标

Posted

技术标签:

【中文标题】Cocoapods pod 创建目标并在使用时更改 Xcode 中的目标【英文标题】:Cocoapods pod creates target and when used changes target in Xcode 【发布时间】:2016-03-08 21:56:01 【问题描述】:

我用 Cocoapods 创建了一个私有 pod。 pod 有依赖关系。

当我在我的 Xcode 项目中使用这个 pod 时,运行 pod install 后,Xcode 的方案现在默认为“MyPodName (Pods Project)”而不是我的应用程序的目标。这有点烦人,因为每次运行pod install 时我都必须重新更改方案,因为不同的分支在Podfile.lock 中可能存在差异

我使用pod lib create 生成的 Cocoapods 骨架创建了我的 Pod。

这是我的 podspec:

Pod::Spec.new do |s|
  s.name             = "MyPodLib"
  s.version          = "2.0.0"
  s.summary          = "MyPodLib is just an example name for this question."

  s.description      = <<-DESC
                       DESC

  s.homepage         = "https://github.com/username/MyPodLib"
  s.license          = 'License'
  s.author           =  "username" => "email@address.com" 
  s.source           =  :git => "https://github.com/username/MyPodLib.git", :tag => s.version.to_s 

  s.platform     = :ios, '8.4'
  s.requires_arc = true

  s.source_files = 'Pod/Classes/**/*'
  s.resource_bundles = 
    'MyPodLib' => ['Pod/Assets/*.png']
  

  s.dependency 'DependencyPod', '2.0.0'
end

我认为这也可能只发生在我的电脑上。同事说不会发生在他身上。

【问题讨论】:

我和我的同事也有同样的问题。我目前的调查途径是让pod 一般停止生成方案,因为我认为它们没有必要。如果必须创建方案,我想取消选中“显示”位(在管理方案中可见) 【参考方案1】:

Cocoapods 开发人员在 this pull request 添加开发 pod 方案共享时引入了此行为。您的同事可能一直在使用早期版本的 Cocoapods,因为该 PR 仅在 2015 年 5 月合并。

pod 生成的方案被设置为共享和可见,并且没有任何选项可以更改此行为。我们不是唯一遇到此问题的人(1、2、3)。

一位 Cocoapods 开发人员随后发布了一个 plugin,它应该删除这些方案(字面意思是 rm-ing 创建后的共享方案)。我说应该这样做,因为我还没有弄清楚如何根据提供的说明使这个东西工作。

编辑:同一个开发者现在confirms 插件可能无法按预期工作。

【讨论】:

同事使用同一个版本

以上是关于Cocoapods pod 创建目标并在使用时更改 Xcode 中的目标的主要内容,如果未能解决你的问题,请参考以下文章

创建通用 Cocoapods 框架

删除所有测试 pod 时,Cocoapods 缺少 pod 包含文件

Cocoapods:确定 pod 版本

为 CocoaPods 的 pod 设置部署目标

CocoaPods 找不到 pod“UMCore”的兼容版本

每个 Cocoapods 构建目标的含义