TodayExtension使用CocoaPods管理的PureLayout问题和将源代码直接集成到项目中问题

拓展不能直接引用项目中的第三方,这里以PureLayout为例

使用CocoaPods管理PureLayout

如果你创建了今日插件,在今日插件里面是不能直接引用PureLayout的,会提示not found。那你需要做一件事就是将这个PureLayout和你的今日插件的target关联。
在项目中的Podfile文件中加入以下代码:

target 'TodayWidget' do
      pod 'PureLayout'
end

这个时候编译以下项目会出现这个问题

'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based solutions where appropriate instead.

当出现这个问题的时候是需要处理以下宏定义PURELAYOUT_APP_EXTENSIONS,以防止不可用的API的使用。
在Podfile里面加如下代码:

target 'TodayWidget' do
    pod 'PureLayout'
    
    post_install do |installer|
        # NOTE: If you are using a CocoaPods version prior to 0.38, replace `pods_project` with `project` on the below line
        installer.pods_project.targets.each do |target|
            if target.name.end_with? "PureLayout"
                target.build_configurations.each do |build_configuration|
                    if build_configuration.build_settings['APPLICATION_EXTENSION_API_ONLY'] == 'YES'
                        build_configuration.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)', 'PURELAYOUT_APP_EXTENSIONS=1']
                    end
                end
            end
        end
    end
end

其实原本这样就已经解决了问题,但是,我在使用过程中并没有达到预期效果,上述提示错误任然存在,那么我只好手动去处理宏定义

处理宏定义1.png

然后再次编译,问题就解决了。

将源代码直接集成到项目中

这个就很简单了,直接将源代码放到TodayWidget文件夹下。此时依然会有上述错误提示,这个时候也是需要手动去处理宏定义

处理宏定义2.png

和上图一样加上PURELAYOUT_APP_EXTENSIONS=1就ok了。

参考文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,693评论 7 249
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,346评论 4 61
  • 长期听大家讲述三代家庭图。有很多感触。很多时候,我们看到的,我们知道的家庭对我们的影响,不是最重要的影响。更深的影...
    几点小土阅读 3,328评论 0 1
  • 我再看到她的时候,银白色的发丝已经告诉我她老了。 还记得多年前吧,她带帽子扎马尾,煞是好看,能跟她并排走在路上谈天...
    指玄阅读 1,832评论 0 1
  • 昨晚比看魔幻片还刺激,从我躺床上起就开始异样,头右枕,天花板开始转起来,越来越快,越来越晕,翻左侧停了,右侧,又开...
    君君之阅读 3,935评论 1 1

友情链接更多精彩内容