2015-06-08 17 views
2

使用的CocoaPods-0.37.2这里是我的PodfilePureLayout斯威夫特用的CocoaPods

platform :ios, "8.0" 
use_frameworks! 

pod "GoogleMaps" 
pod 'FontAwesomeKit' 
pod 'PureLayout' 

我想在我的.swift文件中像这样导入PureLayout

import PureLayout 

class ViewController: UIViewController { 
... 

但我收到错误:

No such module 'PureLayout'

为什么?我以为Cocoapods在使用use_frameworks!时自己创建-Bridging-Header.h

+0

你是从'.xcworkspace'建立它吗? –

+0

在使用CocoaPods时,它应该“正常工作”。你确定你正确运行'pod install'并按Jakub建议打开'.xcworkspace'吗?这里有一个简单的示例项目,我把它们放在一起来测试它。你可以看到它的工作方式与你所做的一样:http://cl.ly/2M1S3D2F0k1i – smileyborg

回答

2

我没有使用use_framework选项,但我用PureLayout斯威夫特与无的CocoaPods问题。

  • 我的Podfile只有一行pod 'PureLayout'
  • 我自己根据Apple here的指示创建了<Your Module>-Bridging-Header.h文件。我添加了一行#import "PureLayout.h"。我还更新了我的目标版本设置,按照说明输入桥接头文件名。
  • 在.swift文件中我想使用PureLayout,我没有需要有import PureLayout。如你所说,它会给我一个错误。自动布局调用将会正常工作,因为它是通过桥接头来定义的。

一边点 - 测试目标将无法编译如果添加桥接头文件的构建设置。因此,确保桥接头更新是在目标而不是项目级完成的。

我猜PureLayout github页面中的当前README有点过时,因为它当前会要求您在.swift文件中执行import PureLayout。我也在this README enhancement issue中添加了评论。

1
  1. 安装podfile
  2. 打开.xcworkspace
  3. 把你import PureLayout声明中,得到错误
  4. 删除声明
  5. 清洁产品
  6. 建立自己的产品
  7. 放您的import PureLayout声明返回

这是使用外部框架时常见的问题和解决方法。

1

spacemonkey是为我工作的方法。在这种情况下,您甚至不需要-Bridging-Header.h文件。

至于FontAwesomeKit,因为它包含了一些资源文件(xx.ttfxx.otf,等等),你应该添加这个文件到项目,使其工作。如下所示:enter image description here

清理项目并重新编译,然后完成。

以下是我对这个演示:

import FontAwesomeKit 
import ChameleonFramework 
import SnapKit 

class ViewController: UIViewController { 

    @IBOutlet weak var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     let iconSize : CGFloat = 128; 
     let codeIcon = FAKFontAwesome.codepenIconWithSize(iconSize); 

     imageView.image = codeIcon.imageWithSize(CGSizeMake(iconSize, iconSize)); 

     view.backgroundColor = UIColor.flatGreenColorDark(); 
    } 
} 

PS。既然你使用了swift,或许SnapKit布局框架将比PureLayout更合适。

+0

感谢您使用SnapKit链接。 – Darmen