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

待解决

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值