OC(一):自定义 Framework创建及使用


昨天晚上爬帖,整理出的成果,有用就拿去,不谢. 下面正式开始~~~

分为两大步:

             一, 自定义 Framework

             二,使用Framework


一, 自定义 Framework

1,创建自定义framework 工程


2,创建自定义 framework 的类,相信大家都会了.但是还贴图.



3,将创建的类引入到以工程名命名的头文件中

4,配置 framework, 将要暴露的头文件配置好,很简单.

到此为止,直接编译得到的 framework 就是可用的,但是是有局限的,只能是在模拟器上的,真机直接就 GG了 ,恐怕为了 get 这个技能不只是为了ZB,所以为了真正的技术,还是要继续往下刨.comeon~~ follow me!



5,在原来的工程中,创建新的target, 名字按自己心情取.


然后添加 shell 执行脚本



shell 脚本如下:

# Sets the target folders and the final framework product.

# 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME

# 例如: FMK_NAME = "MyFramework"

FMK_NAME=${PROJECT_NAME}

# Install dir will be the final output to the framework.

# The following line create it in the root folder of the current project.

INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework

# Working dir will be deleted after the framework creation.

WRK_DIR=build

DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework

SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework

# -configuration ${CONFIGURATION}

# Clean and Building both architectures.

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build

# Cleaning the oldest.

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"

rm -r "${WRK_DIR}"

open "${INSTALL_DIR}"

6,选择刚刚创建的 target,command+B/R 编译,直接弹出生成的framework ,就是它,万能的 fw.


主要产物

二,使用Framework

1,创建一般的工程,名字无所谓,引入上面生成的 framework

重中之重来了,这个必须要添加的(特大号的字),直接上图

不然就是这样的结果:

  Reason: image not found

以上完成后,就是调用了 ,so easy

结语:

是不是很简单,上手体验吧,get 新技能的必杀技,有了这个就可以让你的工程很简单,也可以发自己的framework 让别人用,高大上,有木有啊!!!哈哈


=============

2017年01月10日23:12:51 补充

检查 pod 版本,不能过低,如果低了自行更新 gem install cocoapods

注册 cocoapods : pod trunk  register 110@qq.com ‘名字’ --verbose,去邮箱验证邮件

查看自己的信息 pod trunk me


蓝线为主要的命令

添加其他的维护人

pod trunk add-owner 名字  邮箱

先 clone 工程再创建podspec 

pod spec create https://github.com/02002love/SToolsKit  可以自动生成很多,修改podspec 文件,

如下:

Pod::Spec.new do |s|

s.name        = "SToolsKit"

s.version      = "1.0.0"

s.summary      = "自定义组件"

s.description  = "i'm song"

s.homepage    = "https://github.com/02002love/SToolsKit"

# s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"

#s.license      = "MIT (example)"

s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

s.author            = { "xiaowei" => "songjinwei007@gmail.com" }

# Or just: s.author    = "xiaowei"

# s.authors            = { "xiaowei" => "songjinwei007@gmail.com" }

# s.social_media_url  = "http://twitter.com/xiaowei"

# s.platform    = :ios

# s.platform    = :ios, "5.0"

# s.ios.deployment_target = "5.0"

# s.osx.deployment_target = "10.7"

# s.watchos.deployment_target = "2.0"

# s.tvos.deployment_target = "9.0"

s.source      = { :git => "https://github.com/02002love/SToolsKit.git", :tag => "v#{s.version}" }

s.source_files  = "Source/**/*.{h,m}"

s.exclude_files = "Classes/Exclude"

# s.public_header_files = "Classes/**/*.h"

# s.resource  = "icon.png"

# s.resources = "Resources/*.png"

# s.preserve_paths = "FilesToSave", "MoreFilesToSave"

# s.framework  = "SomeFramework"

# s.frameworks = "SomeFramework", "AnotherFramework"

# s.library  = "iconv"

# s.libraries = "iconv", "xml2"

s.requires_arc = true

# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }

# s.dependency "JSONKit", "~> 1.4"

end


生成文件

执行:pod spec lint SToolsKit.podspec 校验文件,出现错误

问题1


问题2

待解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容