封装qq分享静态库到cocopod
封装qq分享静态库到cocopod
1,创建framework库,到腾讯开放平台(open.qq.com)申请项目appid
2,将iOS SDK中的TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开发的目录下并引用。
3,添加SDK依赖的系统库文件。分别是”Security.framework”, “libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。
4,创建一个继承与NSObject的类,例如:CHShareUtil,测试方法:- (void)share;
在Build Phases中把.h文件放进public里。在静态库头文件里引入#import “CHQQShare.h"
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/QQApiInterfaceObject.h>
#import <TencentOpenAPI/TencentOAuth.h>
- (void)share
{
TencentOAuth*oauth = [[TencentOAuth alloc] initWithAppId:@“你的id,必须填写才能分享" andDelegate:self];
QQApiTextObject *txtObj = [QQApiTextObject objectWithText:@"text"];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:txtObj];
QQApiSendResultCode sent = [QQApiInterface sendReq:req];
}
5,创建一个项目,引用自己封装的framework,注意:在Build Rules里创建(如果没有)Copy Files,Destination选Frameworks,把自定义的framework拖过来。否则会出现崩溃:Reason: image not found。
6,在项目plist里面配置白名单
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>weixin</string>
<string>mqq</string>
<string>tim</string>
<string>wechat</string>
<string>mqqopensdkapiv2</string>
<string>mqqapi</string>
</array>
</plist>
7, 项目里调用: [[[CHQQShare alloc]init] share]; 即可实现qq分享
8,最后根据我的pod博客即可发布到pod。http://www.cnblogs.com/huntaiji/p/6908982.html
遇到找不到头文件QQApiInterface.h的问题,pod配置文件的问题,参考我的这俩主要配置:
s.source_files = "CHShareUtil", "CHShareUtil/**/*.{h,m}"
s.public_header_files = "CHShareUtil/CHQQShare.h"
全配置文件:
Pod::Spec.new do |s|
s.name = "CHShareUtil"
s.version = "0.0.3"
s.summary = "封装QQ分享到cocoaPod,无需复杂配置即可方便的调用,基于:qq V3.2.1"
s.description = <<-DESC
封装QQ分享到cocoaPod,无需复杂配置即可方便的调用,基于:qq V3.2.1 后期会集成微信等分享功能
DESC
s.homepage = "https://github.com/lichanghong/CHShareUtil"
s.license = "MIT"
# s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.author = { "李长鸿" => "lichanghong@b.360.cn" }
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/lichanghong/CHShareUtil", :tag => "#{s.version}" }
s.source_files = "CHShareUtil", "CHShareUtil/**/*.{h,m}"
s.public_header_files = "CHShareUtil/CHQQShare.h"
s.resource = "CHShareUtil/TencentOpenApi_IOS_Bundle.bundle"
s.requires_arc = true
s.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO' }
s.frameworks = 'Security','SystemConfiguration','CoreGraphics','CoreTelephony', 'UIKit', 'Foundation'
s.libraries = 'iconv','sqlite3','stdc++','z'
s.ios.vendored_frameworks = 'CHShareUtil/TencentOpenAPI.framework'
end
封装qq分享静态库到cocopod的更多相关文章
- iOS开发之静态库(三)—— 图片、界面xib等资源文件封装到.a静态库
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 新建工程:File -> Ne ...
- iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...
- 自己在linux上编译、链接、动态库和静态库的学习笔记
在平常的项目中,我们都是使用公司要求的makefile.makedebug一类的文件,因此,在编译.链接.生成和链接动态库与静态库的时候,我们只是简单的使用一些已经设置的变量,只是简单的修改.添加一些 ...
- 封装ios静态库碰到的一些问题(三)
静态库封装好以后,就存在一个问题,静态库,模拟器的静态库何真机的静态库是分开的,那么能够合并,答案是肯定的,但是必须我们手工在终端工具下执行命令合并 lipo -create Release-ipho ...
- 封装ios静态库碰到的一些问题(一)
封装IOS动态库,碰到的第一个问题,就是资源文件的问题,如果将你的程序封装成为静态库,那么静态库中不会包含资源文件和xib文件,这个时候就需要自己封装bundle文件了,而笔者开发环境默认是xcode ...
- 经验分享:Xcode 创建.a和framework静态库【转】
作者:Haley_Wong 最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态 ...
- VS2012(update3)编译Qt5.1.1 32位静态库debug-and-release版及结果分享
1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.1.1.zip这个文件. 2.安装python 3.解压缩qt-everywhere-opensource ...
- 经验分享:Xcode 创建.a和framework静态库
最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. iOS中的 ...
- iOS xcode创建静态库封装自己的SDK及使用
https://www.cnblogs.com/JustForHappy/p/5773039.html 一,静态库和动态库的区别在这里就不说了,个人感觉如果是自己封装提供别人下载的话应该是静态库比较方 ...
随机推荐
- git不提交某个文件
在版本库中的文件,即使维护在.gitignore也不管用了.要先移除. 比如Constants.java,进入到这个文件目录下: 第一步:git rm -r -n —cached Constants. ...
- http://zaojiasys.jianshe99.com 建造师数据泄漏,可以查看全部所有人的信息!
- SQL Server 创建索引方法
转自 <SQL Server 创建索引的 5 种方法> 地址:https://www.cnblogs.com/JiangLe/p/4007091.html 前期准备: create tab ...
- 笨办法学python 文本复制
本来面目 from sys import argv from os.path import exists script, from_file, to_file = argv print(f" ...
- 初遇sass的两个小问题
关于sass大家都知道是一种css的开发工具,原本的css没有变量 参数一类的东西,所以比较死 效率较慢. sass就是在css里面加入了一些编程的元素如变量等,让css能够更灵活,提高效率. 刚接触 ...
- 二进制转base64
一. 以fetch的获取数据 1. response(后台返回): const buffer = response.arrayBuffer(),将二级制转成arrayBuffer类型 2. buffe ...
- Android最火热修复实战
Sophix官网文档地址 https://help.aliyun.com/document_detail/53240.html 快速接入 项目build.gradle的repositories节点下添 ...
- 【Java集合系列六】LinkedHashMap解析
2017-08-14 16:30:10 1.简介 LinkedHashMap继承自HashMap,能保证迭代顺序,支持其他Map可选的操作.采用双向链表存储元素,默认的迭代序是插入序.重复插入一个已经 ...
- Apache强制WWW跳转以及强制HTTPS加密跳转的方法
一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则 ...
- 关于Django的配置
一. 下载与安装Django 登录Django的官网,https://www.djangoproject.com/download/,在网页的左边有下载压缩包,下载后解压在py ...