|-----------projectA(static framework)|
workspace |-----------projectB(static framework)|
|-----------projectC(static framework)|
|----------projectApp|
projectA 需要引用静态库xxFramework,
projectB 需要引用静态库xxFramework,
projectC 需要引用静态库xxFramework,
projectApp 需要引用静态库xxFramework,
第一步,在Build Phases-->Link Binary With Libraries--->添加xxFramework
第二步,在Build Settings-->Search Paths--->Framework Search Paths--->添加xxFramework所在的路径
xxFramework作用就相当于是引入了头文件, 子工程中,并没有引入xxFramework中的可执行文件
因此编译projectA , projectB , projectC并没有将xxFramework中的可执行文件,编译到对应的projectA , projectB , projectC framework中,仅仅是引入头文件,真正链接是在projectApp中,将projectA framework projectB framework
projectC framework xxFramework进行链接起来。
另外需要注意的是,如果在projectA(static framework)中,想要把xxFramework中可执行文件(binary file)打入到静态库中,必须将xxFramework中可执行文件单独引用出来,也就是说如果引入framework路径,只是告诉引入了头文件,二进制可执行文件的引入,
必须指定二进制可执行文件的路径。
xx.a+xx.h (静态库文件)
projectA 需要引用xx.a+xx.h
projectB 需要引用xx.a+xx.h
projectC 需要引用xx.a+xx.h
也就是说,如果三个静态库工程都需要同一个静态库xx.a,这个时候,可以把在projectA , projectB , projectC 中只引入头文件xx.h,不需要引入xx.a,在projectApp中,在Build Phases-->Link Binary With Libraries--->引入xx.a, 在Build Settings-->Search Paths--->Library Search Paths--->指定库文件的路径,在Build Settings-->Search Paths--->Header Search Paths中指定库文件的头文件的路径,
就可以达到共用的效果了。