file->new->project ->framework&library->cocoa touch framework
由于我调用了c语言,所以我的example的文件的后缀为mm,并且在h文件中引入了库中的文件
因此不能将这个h文件直接暴露给调用此framework的项目,有可能会在项目中产生header not found的情况,需要新建一个文件专门用来引用我新建的example中的内容
然后设置哪些可以让调用的项目看到:项目->target->build phase->Headers->将需要作为public的h文件拖入Public分类下面,其他的删除
然后运行,从菜单栏中的window->projects->点击右边的灰色小箭头,从finder中打开,从Build->Product->找到自己的framework文件,这个就是生成的framework文件
在以test为开头的函数里面写需要测试的内容,然后长按左上角运行按钮会出现第二个测试按钮,点击即可,或者command+u同样是测试
import方法:
#import "XXX.framework/Headers/XXXHeader.h"
这样就可以使用自己写的framework了
解决方法:
项目->target->build setting->搜索并找到选项 Allow Non-modular includes in Framework Modules->设置为yes
注意:这地方的选择的target不一定是最终的还是需要测试的,我这里报错是exampleTest报错的
参考:http://blog.csdn.net/zzzzzdddddxxxxx/article/details/51149243
Undefined symbols for architecture x86_64:
"operator delete(void*)", referenced from:
-[XXXsdk init] in XXXsdk(XXXsdk.o)
-[XXXsdk initWithIP:andPort:] in XXXsdk(XXXsdk.o)
"operator new(unsigned long)", referenced from:
-[XXXsdk init] in XXXsdk(XXXsdk.o)
-[XXXsdk initWithIP:andPort:] in XXXsdk(XXXsdk.o)
"___gxx_personality_v0", referenced from:
SSLService::login(char*, char*, int) in XXXsdk(XXXsdk.o)
-[XXXsdk init] in XXXsdk(XXXsdk.o)
-[XXXsdk initWithIP:andPort:] in XXXsdk(XXXsdk.o)
-[XXXsdk login:password:type:] in XXXsdk(XXXsdk.o)
-[XXXsdk configServer:port:] in XXXsdk(XXXsdk.o)
Dwarf Exception Unwind Info (__eh_frame) in XXXsdk(XXXsdk.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
项目->Target->Build Phase->Link Binary With Libraries ->点击加号搜索libc++ ->选择libc++.tbd
再运行就不会报错了
解决方法:可以再写一个专门的h文件引入要使用的类,再调用这个新的h文件就好,参照上面创建framework过程的第二步