使用的CocoaPods与应用推广使用的CocoaPods与应用推广(Use Cocoapods w

2019-05-12 17:52发布

我试图在Xcode中创建6β-6照片应用程序扩展,使用的CocoaPods库。 该Xcode创建的照片扩展的桥接报头不能看到的CocoaPods什么。

例如: #import <GPUImage/GPUImage.h>导致错误"GPUImage/GPUImage.h" file not found

我已经试过了进口每一个可能的路径(用方括号和引号),几乎没有过成功。 唯一的例外是,对于简单的荚状SVProgressHUD ,下面的丑陋可怕的黑客作品: #import "../Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h"

但对于GPUImage,它走进GPUImage.h头,并决定它突然不能看到GPUImageContext.h尽管当这与正常的SWIFT代码是不是应用程序扩展的一部分的桥接报进口没有问题。

是什么样的附加应用是防止桥接报头由三立行为编译有什么不同?

注:我读过的每一种可能的排列本教程 ,它不是立即适用,以防万一有人认为他们已经找到了答案在那里。

此外,在描述的问题这太问题可能有关,但我问这个问题,反正在我的情况下,问题是特定于应用程序的扩展。

Answer 1:

这样做的正确方法是更新您的podfile增加仅1线:

link_with 'yourApp', 'yourAppExtension'

和吊舱更新应该解决的问题。



Answer 2:

编辑(2015年3月10日)

见新接受的答案。 我试图在一个新的项目和它的工作,虽然我的测试荚这两个在扩展不允许使用sharedApplication。 他们表现出这些错误,这意味着它连接正常。 要走的路@LeChatNoir!


成功。

该解决方案是:一旦你有你的应用程序扩展,它使用的CocoaPods桥接报头中的一个项目,你想使用这些的CocoaPods图书馆之一,试图包括像荚#import <GPUImage/GPUImage.h>将失败, file not found

首先,确保你告诉应用程序扩展名(点击您的项目文件,然后在扩张对象)来链接libPods.a ,非常喜欢你的应用程序的目标。

接下来,在实际项目中的信息选项卡下(内边栏的“项目”部分中再次点击您的项目文件,然后在项目文件),设置扩展调试,发布和点播服务的配置使用从下拉列表中“吊舱”的配置。 吊舱安装你不会做这个,所以你需要自己做。

最后,确保两个舱体项目目标和项目的目标有你需要的有效的体系结构来构建变量的所有架构或你会得到不断的乐趣未定义的符号错误。

应该工作,并允许你输入你所选择的豆荚像正常。


编辑(2014年10月14日):顺便说一句,因为你也可以从斯威夫特扩展自己的项目代码中包括Objective-C的文件,你应该确保任何.m你把桥接头文件也扩张对象进行编译。 您可以从目标或在编译源菜单做.m用Xcode中右侧边栏的“目标会员”部分文件本身。



Answer 3:

上述答案的工作,但我只是想在我的分机一对夫妇豆荚,所以我做了以下我Podfile:

target '[Main App Target Name]' do
        pod ...
        pod ...
        pod ...
end

target '[Extension Target Name]' do
        pod ...
end

然后pod install会做到这一点!



Answer 4:

link_with,你不会使用它了。

无效Podfile文件:[!]的规格link_with在Podfile现在是不支持的,请使用目标块,而不是..

下面是一个完美的answe,也测试。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ‘9.0’
use_frameworks!
inhibit_all_warnings!

target 'DemoTodayWidget' do
    pod 'Reachability',                         '~> 3.2'
end

target 'My Widget' do
    pod 'Reachability',                         '~> 3.2'
end


文章来源: Use Cocoapods with an App Extension