据说 cocoaPods 升级到1.0之后变得使用起来不太方便了,好吧,这段时间公司事儿比较多而且是自己写的sdk就不怎么写demo了,cocoaPods也没用几次……

前两天朋友说要转战 Carthage 了,在网上搜了些教程还真是不难,但是有一些东西没有写太清楚,我就狗尾续貂再写一篇,也算是备忘

一、安装 Carthage。

这个网上有教程,推荐使用 homebrew 安装,真的不难。

二、创建工程,就是你要上传的、共享的那个。

就是一般的创建一个新的工程,把你要上传的功能写好,再简单点说就是,你写个Demo,实现功能,正常编译,可以跑起来就好。

三、创建一个新的 Target。

在 Demo 中点击 File-->New-->Target.. 选择下图中的 Cocoa touch Framework, 输入你的Framework名称 ,我就输入 SHBPlayer 喽

工程里会新建一个以输入名字命名的文件夹, 把里面的.h文件打开,删除自带的代码,引入要暴露的头文件

然后按照这个顺序再配置一下,如下图

再设置一下要分享的framework,点击停止按钮旁边的工程名-->Manage Schemes,如下图

ok, 打开终端神器,输入

carthage build --no-skip-current

希望是不报错,如果报错了自行度娘,本文不涉及。

命令运行完成后,你会发现你的项目文件夹里面多了一个Carthage文件夹,Carthage-->Build-->iOS-->SHBPlayer.framework,我们需要的framework就在这了,可以新建一个工程测试一下。

新建一个工程,把framework拖入工程,再按下面顺序配置一下

在工程里测试通过就可以着手上传了!

还回到我们的framework工程,我习惯用 SourceTree,把工程传到github仓库,这个根据个人习惯了也可以用终端什么的传上就好。

然后打上 tag,因为 Carthage 就是根据tag来clone的。

git tag 1.0.
git push --tags

ok了,这样别人就可以用这个framework了。

应用方式见Carthage 的使用

让自己的项目支持 Carthage的更多相关文章

  1. Carthage 让项目支持及使用,第三方静态库转为动态库

    Carthage介绍 具体使用,可以查看官网的,文档地址 https://github.com/Carthage/Carthage.如果看不懂英文,可以看一下官文的翻译:https://www.jia ...

  2. 让android项目支持boost 支持c++11

    在Application.mk 里增加-D__GLIBC__  让项目支持boost 增加 -std=c++11 让项目支持c++11 (3.x的cocos本身已经支持了的) 看起来这样: APP_S ...

  3. 【抱怨文】vscode对多项目支持不够友好

    vscode是一个简单的开发工具,启动快,速度快.但是当前1.26版本对多项目支持好像有点问题.命令行有个dotnet sln,但是只能添加新项目,却没有创建解决方案的命令.如果强行添加他会提示没有解 ...

  4. CocoaPods学习系列2——使自己的项目支持CocoaPods管理

    该篇记录使自己的项目支持CocoaPods管理. 要达到这一目的,需要如下步骤: 1.将自己的项目提交到github,添加开源协议license 2.添加podspec文件 3.验证podspec,成 ...

  5. Nuxt项目支持import写法的最新解决方案

    最近在看Nuxt开发vue项目的视频,视频中讲到Nuxt项目不支持es6的import写法.并提供了解决方案: 1.在package.json中添加我标红的部分: "scripts" ...

  6. Vue老项目支持Webpack打包

    1.老的vue项目支持webpack打包 最近在学习Vue.js.版本是2.6,webpack的版本也相对较老,是2.1.0版本.项目脚手架只配置了npm run dev和npm run build. ...

  7. 项目支持Servlet3.0的新特性

    一.Servlet3.0介绍 Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述 ...

  8. 让自己的开源项目支持CocoaPods

    测试的时候找个自己封装的方法或UI控件就可以了 这里用我刚封装的Redirect重定向的请求体为例 1, 在github上创建一个Redirect,重要:记得选择开源协议 (MIT)(如果木有GitH ...

  9. 转换基于Maven的Java项目支持Eclipse IDE

    在过去的教程中,使用 Maven 创建了一个Java项目,但是这个项目不能导入到Eclipse IDE中,因为它不是 Eclipse 风格的项目. 这里有一个指南,向您演示如何转换 Maven 生成 ...

随机推荐

  1. 容易忽略的小知识之 Date 函数参数

    Date 对象启用基本存储器并取得日期和时间. dateObj = new Date()dateObj = new Date(dateVal)dateObj = new Date(year, mont ...

  2. drupal7 带表达式条件的update

    原本的mysql语句是这样的: ; 转化成drupal的api是这样的 $total_amount=1; $rows= db_update('my_payment_card') ->expres ...

  3. Pwn with File结构体(一)

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 利用 FILE 结构体进行攻击,在现在的 ctf 比赛中也经常出现 ...

  4. Material适配1 - 入门篇

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4493384.html 随着Material Design的普 ...

  5. java 中解析json步骤

    一.   JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. Json建构于两种结构:     1.“名称/值”对的集合(A collection ...

  6. 聊聊 getClientRects 和 getBoundingClientRect 方法

    开始表演 今天来聊一下两个相似的方法,它们就是:getBoundingClientRect().getClientRects(). 只见它们俩手拉手地登上了舞台,一个鞠躬,便开始滔滔不绝起来. 自述 ...

  7. 如何将同一 VNET 下的虚拟机从经典部署模型迁移到 Azure Resource Manager

    本文内容 适用场景 解决方案 适用场景 用户拥有多个云服务但是在同一个 VNET 下,希望将这些虚拟机从经典部署模型(以下简称:ASM)迁移到 Azure Resource Manager(以下简称: ...

  8. Django之modelform修改数据库

    工程包目录:https://github.com/kongzhagen/python/tree/master/Django 目的: 客户信息表Customer在前端以表单形式展示 提交Customer ...

  9. Java中的消息框

    JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...

  10. java vector的多线程安全是否有用

    在网上搜了不少文章,发现有不少没讲清楚的,也有不少好文,本文希望更易懂地描述该问题.如有不对的地方,请多多指正~~ vector的使用主要有如下两种场景:(1)vector所谓的多线程安全,只是针对单 ...