Swift: Cannot use library from Pod file

╄→гoц情女王★ 提交于 2019-12-01 03:38:07

You have to import the Pod header files using Objective-C and not Swift. So you'll be mixing the two languages if you want to use CocoaPods with Swift. Here's a great tutorial on how to accomplish this.

In addition to Quark's answer, The Typhoon Swift example shows how to set up Typhoon for usage with Swift and CocoaPods.

Note that if you're using "application-style" tests, which is the default almost everywhere now, then the test target will already implicitly have the main target's dependencies. Therefore the test target should be declared exclusive. Example:

platform :ios, '7.0'

target :PocketForecast, :exclusive => true do

  pod 'Typhoon', :head

  pod 'CKUITools'
  pod 'ICLoader'
  pod 'NGAParallaxMotion'
  pod 'NSURL+QueryDictionary'
  pod 'OCLogTemplate'
  pod 'PaperFold', :git => 'https://github.com/jasperblues/PaperFold-for-iOS.git', :tag => '1.2-no-gesture-recognizers'

end

target :PocketForecastTests do
  pod 'Expecta', '~> 0.2.1'
  pod 'OCHamcrest'
  pod 'OCMockito'
end

inhibit_all_warnings!

If the test target is not declared exclusive, then it will have all of the application's libraries linked twice. This can cause problems in Typhoon's case, as it uses a lot of introspection.


Also note in the sample application, that there is a bridging header, that includes:

#import "Typhoon.h"


Typhoon Swift Example:

I think this needs an update. I have started recently developping Swift applications and, coming from a Java background, searched for a framework like Spring. The best I found is Typhoon. I didn't find a good introduction for newbies however, so I made a scratch project to try it out.

I integrated Typhoon by:

  1. Installing cocoapods
  2. Creating a basic podfile with a "use_frameworks!" line like here
  3. pod install
  4. Adding the "TyphoonInitialAssemblies" array to my plist file
  5. Create a first assembly and add it to the array in the plist

In the assembly,

import Typhoon

public class MyAssembly:TyphoonAssembly{}

Works like a charm!

You have even met this error.

I fixed by way: => remove "platform :ios, 'x.0'"

use_frameworks! target 'LateManagement' do pod 'Alamofire' pod 'SwiftyJSON' end

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!