美文网首页
ios 制作framework含多个库(framework)

ios 制作framework含多个库(framework)

作者: DaPeng_b540 | 来源:发表于2019-09-29 14:06 被阅读0次

    制作framework 

    1.首先新建一个项目,选择Cocoa touch Framework

    Cocoa touch Framework

    2.然后随便取一个名字

    3.导入将要封装在framework里面的第三方库

    导入第三方库

    4.导入将要封装成framework的代码拖入工程

    5.选择工程文件>target第一项>Build Setting>搜索linking,然后几个需要设置的选项都显现出来,首先是Dead Code Stripping设置为NO,网上对此项的解释如下,大致意思是如果开启此项就会对代码中的” dead”、” unreachable”的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,将此项关闭也未曾不可。

    The resulting executable will not include any “dead” or unreachable code

    然后将Link With Standard Libraries关闭,我想可能是为了避免重复链接

    最后将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。

    6.然后将需要公开的头文件从Project中拖入Public,至于是否需要将私有的头文件拖入Private,我觉得直接放在Project中即可,若是Private中有头文件,打包以后的framework中会多出一个Private的文件夹包含着放入Private的头文件,不过我觉得如果是私有最好还是不要让别人看到。

    7. Build Settings ->Build Active Architecture Only设置为NO. (图中的选项如果设为YES,会导致其编译时只生成当前机器的框架;将其设置为NO后,发现用模拟器编译后生成的framework同时包含x86_64和i386架构。)

    8. Build Phases -> Link Binary With Libraries 添加需要封装在内部的第三方framework

    9. 添加使用Cocoapods管理第三方

        1.cd到项目目录下 vim podfile

        2.    platform :ios,'8.0'

                target 'MyLiveSDK' do

                use_frameworks!

                pod 'AFNetworking', '~>3.0.4'

                pod 'MBProgressHUD', '0.9.2'

                  target'MyLiveSDKTests' do

                    inherit! :search_paths

                  end

                end

        3. pod install

    10.添加framework内部使用的图片和音乐

        1.创建Bundle        

        2. 把Base SDK  改成 iOS

        3.直接把图片或者音频资源导入就可以

        4.Command+B 直接Build一下 生成.bundle

        5.把生成的.bundle直接拖入到相应的framework

        6.获取图片的时候    .bundle/图片名字

    10.修改 Debug  改为 Release

    11.下面就开始编译,先选择真机,先清理一下, 按下Command+Shift+K, 在按下Command+B Build一下的到的是支持真机的framework 然后在随意选择一个模拟器在次Build一下得到支持模拟器的framework

    当红色变成黑色的时候就好了

    12.合成SDK 

        1、lipo –create 真机路径 模拟器路径–output 生成的新路径。

        2、把新生成的文件替换掉真机路径sdk内的相同文件。

        3、真机路径的Framework就是最终可以使用的路径。

    13.将这做好的framework直接拖到要使用的工程中  导入framework 内部第三方需要的依赖,并且导入.bundle需要的图片资源   

    相关文章

      网友评论

          本文标题:ios 制作framework含多个库(framework)

          本文链接:https://www.haomeiwen.com/subject/ztygextx.html