首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CocoaPods之Podfile&Podfile.lock

podfile是一个说明文件,用以描述管理一个或者多个Xcode projecttarget依赖库。这个文件应该且必须被命名为Podfile。...' 使用仓库中其他分支pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git' 使用指定tag分支:...使用大于等于2.0版本 pod 'AFNetworking', '< 2.0' //使用小于2.0版本 pod 'AFNetworking', '<= 2.0' //使用小于等于...项目存在多Target情况 项目存在多个Target时候,需要配置Podfile文件来支持新增加Target,否则只支持项目默认建立时生成Target: a.多个Target使用相同pods依赖库...如果项目中存在多个target,且两个Target所依赖第三方库完全相同,则可以使用 link_with关键字,将Podfile写成如下方式: link_with 'CocoaPodsTest',

7.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Cocoa包管理器之CocoaPods详解

上面的platform指定版本是仓库兼容最小版本。target则指定是作用于工程中那个目标pod则用来指定相关仓库及仓库版本。...当然后边还可以通过:branch => '分支号'来指定依赖于某个分支,通过:commit => 'commit号'来指定那个提交。...当一个工程有多个人开发时,A同学 在 B同学 之前进行pod install, 而在A同学安装后一些仓库进行了更新,那么在 B同学 安装仓库时就会寻找这个最新版本。...未经许可不得使用原作者公司名字做宣传。...在Podfile中可以指定多个 Specs 仓库地址,稍后我们会创建我们自己Specs仓库,然后在该Specs仓库中上次发布我们自己使用依赖库。 ?

1.3K40

xcode svn commit is not under version control 和 git常用指令

--------- 1、查看本地所有分支(前面有*表示为当前所在分支):git branch 2、切换到目标分支,比如分支为branchOne:  git checkout branchOne 3、...5、还原修改文件,比如文件one.m: git checkout one.m 6、添加一个文件或者修改一个文件到本地仓库, 比如增加或者修改了文件one.m:git add one.m 7、提交增加修改文件到本地从仓库...创建一个项目, 项目target为“TanReactiveCocoa”,在终端进入项目文件夹 2、创建一个Podfile :  touch Podfile 3、查找第三方库最新版本,比如AFNetworking...: pod search AFNetworking ?...按fn+esc退出编辑(每个人键盘或者快捷键不一样,不一定相同),  :wq保存退出 5、安装第三方库:pod install ?

1.1K20

美团外卖iOS多端复用推动、支撑与思考

所以,我们目标相同功能,只需要写一次代码,做一次估时,其他端只需做少量适配工作。...图2 多端复用概念图 多端复用目标形态其实很好理解,就是将原有主工程中代码抽出独立组件(Pods),然后各自工程使用Podfile依赖所需独立组件,独立组件再通过podspec间接依赖其他独立组件...并且在开发中我们支持源码与二进制混合开发模式,我们给某个binary_pod修饰依赖库加上标签,或者使用.patch文件,控制特定库拉源码。...Cocoapods依赖分析用是Molinillo算法,链接中介绍了这个算法实现方式,是一个具有前向检察回溯算法。这个算法本身是没有问题,依赖层级深只要依赖写合理也可以达到秒开。...当某个组件在创建二进制之前可自行选择集成目标,如果多端复用了,那只需要在发版创建二进制同时勾选多个集成目标

68530

如何解决 iOS 环境搭建与 APP 打包速度问题

切分后 APP 打包慢 当开发同学在多个分支 / 版本开发时候,时常需要切换分支开发调试和 bugfix。但是切换分支之后,整个 IOS 工程打包时间在 30-40 分钟左右。...切分支后 APP 打包速度问题 客户端开发同学经常需要在多个分支(版本)上面开发业务,且时常需要来回切换进行业务开发和问题定位。...打包速度优化也将分为两个阶段进行: Pod 操作加速 Pod install/update 主要工作是读取 Podfile,进行依赖版本控制和冲突解决,并生成 Pod 工程。...生成相关文件存储在 Pods 目录和 Pods.xcodeproj 中。当切换回之前分支时,Podfile 经常是不会发生变化,因此重新生成 pod 工程实属浪费。...具体方案: 在切分之前缓存当前分支 Pods Project, Flutter Project 以及编译中间产物,Podfile.lock, linkmap 等等相关文件。

2.3K31

基于CocoaPods组件化原理及私有库实践

从一个角度上说,石器时代是基于石器组件化时代,因为老张家石矛(其它石头利器)借给了老王,一样可以拿去狩猎。要想实现这个目的,一定要保证: 石矛足够锋利。...上古时代轮子 从本质上说,组件是通过库方式来进行封装从而提供给开发者使用。而库,就是一种组织一个多个文件方式。在 iOS 8 之前,iOS 只支持以静态库方式来使用第三方代码。...对比本地podversion和podfile.lock中pod version,如果不一致会提示存在风险 对比podfile是否发生了变化。...如果地址为git+tag,则此步骤为git clone xxxx.git 注意,此时必须要保证需要下载pod版本号和git仓库tag标签号一致。...创建并Clone目标Pod地址 这里,我们以HelloXXXPod为例。

4.8K12

程序员面试闪充--Cocoapods详解

2)对于资源文件,Cocoapods提供了一个名为Pods-resources.shbash脚本,该脚本在每次项目编译时候都会执行,将第三方库各种资源文件复制到目标目录中。...' 可以安装任何高于1.0版本 '>=1.0' 可以安装任何高于等于1.0版本 '<1.0' 可以安装任何低于1.0版本 '<=1.0' 可以安装任何低于等于1.0版本 '~>0.1...' 任何高于等于0.1版本,但是不包含高于1.0版本 '~>0' 任何版本,相当于不指定,默认采用最新版本号 可以通过pod search 框架名查看框架是否在cocopods管理之下 四、cocoapods...答: pod search xxx(第三方库) 4、请简单说明在安装cocoapods时,使用pod install命令安装框架后大致过程 答: 1)分析依赖:该步骤会分析Podfile,查看不同类库之间依赖情况...如果有多个类库依赖于同一个类库,但是依赖于不同版本,那么cocoaPods会自动设置一个兼容版本。 2)下载依赖:根据分析依赖结果,下载指定版本类库到本地项目中。

2.1K100

iOS美团款ZSource二进制调试实现

一、前言 前段时间我们项目也实现了组件二进制化,在之前技术周会中我们有提到跟美团款ZSource二进制调试能力,我们也在自己Cocoapods-imy-bin插件上实现了相同功能pod bin...code,借助这个周会我们就再来一探究竟二进制是怎么实现调试和插件pod bin code实现细节。.../libIMYNews.a | grep 'IMYNewsRootViewController' 复制代码 一个DW_AT_name属性,其值是一个以空字符结尾字符串,其中包含从其派生编译单元主源文件完整相对路径名...#找出依赖 def find_dependency (name) find_dependency = nil @config.podfile.dependencies.each do |...,@config.lockfile, @config.sandbox,true ) download_request = Pod::Downloader::Request.new(:name =>

1.3K10

RN集成到现有原生应用-swift

如果你使用多个第三方依赖,可能这些第三方各自要求 react 版本有所冲突,此时应优先满足react-native所需要react版本。其他第三方能用则用,不能用则只能考虑选择其他库。...4、配置 CocoaPods 依赖 如果你项目里面已经有了Podfile就直接配置,没有就创建: $ pod init Podfile会创建在执行命令目录中。你需要调整其内容以满足你集成需求。...调整后Podfile内容看起来类似下面这样,下面是原生项目podfile必须添加: source 'https://github.com/CocoaPods/Specs.git' # 对于Swift...# target名字一般与你项目名字相同 target 'swift-2048' do # 'node_modules'目录一般位于根目录中 # 但是如果你结构不同,那你就要根据实际路径修改下面的... pod 包了。

1.8K20

Kubernetes调度器101

按分数排序,分数最高排在前面。此时,将选择得分最高节点。但有时可能有多个节点具有相同得分。 如果节点具有相同得分,则将它们移动到最终列表。...用户定义决策 在本文前面,我们提到用户可以使用pod定义模板中.spec.nodeSelector参数在特定节点上运行pod。节点选择器选择具有一个多个特定标签节点。...例如,节点选择器选择在参数中定义了所有标签节点。如果你想做出更灵活选择呢? 节点关联(Node Affinity) 让我们考虑一下前面的示例,当时我们希望将pod安排在具有SSD磁盘机器上运行。...节点反关联(Node Anti-Affinity) 有些场景要求不使用一个多个节点,但特定pod除外。可用考虑托管监视应用程序节点为例子。由于其角色性质,这些节点不应该有很多资源。...但是,它们默认操作是将pod从受点污节点中排除,除非pod具有必要容忍(键、值和效果)。容忍通常与节点关联节点选择器参数相结合,以确保仅将匹配节点用于pod调度。

77510

使用 pod lib create 创建库

Objective-CSwift 你问第一个问题是你想要构建一个pod语言。对于这两个选择,CocoaPods会将你库设置为一个框架。...如果您想要一个示例项目pod try MyLib需要让您测试在应用程序内运行(交互测试,自定义字体等),那么您应该说是。一个好指标是 这个Pod应该包含截图吗?...目标是提供一个易于设置和使用BDD库。...Note:由于发展豆荚实现细节,当你添加新/现有的文件Pod/ClassesPod/Assets更新podspec,你应该运行pod installpod update。...这可以通过两种方法完成,pod lib lint并且pod spec lint。它们之间区别在于pod lib lint不访问网络,而是pod spec lint检查外部仓库和相关标签

3.6K10

单工程多target多App方案

前言 早期在做新App时,由于不确定新App发展路线,所以采用了拆分工程方式,达成初期较快上线目标,同时多App也不相互影响。...随着新产品迭代,越来越多需求要在多端上线,这部分需求都需要手动在多个Xcode工程同步,产生较大成本。 本文就多App方案做一些探讨。...工程相同,支持单个工程出多个包;这样不同App共享大部分业务需求,功能默认复用,差异化部分通过配置化、逻辑多态等方式实现; 下面就介绍一种工程融合解决方案。...单工程多Target方案 多target隔离App是比较常见做法,大致Podfile如下: pod区分: common_pod,是通用pod app_abc_pod,abc特有pod app_xyz_pod...,xyz特有的pod target区分: traget_abc,abctarget,由common_pod和app_abc_pod组成 target_xyz,xyztraget,由common_pod

34320

有赞iOS-基于二进制编译提效策略

,并且二进制化对平日里开发方式不会发生变动 业务 Project 二进制,非 Pod 形式业务子工程也需要支持二进制 支持组件库与业务库白名单,方便开发人员随时调试目标库或者业务模块 不修改 Podfile...该组件对 Subspec 处理较为暴力,会将多个 Subspec 合并为一个,例如我一个组件库,Phone 工程需要引用SubSpecA,Pad工程需要引用 SubSpecB,在使用该组件打包时,会将...SubSpecA 与 SubSpecB 合并为一个 framework/.a,这种情况显然不是我们所需要,更为合理做法是可通过配置去设置,是否将 SubSpec 进行合并拆分 cocoapods-packager...以及不在 podfile 中指明,动态增加 pod 库。...库 删除了对应业务子工程,如何让它以Pod形式引入到工程中来呢,手动在 podfile 中写判断条件,在手动添加pod 业务库当然能够行得通,但我们之前说了,我们避免任何podfile修改,所以我们可以通过

1.6K20

XCode打framework包、cocoapods库制作及Pods库二进制切换

首先打开你主工程,然后从你framework源码中把你要打断点.m文件拖到主工程里下图位置。为打开文件但不会引入文件,这个时候你打下断点试试你就会发现神奇居然进入了断点。 ?...不过当你需要安装库时候你podfile还需要做一定改动,就是要告诉pod仓库实际地址。...install让他命中if第一个分支。...原理大概就是pods会把pod所有字段作为一个字典供podSpec使用。既然有了条件分支,我们目标就是根据不同条件改变pods不同资源了。...、经历了多个版本修改不希望你随意去改变库,所以封装成framework也很方便管理,所以才有了这方面的需求,那就是这样。

2K21

k8s实践(14)--scheduler调度器和pod调度策略

该策略用于判断备选节点是否包含策略指定标签包含和备选Pod相同Service和Namespace下Pod所在节点标签列表。如果存在,则返回true,否则返回false。...在 Node 上设置一个多个 Taint 之后,除非 Pod 明确声明能够容忍这些污点,否则无法在这些 Node 上运行。...将尽量避免把Pod调度到具有该污点Node上,除非没有其他节点可调度; NoSchedule(一定不能被调度):kubernetes将不会把Pod调度到具有该污点Node上,但不会影响当前Node上已存在...这样带有合适 Toleration Pod 就会被允许使用其他节点一样使用有 Taint 节点。 通过自定义 Admission Controller 也可以实现这一目标。...只会被调度到具有这一标签节点上。

61531
领券