无法在iOS Swift项目中集成ZXingObjC

Red*_*das 5 xcode objective-c zxing ios swift

我正在开发一个iOS项目,它在条形码中显示客户编号.我ZXingObjC用CocoaPods 安装了框架,在GitHub中有描述.

我可以毫无错误地编译我的项目.我也可以使用ZXingObjCObjective-C类中的类,没有错误.之后,我将import命令添加#import <ZXingObjC/ZXingObjC.h>到我的桥接头文件中,就像我的其他自定义objective-c类一样,没有编译错误.(我通过销毁一些import语句来测试头文件并获得了预期的文件未找到异常.)

但现在,我不能ZXingObjC在我的快速课程中使用任何课程.我只得到以下编译错误:Use of undeclared type '...'.Xcode自动完成功能也不起作用.

例如

var test : ZXMultiFormatWriter?
>> Use of undeclared type 'ZXMultiFormatWriter'
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • 设置新项目,同样的问题
  • 检查标题搜索路径: $(SRCROOT)/Pods/Headers/Public/Adjust
  • 重新安装了ZXingObjC框架
  • 检查构建设置: Enable Modules: YES
  • 检查构建设置: Other Linker Flags: $(inherited) -ObjC -framework "ZXingObjC"
  • 检查构建阶段中的链接二进制文件:添加框架
  • 检查桥接头文件中的import语句(#import <ZXingObjC/ZXingObjC.h>并且#import "ZXingObjC/ZXingObjC.h"- 没有区别)
  • Windows风格:重启Xcode和Mac ;-)

我正在使用:

  • Xcode:6.3.2
  • CocoaPods:0.37.2
  • 项目部署目标:iOS 8.0
  • SDK:8.3

有谁知道这个问题?有人可以帮忙吗?如何在swift中提供ZXingObjC框架?

Luc*_*nzo 5

实际上,这是一个简单的问题:

播客文件

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'
use_frameworks!

pod 'ZXingObjC', '~> 3.1'
Run Code Online (Sandbox Code Playgroud)

因此,在终端上:

cd workspace
pod install
Run Code Online (Sandbox Code Playgroud)

然后,在Xcode上打开项目后,您必须添加ZXingObj来编辑桥接头:

#import <ZXingObjC/ZXingObjC.h>
Run Code Online (Sandbox Code Playgroud)

最后,在使用ZXingObjC的快捷类中,您必须导入ZXingObjC。

import ZXingObjC

class ZXingObjCWrapper {

    func encode() {
       let writer = ZXMultiFormatWriter.writer()        
       ....
    }

}
Run Code Online (Sandbox Code Playgroud)


Red*_*das 0

我的项目中的标头搜索路径不正确。正确的值为:

$(inherited)
"${PODS_ROOT}/Headers/Public"
"${PODS_ROOT}/Headers/Public/ZXingObjC"
Run Code Online (Sandbox Code Playgroud)

第二行和第三行不是通过安装 CocoaPods 添加的。

编辑:安装的框架必须添加到项目的“常规”选项卡中的“嵌入式二进制文件”中。