【问题标题】:How to import a Cocoapod into an App Extension?如何将 Cocoapod 导入应用扩展?
【发布时间】:2017-03-19 04:06:41
【问题描述】:

通过 Cocoapods 和桥接头使用 Pinterest 的 iOS SDK,在我的应用中运行良好。

在我的项目中创建了新目标 -> 操作扩展。尝试在 Linked Frameworks and Libraries 中链接 PDK 框架,尝试在扩展中添加单独的桥接头文件,但 Xcode 崩溃无法找到它......关于如何导入它的任何想法?

播客文件:

platform :ios, '9.0'

pod "PinterestSDK", :git => "git@github.com:pinterest/ios-pdk.git"

pod "PINRemoteImage"

pod "GBDeviceInfo"

pod 'FBSDKCoreKit'



xcodeproj '/Users/garysabo/Dropbox/Xcode Projects/pinFixer2/pinFixer2.xcodeproj'

桥接头:

#import "PinterestSDK.h"
#import "PDKPin.h"
#import "PDKBoard.h"
#import "PDKImageInfo.h"
#import "PDKResponseObject.h"
#import "PDKClient.h"
#import "PDKModelObject.h"
#import "PDKUser.h"

【问题讨论】:

  • 你的问题让我很困惑。如果您使用的是 cocoapods,则无需桥接头文件。你可以在这里转储你的 Podfile 吗?
  • 当然,刚刚添加
  • 当你创建一个扩展时,它会为你的 Xcode 项目添加一个目标。 Cocoapods 默认只设置它看到的第一个目标。您需要在 Podfile 中添加 target "[name]" do ... end 部分。但是,这仍然可能不起作用,具体取决于 Pinterest SDK 库是否标记为“对扩展安全”。
  • 感谢@DaveWeston,但我想要两个目标,我的应用程序和我的扩展程序,我可以这样做吗?
  • 是的,您的 Podfile 中可以有两个目标部分,只需确保为每个部分使用正确的名称。每个目标中可以有不同的 pod,也可以相同。 Cocoapods 将尽其所能进行重复数据删除。

标签: ios swift frameworks cocoapods ios-app-extension


【解决方案1】:

以这个 pod 文件代码为例,这个 pod 文件有 2 个目标应用程序和扩展。

platform :ios, '9.0'
use_frameworks!
workspace 'MyWorkSpaceApp'

target 'MyApp' do

       pod 'SwiftyUserDefaults'
       pod 'Alamofire', '~> 4.0'
       pod 'AlamofireImage', '~> 3.1'
       #pod 'AlamofireNetworkActivityIndicator', '~> 2.0'
       #pod "youtube-ios-player-helper", "~> 0.1.6"
       #pod 'Alamofire-SwiftyJSON'
       pod 'SwiftyJSON', '~> 3.0.0'
       #pod 'SlideMenuControllerSwift'
       pod 'UIColor_Hex_Swift', '~> 3.0.2'
       #pod 'ALLoadingView', :git => 'https://github.com/ALoginov/ALLoadingView.git', :branch => 'swift3'
       pod 'SDWebImage', '~>3.8'
       #pod 'SwiftSpinner', :git => 'https://github.com/icanzilb/SwiftSpinner.git', :branch => 'swift3'
       #pod 'SideMenu'
       #pod 'Fabric'
       #pod 'Crashlytics'
       #pod 'IQKeyboardManagerSwift', '4.0.6'
       #pod 'AELog'
       #pod 'TestFairy'
       #pod "AwesomeCache", "~> 5.0"
       #pod 'Deviice'
       #pod 'MKDropdownMenu'
       #pod "HanekeSwift", :git => 'https://github.com/Haneke/HanekeSwift.git', :branch => 'feature/swift-3'
       pod 'OneSignal', '~> 2.4'

       post_install do |installer|
        puts("Update debug pod settings to speed up build time")
        Dir.glob(File.join("Pods", "**", "Pods*{debug,Private}.xcconfig")).each do |file|
            File.open(file, 'a') { |f| f.puts "\nDEBUG_INFORMATION_FORMAT = dwarf" }
        end
    end

       target 'MyAppExtension' do 
           pod 'OneSignal', '~> 2.4'
       end

end

希望对你有所帮助,问候

【讨论】:

  • 谢谢..基于此和上面戴夫的回应我(认为)我现在已经针对扩展安装了 pod,但代码仍然不可用...我需要一个桥接头吗扩展(因为 Pinterest 的 SDK 是 Obj-C 并且我需要在我的主应用程序中)?
  • 请记住,使用 cocoapods 时不需要桥接头。删除您为 pod 添加的所有桥接头。您是否尝试在安装 pod 后构建您的项目?
  • #podpod有什么区别?
  • @Honey # 后面的代码在该行中被注释掉了。
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 2018-03-08
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 2016-04-05
  • 1970-01-01
相关资源
最近更新 更多