将第三方库ZXing导入Xcode

时间:2014-04-02 17:28:24

标签: ios objective-c xcode xcode5 zxing

我尝试过多种方式导入第三方图书馆' ZXing'进入我的iOS应用程序,但一切都很痛苦或根本没有工作。如果有人能够建议我做错了什么,或者更好的方式来导入像ZXing这样的库,我会非常感激。

它必须比这更容易!!!

这就是我所做的,结果是:

MyGreatApp的目录结构(撰写时)

/MyGreatApp/MyGreatApp.xcworkspace (main workspace that compiles the
   application)
 /MyGreatApp/Projects/MyGreatApp/MyGreatApp.xcodeproj   
 /MyGreatApp/Projects/MyGreatApp/(All source code for MyGreatApp)   
 /MyGreatApp/Projects/other-inhouse-project/other-inhouse-project/other-inhouse-project.xcodeproj
 /MyGreatApp/Projects/other-inhouse-project/other-inhouse-project/(Source
   code for other-inhouse-project)   
 /MyGreatApp/Projects/other-inhouse-project/RestKit/RestKit.xcodeproj 
 /MyGreatApp/Projects/other-inhouse-project/RestKit/(source code for  
   restKit)

将ZXing项目添加到工作区:

从git hub下载项目:https://github.com/TheLevelUp/ZXingObjC(最新版本)

将项目复制到/ Projects(在svn repo中)。

打开MyGreatApp工作区,'添加文件' - >选择' ZXingObjC.xcodeproj'。

将编译库(libZXingObjC-iOS.a)添加到从ZXing产品中拖放的MyGreatApp构建阶段。 添加ZXing所需的框架。

在标题搜索路径和库搜索路径中添加ZXing路径。 " $(PROJECT_DIR)/../../项目/ ZXingObjC-2.2.6 / ZXingObjC" 。使用$(PROJECT_DIR),因此路径是相对的,适用于所有构建机器。

将ZXing构建设置更改为不使用arm64架构,因为我们目前不支持它,因为旧的restKit库。

为了构建其他配置,我发现的唯一解决方案是向ZXing项目添加一个名称完全相同的配置,即添加QA(PAT12),QA(PAT14)等等(这不太理想)

结果:

项目编译并且工作正常,但上述步骤非常耗时。

编译ZXing不会产生错误警告。

可以使用

将ZXing文件添加到MyGreatApp项目(使用项目编译的文件):

从git hub下载项目:https://github.com/TheLevelUp/ZXingObjC(最新版本)

将ZXingObjC文件夹拖到Xcode上。确保"复制项目"在点击"添加"。

之前检查

添加ZXing所需的框架。

不得不更改ZXing源代码行以允许它编译(不确定结果可能是什么,这里的一些信息:https://github.com/TheLevelUp/ZXingObjC/issues/118

@property (nonatomic, strong) /*__attribute__((NSObject))*/ dispatch_queue_t captureQueue;

结果:

项目编译和'似乎'运行良好(但是对于攻击ZXing源代码感到紧张)

编译会产生大约180个错误警告。

不能使用

使用CocoaPods添加ZXing项目:

在CocoaPods网站上按照说明进行安装。

尝试在与MyGreatApp.xcproject相同的目录中创建Podfile,但这导致编译器错误,并且“安装”'命令在与我的项目相同的文件夹中创建了一个新的xcworkspace文件(我们已在其他地方有一个)

尝试在与MyGreatApp.xcworkspace相同的目录中创建Podfile,但这导致pod install命令无法正常工作

结果:

无法使用CocoaPods安装。

不能使用


关于如何将ZXing添加到我的项目的好方法的任何帮助或建议将非常有帮助。

2 个答案:

答案 0 :(得分:2)

如果您想在项目中添加第三方API,请按以下步骤操作:

  • 首先将第三方库复制到您的项目中。
  • 然后转到 TARGETS - >构建阶段 - >将Binary链接到库。
  • 点击+符号。
  • 添加其他&从您放置它的项目中选择。

这是向项目添加任何第三方API的最佳方法。

希望这会对每个人有所帮助。

答案 1 :(得分:0)

长话短说。我开始使用Alcatraz(Xcode的包管理器),它有一个很好的插件叫做KFCocoaPodsPlugin。它使您能够轻松处理cocoapods,因为现在看起来您使用cocoapods做错了。它将为您设置工作区,并创建podfile模板。

我强烈建议使用这两种工具:Cocoapods + Alcatraz。它让生活变得如此简单。

P.S。确保在podfile的开头添加:

platform :ios, '7.0'