如何在 podfile 中为 Xcode 项目指定多个目标?

2023-11-23

我在 Xcode 4 项目中使用 CocoaPods,我的项目有三个目标(默认目标,一个用于构建精简版本,一个用于构建演示版本)。所有目标都使用相同的库,但 CocoaPods 仅将静态库和搜索路径添加到主要目标。我的 podfile 看起来像这样:

platform :ios, '5.0'

pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'

我让它工作的唯一方法是单独指定每个目标并再次列出所有 pod。

platform :ios, '5.0'

target :default do  
    pod 'TestFlightSDK', '>= 1.1'
    pod 'MBProgressHUD', '0.5'
    pod 'iRate', '>= 1.6.2'
    pod 'TimesSquare', '1.0.1'
    pod 'AFNetworking', '1.1.0'
    pod 'KKPasscodeLock', '0.1.5'
    pod 'iCarousel', '1.7.4'
end

target :lite do 
    link_with 'app-lite'

    pod 'TestFlightSDK', '>= 1.1'
    pod 'MBProgressHUD', '0.5'
    pod 'iRate', '>= 1.6.2'
    pod 'TimesSquare', '1.0.1'
    pod 'AFNetworking', '1.1.0'
    pod 'KKPasscodeLock', '0.1.5'
    pod 'iCarousel', '1.7.4'
end

target :demo do 
    link_with 'app-demo'

    pod 'TestFlightSDK', '>= 1.1'
    pod 'MBProgressHUD', '0.5'
    pod 'iRate', '>= 1.6.2'
    pod 'TimesSquare', '1.0.1'
    pod 'AFNetworking', '1.1.0'
    pod 'KKPasscodeLock', '0.1.5'
    pod 'iCarousel', '1.7.4'
end

有一个更好的方法吗?


Since CocoaPods 1.0改变了语法,而不是使用link_with,做类似的事情:

# Note; name needs to be all lower-case.
def shared_pods
    pod 'SSKeychain', '~> 0.1.4'
    pod 'INAppStoreWindow', :head
    pod 'AFNetworking', '1.1.0'
    pod 'Reachability', '~> 3.1.0'
    pod 'KSADNTwitterFormatter', '~> 0.1.0'
    pod 'MASShortcut', '~> 1.1'
    pod 'MagicalRecord', '2.1'
    pod 'MASPreferences', '~> 1.0'
end

target 'Sail' do
    shared_pods
end

target 'Sail-iOS' do
    shared_pods
end

旧答案CocoaPods 1.0 之前版本:

是的,有更好的方法!查看link_with你可以在哪里做link_with 'MyApp', 'MyOtherApp'指定多个目标。

我将其与单元测试一起使用,例如link_with 'App', 'App-Tests'(注意目标名称中的空格)。

Example:

platform :osx, '10.8'

link_with 'Sail', 'Sail-Tests'

pod 'SSKeychain', '~> 0.1.4'
pod 'INAppStoreWindow', :head
pod 'AFNetworking', '1.1.0'
pod 'Reachability', '~> 3.1.0'
pod 'KSADNTwitterFormatter', '~> 0.1.0'
pod 'MASShortcut', '~> 1.1'
pod 'MagicalRecord', '2.1'
pod 'MASPreferences', '~> 1.0'

使用方法抽象目标:

在下面的示例中,'ShowsiOS', 'ShowsTV' and 'ShowsTests'目标有自己独立的 pod,另外ShowsKit继承,因为它们都是虚拟目标的子代'Shows'.

# Note: There are no targets called "Shows" in any of this workspace's Xcode projects.
abstract_target 'Shows' do
  pod 'ShowsKit'

  target 'ShowsiOS' do
    pod 'ShowWebAuth'
  end

  target 'ShowsTV' do
    pod 'ShowTVAuth'
  end

  # Our tests target has its own copy
  # of our testing frameworks
  # (beside inheriting ShowsKit pod).

  target 'ShowsTests' do
    inherit! :search_paths
    pod 'Specta'
    pod 'Expecta'
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 podfile 中为 Xcode 项目指定多个目标? 的相关文章

  • 我们可以从 LinkPresentation 框架中的 LPLinkView 中提取图像吗?

    我想在我的应用程序中呈现丰富的链接 并将这些数据发送到我的服务器 我需要访问视图内的图像LPLinkView https developer apple com documentation linkpresentation lplinkvi
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 如何处理 Xcode“嵌入应用程序扩展”构建阶段

    通过添加新目标创建 共享扩展 时 Xcode 在应用程序目标设置的应用程序 构建阶段 选项卡中添加名为 嵌入应用程序扩展 的构建阶段 可以删除此阶段 但如果您尝试通过按左上角的 来添加它 您会发现可用选项中未列出 嵌入应用程序扩展 为什么会
  • iPhone,如何隐藏标签栏按钮?

    如何隐藏单个标签栏按钮 我已经搜索过 但什么也没找到 只找到了完整的栏 我已经取得了一些进展 但仍然遇到问题 此代码位于我的应用程序委托中 带有选项卡栏的出口 我在其中调用它viewDidLoad选项卡栏中显示的第一个视图的视图 void
  • iOS模型层通知Controller对象

    https developer apple com library archive documentation General Conceptual DevPedia CocoaCore MVC html https developer a
  • 未安装 Apple 的全球开发者关系 (WWDR) 中间证书

    我今天无法通过 Appcelerator Titanium 发布我的应用程序 AdHoc 我开始收到此错误 错误 未安装 Apple 的全球开发者关系 WWDR 中间证书 错误 这将阻止您为 iOS 设备构建应用程序或用于分发的软件包 我上
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • 解析迁移到 mLabs 和 Heroku 的错误

    我至少一年前将解析数据库迁移到 Mlabs 从那时起我就一直在开发该应用程序 解析仪表板表示我已成功迁移 Mlab 和 Parse 都收到了数据库的更新 然而 在过去一两周内 该应用程序不再经过登录页面 没有调整代码 这是服务器问题 以下是
  • 如何在 iOS 6 中强制 UIViewController 为纵向

    As the ShouldAutorotateToInterfaceOrientation在 iOS 6 中已弃用 我用它来强制特定视图仅肖像 在 iOS 6 中执行此操作的正确方法是什么 这仅适用于我的应用程序的一个区域 所有其他视图都可
  • AGVTool new-version 和 What-version 不对应

    当我做 agvtool new version all 99 它更新我的 Info plist 文件 但是 如果我这样做 agvtool what version or agvtool next version 我收到此错误 There d
  • CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

    我正在使用以下短程序来测试std clock include
  • 如何通过 Cmake 查找 iOS/mac OS X 框架

    Context 我通过此将 Boost C 库打包到一个框架 适用于 iOS 中script https github com davidandreoletti boostoniphone generic 该脚本产生boost框架 当链接到
  • iOS 9 + Xcode 7 的 Segue 上的应用程序导致整个设备崩溃

    更新 我已经在这一年中使用了我的一个 DTS 目前与 Apple 支持工程师合作 根据他的建议 我还为此创建了一个错误报告 随着时间的推移 我将更新此线程 希望能产生最终的解决方案 不知何故 我找到了一种方法来创建一个可以真正重新启动模拟器
  • 以编程方式在网站上输入字符串

    我想知道如何或是否可以通过 iPhone 应用程序代码在网站的文本字段中输入内容 所以我想去一个网站 中间有一个文本字段 我想在那里输入一个特定的字符串 我怎样才能在 Swift 中做到这一点 或 Objective C 然后我会弄清楚它在
  • Xcode如何将目标打包为.framework(而不是.a库)

    我有一个通用框架项目 其中包含一个库作为其主要目标 在产品下是带有 lib 前缀和 a 扩展名的库 请参阅下面的屏幕截图 我正在使用一个第三方项目 其中包含一个框架作为其目标 并且在 产品 下是具有 framework 扩展名的框架 请参阅
  • 如何在没有 Apple 开发者帐户的设备上运行应用程序

    我找到了几个网站 其中提供了有关如何完成此操作的信息 但似乎没有一个网站适用于 Xcode 10 1 或 iOS 12 1 我尝试过的那些似乎都不起作用 我试过这个 创建一个空的 swift 项目 单视图应用程序 将签名团队设置为我的个人团
  • 为什么我的唯一设备 ID 发生了变化?

    我已经使用以下方法大约一个月了 没有任何问题 即使卸载应用程序后 设备 ID 仍保持不变 最近我注意到我的设备 ID 发生了变化 我最近在 Xcode6 上做了很多应用程序的构建 这可能是一个原因吗 我希望我确切地知道它什么时候发生变化 这
  • 在 macOS 中获取用户首选的温度设置

    我正在尝试读取温度单位 摄氏度 华氏度 的用户设置系统首选项 我试图使用 NSLocale 获取此数据 但我找不到任何温度设置的证据 甚至可以读取这些数据吗 Thanks 官方 API 记录在首选项 实用程序 https developer
  • Google Analytics Pod 安装了太多依赖项

    我刚刚添加了 Google Analytics Pod 如中所述他们的 iOS 开发者指南 https developers google com analytics devguides collection ios v3 with pod
  • 使用 Core Audio 忽略 __cxa_throw 是否安全?

    一个相似的question https stackoverflow com questions 12861748 how do i know when safe to ignore cxa throw on an all exception

随机推荐

  • Forecast.io API 与 jQuery 的结合使用

    我在使用 API 特别是 Forecast io 天气 API 创建完整的应用程序时遇到一些问题 为简单起见 我将 JS 直接放在 HTML 页面中 对于这个基本版本 我很高兴能有这样的展示 假设我想要当前温度 当前 gt 温度 另外 我不
  • 在 Django 中引用来自 Javascript 的静态图像

    所以我正在开发一个 Django 项目 并试图找出如何让 Javascript 能够从我的静态目录渲染图像 我修改了 settings py 以从 myproject static 加载静态文件 图像 js 等 并从 myproject t
  • 绑定不匹配错误和java泛型方法

    我收到以下错误 Bound mismatch The generic method constructPage WebDriver int Class
  • RStudio 项目打开时自动运行 R 代码

    我编写了一个 R 函数来更新包的版本号另一个问题 我经常使用 GitHub 和 RStudio 如果每次我打开某个项目时都会自动运行此函数 或者更好的是进行 git commit push 但我认为这更难做到 但我不知道该怎么做或者这是否可
  • 401 未找到 JWT 令牌

    我提供了两个版本security yaml文件 第二个版本根据API平台文档 API平台发送到创建自定义用户提供者 对于第二个选项security yaml根据 API 平台文档推荐 我需要创建两个额外的文件 我没有将它们附加到主题中 但如
  • 如何在 Joomla 2.5 中获取用户组名称

    我正在编写一个 Joomla 2 5 组件 我一直在 Joomla 1 7 中开发该组件 我一直在使用这样的代码 user JFactory getUser groups user gt get groups groups 数组将包含一个以
  • $@ 和“$@”有什么区别吗? [复制]

    这个问题在这里已经有答案了 有什么区别吗 and 我知道非特殊字符可能存在差异 但是 用输入参数签名 Yes cat a sh echo echo 让我们运行一下 a sh 2 3 4 5 2 3 4 5 output for 2 3 4
  • 如何使用透明背景的画布获取 CSS 样式元素的 png 图像?

    我想使用 CSS 为网页上的元素设置样式 然后将该元素用作静态 png 是否可以在例如上绘制html节点 画布并将此类透明图像保存到文件中 我想找到一种方法 使用 CSS 获取现有的 HTML 并将其渲染为 PNG 文件并保持透明度 将 H
  • clang++ -stdlib=libc++ 导致未定义的引用

    为什么在将 clang 与 libc 一起使用时出现以下链接器错误 clang stdlib libc po cxx lpoppler tmp po QqlXGY o In function main po cxx text 0x33 un
  • 仅对 UITableView 中可用的 CellForRow 显示分隔符

    我正在将 UITableView 与自定义单元格一起使用 它工作正常 但问题是当 UITableView 中只有一两个单元格时 它还为空电池提供了分隔符 是否可以仅为使用自定义单元格加载的单元格显示分隔符 您需要添加一个空页脚视图来隐藏表中
  • 如何从多个 template_folder 加载 Flask 蓝图?

    我学习了如何创建 Flask 蓝图 并且可以为使用 Jinja2 模板的非 Flask 产品创建蓝图并在 Flask 项目中使用它们 我做了这样的事情 blueprint code from flask import Blueprint f
  • 如何在没有 jQuery 的情况下切换元素可见性?

    我正在为 eBay 编写一个拍卖模板 希望 eBay 能够允许 显然他们没有 因为 jquery 有 string replace 等东西 该代码非常基础 document ready function function changeIma
  • Pandas Dataframe选择多个不连续的列/切片

    我有超过 100 列的数据框 我正在尝试选择第 0 32 列和 83 列 看来 1 slice 与下面的代码配合得很好 df new df df columns 0 32 但它不适用于下面的 2 片代码 我该如何解决这个问题 df new
  • 更改 ComboBox 项目的格式

    是否可以在 C 中格式化 ComboBox 项 例如 如何将某个项目设为粗体 更改其文本的颜色等 尽管这篇文章很老 我发现它作为搜索的起点很有用 但最终使用所示的方法得到了更好的结果here由 保罗 这是我用来有条件地使组合框中的项目显示为
  • 如何为 httpclient getasync 方法创建模拟?

    我正在使用 Moq 为单元测试创 建模拟 但是当我必须为 httpclient 的 getasync 方法创建模拟时 我陷入了困境 以前我使用 SendAsync 方法 为此我可以使用以下代码 var mockResponse new Ht
  • 从word文档中提取标题文本

    我正在尝试提取text来自 MS Word 文档 docx 文件 中的 任何级别 标题 目前我正在尝试解决使用python docx 但不幸的是 读完后我仍然无法弄清楚它是否可行 也许我错了 我尝试在网上寻找解决方案 但没有发现任何适合我的
  • 我可以替换或修改 jQuery UI 小部件上的函数吗?如何? (猴子补丁)

    如果我想通过替换其中一个函数来调整 jQuery UI 对象的某些功能 我该怎么做呢 示例 假设我想修改 jQuery 自动完成小部件呈现建议的方式 自动完成对象上有一个方法 如下所示 renderItem function ul item
  • 如何使用 scikit-learn 评估预测的置信度得分

    我写下了一个简单的代码 它采用一个参数 query seq 进一步的方法计算描述符 最后可以使用 LogisticRegression 或该函数提供的任何其他算法 算法作为 0 给定情况为负 进行预测 或 1 给定情况为正 def main
  • 从 NSArray 中检索 NSDictionary,其中字典键的值为 X

    我有一个NSArray with NSDictionaries 数组之一中的字典键之一包含一个值 我想找回NSDictionary具有该值 我的阵列 Array DisplayName level InternalName Number 2
  • 如何在 podfile 中为 Xcode 项目指定多个目标?

    我在 Xcode 4 项目中使用 CocoaPods 我的项目有三个目标 默认目标 一个用于构建精简版本 一个用于构建演示版本 所有目标都使用相同的库 但 CocoaPods 仅将静态库和搜索路径添加到主要目标 我的 podfile 看起来