iOS framework 制作教程
发布日期:2021-11-22 04:28:52 浏览次数:1 分类:技术文章

本文共 1510 字,大约阅读时间需要 5 分钟。


XCode3.2.5下的制作:

我们使用一种变通的方法来制作 iOS framework,废话不多说,上步骤:


1.打开Xcode创建一个“Cocoa Touch Static Library”工程,并删除现有的target.


2.右键project选择添加New Target,在弹出的窗口中找到Cocoa ,在Cocoa右侧窗口中选择“Loadable Bundle”。

注意:到这步的时候不要选择framework,应为framework是MAC OS上的,iOS是不支持的,但是iOS 支持“Loadable Bundle(cfbundle)”


3.target 上右键get Info 在Build  Settings下面设置下面的5项内容:

a.搜索Wrapper Extension,把默认的bundle改成framework.

b.修改Mach-O Type 为Relocatable Object File.

c.关闭Dead Code Stripping ,把勾去掉!

d.关闭Link With Standard Libraries.

e.移除所有关于“AppKit”  和  “Foundation”的参考,删除“Other Linker Flags”的所有值,并删除“GCC_PREFIX_HEADER“的值!


4.在frameworks Info.plist文件中将Bundle OS Type code的值BNDL改为:FMWK,并且在target的 get info窗口中的Properties标签栏下也将Type改为FMWK。



5.在工程中添加你的代码。

例如:我们添加一个类

#import <Foundation/Foundation.h>


@interface Help : NSObject {


}


- (void)show;


@end


#import "Help.h"



@implementation Help


- (void)show

{

    NSLog(@"framework!!!");

}


@end



6.在target上右键Add---New Build Phase---New Copy Headers Build Phase,此时target下面会多出一个灰色的文件夹—Copy Headers。


7.然后将我们刚才添加的Help类的.h文件从上面拖到下面的Copy Headers中,再在该文件夹上右键—Set Role---Public.


8.从上面将所有要打进framework的.m文件拖到target下的Compile Sources文件夹里。


9.编译,如果出错,那就在  Build下面的 将“Other Linker Flags “设置为 –ObjC 、-all_load、-lxml2,不要写在一起,请一项项添加。


注意:如果编译出现大量的错误,说明你没有删除“AppKit”  和  “Foundation”的参考,


编译后参考:




在build/Debug-iphonesimulator下面出现一个framework文件夹:


  



使用我们刚才制作的framework


在新的工程中导入framework



我们把刚才制作的kibernet.framework拷贝到新的工程的目录下,选择kibernet.framework文件夹


添加后的效果图




使用framework中的类:

导入头文件




ViewDid Load中测试一下:


    

输出结果:


 



XCode4下静态库的制作:可参考网上资料:

附件: 
   (13 K) 下载次数:690
附件: 
   (20 K) 下载次数:652

转载地址:https://blog.csdn.net/zxwcool123/article/details/50489036 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LLDB调试命令初探
下一篇:计算缓存大小

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月06日 23时23分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

lsof查看占用高_lsof解决磁盘占用过高,查询却无大文件处理一例! 2019-04-21
python调用oracle过程 权限不足_oracle-存储过程提示 ORA-01031: 权限不足 2019-04-21
java ee6教程_Java EE 极简教程(六):框架的选择 2019-04-21
java io流过滤流_IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流 2019-04-21
java预处理指令_Java程序员学C++_1_C++中的预处理命令 | 学步园 2019-04-21
java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍... 2019-04-21
java中的%不对 如何处理_Java心得--异常及其处理 2019-04-21
java 上传速度计算_java常见3种文件上传速度对比和文件上传方法详细代码 2019-04-21
java 中区分月份_输入一年当中的月份,判断是哪个季节.(用java编写并且用到了import java.io.*;)... 2019-04-21
java 试图模版_图解Java设计模式之模板模式 2019-04-21
java.exe占用cpu_Windows服务器java.exe占用CPU过高问题分析及解决 2019-04-21
支付宝 java 乱码_支付宝即时到账接口中文乱码问题 2019-04-21
java中的handler理解_handler 与message的一些理解 2019-04-21
JAVA礼物题_这些Java面试题,你一定要记住! 2019-04-21
java 隐藏email_java Email 2019-04-21
linux下qt浏览word文件内容,Qt获取office文件内容 2019-04-21
amd锐龙笔记本cpu怎么样_不知不觉已经15款 AMD Ryzen锐龙笔记本处理器盘点 2019-04-21
syslog打印不带等级_(转)syslog日志等级 2019-04-21
librosa能量_librosa语音信号处理 2019-04-21
android日期选择区间控件_Android时间区间的选择 2019-04-21