• 制作framework(在自制的framework中引入其他framework)


     
    1.创建iOS Framework工程
    首先我们需要创建一个iOS的CocoaTouch工程,点击Next,输入我们Framework的名字即可。下方我们暂且将该Framework的名字命名为MyFramework。如下所示:

     

     2.设定兼容版本
    创建完工程后,我们要选择Deployment Target, 此处我们选择的是8.0。也就是说此处我们封装的SDK所支持的iOS系统版本是iOS8.0+。

     3.选择“静态库”
    我们创建的framework默认是动态库,所以我们要讲Mach-O Type设置为静态库“Static Library”,如下所示。

     4.引入源代码并进行编译
    ①这里我创建的是SayHello类。
    .h文件中

    #import <Foundation/Foundation.h>
    
    NS_ASSUME_NONNULL_BEGIN
    @interface SayHello : NSObject
    
    - (void)sayHello;
    
    @end
    
    NS_ASSUME_NONNULL_END

    .m文件中

    #import "SayHello.h"
    
    @implementation SayHello
    
    - (void)sayHello {
        NSLog(@"hello world");
    }
    
    @end

    下方截图中是在Build Phases下的Headers中进行设置的。将用户可以看到的头文件房子Public中,用户看不到的放在Project中。如下所示。

    将Run更改为release模式,选择真机编译完后,在Products下会生成相应的Framework, 然后通过Show in Finder进行查看即可

    将framework导入到新项目中,other link flags 配置-Objc即可调用

    自定义Framework 报错 Could not build module

    调用解决方法:找到buildSetting--Allow Non-modular Includes In Framework Modules 改为YES

    将第三方.framework集成到自己的静态库里

    调举个例子,将高德framework集成到自己的静态库里,打包出来

    到高德官网下载定位和基础的两个framework,下图示例:

    .

     双击进入,找到AMapFoundationKit, 重命名为.a文件,并拖入header文件夹中.将header文件夹改名为AMapFoundation,另外一个framework同理操作

    创建framework项目,将AMapFoundation文件夹拖入项目中,导入高德相关依赖库

     接下来生成framework的操作和上边操作一样,编译过后生成framework.

    新建项目,导入framework,修改release,ios9.0,添加高德依赖库,添加-Objc,添加定位权限,添加网络权限,调用即可.

    可能会有一些头文件导入后的文件层级关系的错误,  根据自己文件所在位置酌情修改即可.

    !!!!!!!!!!!如果自己framework中使用的其他framework不支持某个架构的话(arm7,arm64等)

    首先cd到这个问题framework中,lipo -info frameworkName查看该framework都支持什么架构,如果确实没有报错的架构,只能是让自己的framework也不支持该架构.

    到Build Setting中,Architecutres---Architecutres默认的另外添加arm64 或者arm7

  • 相关阅读:
    Git 码云操作
    多线程基础必要知识点!看了学习多线程事半功倍(转)
    Spring技术内幕:设计理念和整体架构概述(转)
    单例模式你会几种写法?(转)
    Linux-看完这篇Linux基本的操作就会了(转)
    每天一个linux命令9之crontab 定时任务
    在linux下给grep命令添加颜色
    springmvc使用StringHttpMessageConverter需要配置编码
    MySQL 中的 base64 函数
    spirng整合rmi
  • 原文地址:https://www.cnblogs.com/baxiu/p/13666194.html
Copyright © 2020-2023  润新知