将静态库添加到 podspec

2024-04-10

我的 podspec 需要静态库 (OpenSSL)。为了方便起见,我将库与 Pod 一起运送。

静态库包含:

  • 二进制文件:MyPod/openssl/bin/libcrypto.a and MyPod/openssl/bin/libsll.a
  • 标题:MyPod/openssl/include/openssl/*.h
  • 它自己的许可证(除了我的项目的许可证之外):MyPod/openssl/include/LICENSE

在我的 podspec 中表达这一点的正确方法是什么?我已经看到了使用以下属性组合的各种示例,并且我目前正在尝试不同的组合:

source_files
public_header_files
private_header_files
preserve_paths
libraries
xcconfig
vendored_libraries

或者更好的是,我可以在子规范中定义这个静态库吗?


我设法将静态库添加为subspec。我更喜欢这种方法,因为它默认使用我的 Pod 附带的构建,并且还允许用户根据需要提供自己的构建。

如前所述,静态库是 OpenSSL,但以下内容适用于任何静态库。我正在使用以下目录结构:

libraries/openssl-1.0.1e/include/openssl/*.h
libraries/openssl-1.0.1e/LICENSE
libraries/openssl-1.0.1e/lib/*.a

由此产生的子规格将是:

s.subspec 'OpenSSL' do |openssl|
    openssl.preserve_paths = 'libraries/openssl-1.0.1e/include/openssl/*.h', 'libraries/openssl-1.0.1e/include/LICENSE'
    openssl.vendored_libraries = 'libraries/openssl-1.0.1e/lib/libcrypto.a', 'libraries/openssl-1.0.1e/lib/libssl.a'
    openssl.libraries = 'ssl', 'crypto'
    openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libraries/openssl-1.0.1e/include/**" }
end

逐行:

openssl.preserve_paths = 'libraries/openssl-1.0.1e/include/openssl/*.h', 'libraries/openssl-1.0.1e/include/LICENSE'

保留标头和许可证文件。我们将使用下面的标题。

openssl.vendored_libraries = 'libraries/openssl-1.0.1e/lib/libcrypto.a', 'libraries/openssl-1.0.1e/lib/libssl.a'

告诉 CocoaPods 我们正在 pod 中传送上述静态库。这将保留文件,并修改LIBRARY_SEARCH_PATHS因此。

openssl.libraries = 'ssl', 'crypto'

包括“其他链接器标志”中的库。

openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libraries/openssl-1.0.1e/include/**" }

告诉项目在哪里可以找到标题。我们不能使用public_header_files因为这是一个subspec.

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

将静态库添加到 podspec 的相关文章

随机推荐

  • 使用 jupyter 将标准输入替换为 python3 中的字符串

    我试图用先前定义的字符串替换标准输入 在浏览堆栈溢出后 我找到了几种解决方案 尽管主要针对 python2 例如 下面的解决方案在 ideone com 中进行了测试并且似乎有效 但是当我尝试将其添加到我的 jupyter 笔记本中的代码中
  • 即使一个 spring bean 初始化失败也继续加载 webapp

    因此 如果 web 应用程序中的 spring 初始化失败 则该 web 应用程序本身不会出现 为了防止这种情况发生 我可能无法从代码中为该特定 bean 初始化重新抛出任何异常 并且 web 应用程序将继续加载 对吗 有没有其他方法可以告
  • Swift 组合:合并多个发布者,并在其中任何一个发布者发出“true”时发出“true”

    我正在尝试构建一个当其他 5 个发布者中的任何一个发出 true 时发出 true 的发布者 我已经成功构建了一个工作版本 但感觉非常恶心 使用CombineLatest4 CombineLatest 尤其是所有 0 0 0 1 0 2 0
  • 命令提示符“Net View 系统错误 6118”[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我尝试在命令提示符中使用 net view 时 收到错误代码 6118 这是什么意思 如何修复它 谢谢 尼克 6118 表示该工作组的服务器列表当前
  • 为 mysql_options() 提供了不受支持的选项

    我已经在我的本地计算机上安装了 mysql server 和 mysql workbench 操作系统为 Ubuntu 16 04 我可以通过 CLI 连接到 mysql server 但不能通过 mysql workbench mysql
  • 搜索栏激活时被导航栏隐藏

    我面临着一个奇怪的场景 我在应用程序中使用了搜索栏 并将其与表格视图绑定在一起 如下图所示 但是 当我尝试搜索任何内容时 搜索栏会向上滑动并被导航栏隐藏 我已经多次使用搜索栏 但从未见过像下面这样的屏幕截图 我无法删除导航栏 因为我需要它
  • 如何设置其他应用程序的屏幕方向?

    通过以下几行 我们可以在应用程序中设置方向 setRequestedOrientation ActivityInfo SCREEN ORIENTATION PORTRAIT setRequestedOrientation ActivityI
  • Javascript 无法在 WebView Activity 中工作

    我有一个活动只有一个WebView 其中包含 HTML CSS 和 Javascript 代码 好像有问题access of JavaScript to the 屏幕尺寸的视图 日志猫 说 Tag Web Console Uncaught
  • CSS:不是属性[重复]

    这个问题在这里已经有答案了 我有一些 HTML 表格 这些表没有 CSS 类 两个表有width 100 属性 其他表没有width属性 仅使用 CSS 我需要设置没有的表格的宽度width 100 像这样的事情 table not wid
  • 同态加密算法的实际应用?

    密码学中似乎发生了一些有趣的事情 第一个同态加密 http en wikipedia org wiki Homomorphic encryption最近出现了方案 解释 http www mail archive com cryptogra
  • 从 iOS4 在后台发布位置更新

    我可以从 iOS4 在后台向我的服务器发送位置更新吗 我想要获取用户位置更改并使用 Web 服务调用将其发布到服务器 这里的主要问题是 当应用程序在后台时是否可以调用网络服务或http post 绝对可以 而且您可能想要回顾一下之前的帖子
  • MVC 6 HttpPostedFileBase?

    我正在尝试使用上传图像MVC 6 但是 我找不到该课程HttpPostedFileBase 我已经检查过GitHub并且没有任何运气 有谁知道上传文件的正确方法MVC6 MVC 6 使用另一种机制来上传文件 您可以获取更多示例GitHub
  • Java中的数组修改(改变数组“分辨率”)

    我想创建一个函数来更改整数数组的大小 同时保持其 形状 目的是加快 FFT 的计算速度 它返回一个新的大小数组y每个元素是它在旧数组中 覆盖 的元素的平均值 例如 如果我有一个数组w有 3 个元素 并且想要创建另一个数组z有 2 个元素 第
  • 了解 Cloud Firestore 安全规则的限制

    我正在为我的 Firestore 数据库编写安全规则 并且我可能编写了太多检查并且授权自动失败 例如 特定路径的规则是 service cloud firestore match databases database documents m
  • 使用 TEmbeddedWB 或 TWebBrowser 检测外部内容

    我试图阻止由 TEmbeddedWB 或 TWebBrowser 或 TCppWebBrowser 加载的任何外部内容 我想阻止从互联网加载的任何内容 包括图像 javascript 外部 CSS 外部 embed 或 object 或 a
  • eclipse下同一个多模块maven项目的多个版本

    我想从事两个不同的版本 of the 相同的多模块 Maven 项目日食之下 不幸的是 当你在eclipse下导入多模块maven项目时 你可以改变父模块项目名称自己命名 以防止冲突 但是不是子模块项目名称 子模块作为根项目导入 以模块名称
  • 使用 GPS 获取 Android 手机的位置

    我还有一个关于基本 Android 编程的问题 如何访问 GPS 来获取运行应用程序的手机的当前位置 检索信息需要多长时间 在这种情况下 GPS 可能被禁用 如何再次启用 禁用它 必须在 andorid 清单中授予哪些权限 问候并感谢您的回
  • 移动结账时不存在 PayPal POST 付款变量

    我使用 JS 立即购买按钮进行付款 如下所示
  • Rails 中的订单确认页面

    我一直在尝试为我的 Rails 应用程序创建一个订单确认页面 但不太确定如何以一种轻松的方式完成它 上面有几个答案this https stackoverflow com questions 445293 ruby on rails con
  • 将静态库添加到 podspec

    我的 podspec 需要静态库 OpenSSL 为了方便起见 我将库与 Pod 一起运送 静态库包含 二进制文件 MyPod openssl bin libcrypto a and MyPod openssl bin libsll a 标