这几天在做个SDK遇到了很多问题,现在做完了想把制作Framework的过程分享出来(我这个SDK中也包含了其他的第三方很多Framework,所以踩了很多坑)

首先需要创建个Framework工程:

然后会有个“工程名.h”文件,有这么一句话:

In this header, you should import all the public headers of your framework using statements like #import <PayFramework/PublicHeader.h>

所以你需要这么引用你想暴露的头文件:

#import <PayFramework/FWPay.h>

#import <PayFramework/FWorder.h>

#import <PayFramework/FWPayManager.h>

然后看下面的图:

在public中的是你想暴露出去的头文件,在project中的是你隐藏的文件,在public中的头文件中你不能引用你未暴露的文件,若需要使用你可以在.m文件中引用.

如果你的工程中含有第三方的Framework你需要在Copy Files中添加进去。Copy Files中一般都隐藏的你可以通过点击左上角的+添加选:New Copy Files Phases。

然后看图:

在Destination中选择Frameworks 然后在Name中添加第三方的Framework

有的时候你的Framework或许会需要适应低版本你可以这么做:

在Build Settings中选择Deployment:

然后为了方便他人的使用你可以把系统的Framework添加到你的工程中:

最后为了可以在真机上运行你的Framework你需要选择:Build only Device 然后快捷键common + B来编译你的工程这样你会得到一个Framework它可以运行在armv7和arm64指令集中

然后选iPhone 4s编译你的工程可以得到一个能够运行在i386指令集的Frmework

然后选iPhone 6编译你的工程可以得到一个能够运行在x86_64指令集的Frmework

你可以同过命令:lipo -info ...路径/PayFramework查看Framework的信息

用命令lipo -create 路径1/PayFramework 路径2/PayFramework -output PayFramework 合并Framework

如:

lipo -create /Users/stone/Desktop/支付打包测试/6/PayFramework.framework/PayFramework /Users/stone/Desktop/支付打包测试/Debug-iphoneos/PayFramework.framework/PayFramework -output PayFramework

当在新工程你使用自己创建的Framework时可以在General下的Embedded Binaries下添加你的动态链接库:

或者你也可以将动态库当做一个资源文件使用在Build Phases中的Copy Bundle Resources中添加你的动态库,然后就可以用bundle的方式使用动态库了(在此之前你获取会需要手动将动态库添加到自己的沙盒中),这种方式添加的动态库要这么使用:

 NSString *documentsPath = [NSString stringWithFormat:@"%@/Documents/FWPaySdk.framework/FWPaySdk",NSHomeDirectory()];NSError *err = nil;NSBundle *bundle = [NSBundle bundleWithPath:documentsPath];if ([bundle loadAndReturnError:&err]) {NSLog(@"bundle load framework success.");} else {NSLog(@"bundle load framework err:%@",err);}Class worder = NSClassFromString(@"FWorder");FWorder * order = (FWorder *)[[worder alloc] init];

iOS中制作动态链接库Framework相关推荐

  1. bazel 链接第三方动态库_C语言学习篇(31)——linux中制作动态链接库

    引言 前面我们讲解了什么是函数库(函数库就是一些事先写好的函数集合),函数库有什么作用(可以打包我们的编写的源代码,供他人使用,同时源码不可见,保护了自己的知识产权)以及函数库有2种提供方式:静态链接 ...

  2. iOS中制作一张水印图片

    如果这篇文章帮助到了您,希望您能点击一下喜欢或者评论,你们的支持是我前进的强大动力.谢谢! 我们在很多APP中都会看到水印图片,例如下面微博中的一张图片 下面就来分享一下怎么制作一张水印图片吧 首先生 ...

  3. iOS中js与objective-c的交互(转)

    因为在iOS中没有WebKit.Framework这个库的,所以也就没有 windowScriptObject对象方法了.要是有这个的方法的话 就方便多了,(ps:MacOS中有貌似) 现在我们利用其 ...

  4. iOS 静态库制作,Framework制作,Bundle制作

    在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件.然而你可能不清楚怎样让其他开发者更方便地去复用它. 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法 ...

  5. iOS最新制作Framework总结

    去年为公司开发了自己的SDK供外部客户使用,一直没来得及写个总结,最近时间稍微宽松点,写两篇文章总结一下iOS中Framework制作的流程.本文不会介绍iOS中静态库.动态库的基础知识,只是图文详解 ...

  6. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

  7. 在linux中制作IOS文件

    1.从光盘中制作ISO文件: 把光盘放入光驱中(注意不需要挂载光盘) 格式:cp  /dev/cdrom  ISO文件名 执行下列命令: #cp  /dev/cdrom  mycd.iso 可以使用f ...

  8. iOS架构-制作静态库.a和.framework 的相互依赖(10)

    有一句名言:当你知道的东西越多,你才会发现你不懂的东西越多. 现在我有点体会到了,当我去了解静态库,我发现我要学习脚本:当我接触编译C/C++库,我发现我要去了解交叉编译:当我想了解组件化架构,我发现 ...

  9. 手机直播app制作时怎样在iOS中实现富文本

    我们在观看直播时,经常会看到有的主播房间名字下面带有话题小标签,比如#搞笑的一天##悲伤的瞬间##双十一买了点啥#等,虽然看起来是很小的一个功能,但是在进行手机直播app制作时,在iOS中通过富文本的 ...

最新文章

  1. TinyDBCluster Vs routing4db
  2. 《大话设计模式》读书笔记-第8章 工厂方法模式
  3. 【学习笔记】比较分别用prim和kruskal实现最小生成树和算法优化方案
  4. MySQL的查询缓存
  5. mysql数据库切换
  6. Mac OSX:Powerline风格的zsh配置
  7. 浅谈提升C#正则表达式效率
  8. c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解
  9. 【python】将excel转成json
  10. Java程序设计应用教程_Java程序设计及应用开发教程.pdf
  11. ubuntu系统如何安装最新版R语言?
  12. 阿尼亚二次元动漫鼠标指针最新教程+素材打包
  13. java treemap的排序_Java TreeMap的排序(转)
  14. 405错误,java.io.IOException: The temporary upload location [/tmp/tomcat.22.83/work/Tomcat/localhos解决办法
  15. 一条命令(dd)制作Centos(Linux)优盘(U盘)启动盘
  16. 视频剪辑工具,图片批量添加背景,支持图片、视频背景
  17. 用C#实现一个简易的Mips汇编器
  18. 邮政储蓄银行 软件开发 2020暑期实习 面试回忆
  19. Linux CentOS7 查看磁盘空间占用
  20. 验证哥德巴赫猜想:任何一个偶数(大于2)都可以由两个素数组成,要求输出两个素数差值最小的素数对

热门文章

  1. IOT技术专家伏治军谈IOT技术发展趋势
  2. 百度apollo novatel_parser.cc部分解算代码
  3. 前端晋升ppt_【PPT】快手前端架构师分享:前端发展史
  4. LogUtil日志打印工具
  5. arduino花盆含水量_Arduino教程┃模拟土壤湿度传感器的介绍
  6. SSRF漏洞介绍及利用
  7. 安卓笔记10.常用布局——相对布局
  8. 智慧园区信息化管理系统发展现状及难题
  9. CSS Html 导入其它字体
  10. 从excel中读取数据,然后拟合幂律分布