Objective c 如何创建包含静态库的pod?

Objective c 如何创建包含静态库的pod?,objective-c,cocoapods,podspec,Objective C,Cocoapods,Podspec,我正在努力使我的图书馆作为一个CocoaPod工作,并将感谢任何帮助,指出我在正确的方向 我以前从来没有做过豆荚,我觉得我已经把所有的事情都做好了,这将是可行的。。。如果它是一个简单的pod,只有未编译的.h/.m/.swift文件,那么我的库包含一个编译的.a文件,一个静态库,我的库使用它 我在Xcode中的项目是为了将Objective-C库编译成.a库而设置的。如果我在Xcode中编译这个文件,它会生成这个文件,一点问题都没有。但是,当我尝试lint podspec时,我会得到链接器错误,

我正在努力使我的图书馆作为一个CocoaPod工作,并将感谢任何帮助,指出我在正确的方向

我以前从来没有做过豆荚,我觉得我已经把所有的事情都做好了,这将是可行的。。。如果它是一个简单的pod,只有未编译的
.h
/
.m
/
.swift
文件,那么我的库包含一个编译的
.a
文件,一个静态库,我的库使用它

我在Xcode中的项目是为了将Objective-C库编译成
.a
库而设置的。如果我在Xcode中编译这个文件,它会生成这个文件,一点问题都没有。但是,当我尝试lint podspec时,我会得到链接器错误,这些错误似乎与我试图链接到的静态库有关

SQLConnect.podspec 向上滚动输出,我可以找到以下错误:

架构i386的未定义符号: “_iconv”,引用自: _libfreetds.a(iconv.o)中的tds_iconv_init _libfreetds.a(iconv.o)中的tds_iconv _跳过libfreetds.a(iconv.o)中的一个输入序列 _libfreetds.a(iconv.o)中的tds_iconv_fread (也许你的意思是:"关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭"","关闭" “\u iconv\u close”,引用自: _libfreetds.a(iconv.o)中的tds_iconv_init _libfreetds.a(iconv.o)中的tds_iconv _跳过libfreetds.a(iconv.o)中的一个输入序列 __iconv_在libfreetds.a中关闭(iconv.o) _libfreetds.a(iconv.o)中的tds_set_iconv_名称 (也许你的意思是:_tds_iconv_close) “_iconv_open”,引用自: _libfreetds.a(iconv.o)中的tds_iconv_init _libfreetds.a(iconv.o)中的tds_iconv_info_init _libfreetds.a(iconv.o)中的tds_iconv _跳过libfreetds.a(iconv.o)中的一个输入序列 _libfreetds.a(iconv.o)中的tds_set_iconv_名称 (也许你的意思是:_tds_iconv_open) ld:未找到架构i386的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) 及

架构x86_64的未定义符号: “_iconv”,引用自: _tds_iconv_在libfreetds.a(iconv.o)中打开 _libfreetds.a(iconv.o)中的tds_iconv _libfreetds.a(iconv.o)中的tds_iconv_fread (也许你的意思是:"关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭","关闭"","关闭" “\u iconv\u close”,引用自: _tds_iconv_在libfreetds.a(iconv.o)中打开 _在libfreetds.a(iconv.o)中关闭tds\u iconv\u info\u _libfreetds.a(iconv.o)中的tds_iconv _libfreetds.a(iconv.o)中的tds_set_iconv_名称 (也许你的意思是:_tds_iconv_close) “_iconv_open”,引用自: _tds_iconv_在libfreetds.a(iconv.o)中打开 _libfreetds.a(iconv.o)中的tds_iconv_info_init _libfreetds.a(iconv.o)中的tds_iconv _libfreetds.a(iconv.o)中的tds_set_iconv_名称 (也许你的意思是:_tds_iconv_open) ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) 这似乎表明这个项目有问题。。。但是我可以毫无问题地将它编译成
.a
。我还通过将原始源文件或生成的
.a
文件(我的libSQLConnect.a,而不仅仅是libFreeTDS.a)拖到iOS项目中来使用这个库

那么,我如何使它作为一个吊舱工作呢


可以找到该库。

我无法帮助您解决CocoaPod问题

但是,如果您支持iOS8+,那么我建议您将其视为一个附加/替代依赖关系管理器。你不会有你所描述的问题类型。我之所以提出这个建议,只是因为我过去使用过椰子荚,对它的工作方式感到失望。所以我一直把我的项目转到迦太基,因为我发现它比cocoapod简单得多,而且不涉及任何Ruby黑客攻击(没有pod规范)或在项目文件上到处跺脚。但是,它是基于使用框架(因此是iOS8+要求)而不是静态LIB,因此它是否适用于您取决于您试图实现的目标


附言:不,我不是迦太基的维护者。我只是碰巧更喜欢它:-)

看起来你需要链接到libiconv。添加:

s.libraries = 'iconv'
在你的吊舱里,你就能到达那里


我已经在Github中向您发送了一个pull请求和修复程序。

这与我使用的依赖关系管理器无关。这是关于让我想发布的东西与最流行的依赖关系管理器一起工作。如果你想发布一些根本不回答他的问题的东西,你可以随时对问题进行评论,而不是发布答案。在旧版本中,我使用
pod lib create NAME--static
来完成。不确定是否仍然有效。我想我已经试过了,但我猜我的库名搞错了(我想我试的是
libiconv
或别的什么)。@nhgrif iconv到底是什么。我试图在你的github项目中搜索,但没有看到任何iconv.a文件。我有一个类似的问题,我正试图解决。@Max libiconv是一个标准的编码转换库:它将在大多数使用操作系统的GNU中可用。也许说说你的问题?
s.libraries = 'iconv'