framework/bundle

近期需要使用sdk,现将最近所看以及自己所遇问题整理一下,一边查看

一:创建framework

1. 创建frameWork: 打开Xcode,选择File ----> New —> Project 选择iOS ----> Framework & Library —> Cocoa Touch Framework。

2. 创建好之后先把需要设置的地方设置好,以免后面遇到问题。

  • Build Settings -〉Build Active Architecture Only 设置为NO

  • TARGETS (SDKDemo) -》 Build Settings -〉Mach -O-type 将其设置成静态库 Static Library

  • 调整最低支持的iOS系统

  • 如果 SDK 有用到 Category,注意项目设置 Other Linker Flags 添加 -ObjC

  • TARGETS (SDKDemo) -》 Build Settings -〉ENABLE_BITCODE 设置为NO . 否则真机上跑会报ld: -bundle and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together

  • 选择Framework Target,在Build Settings里面搜索Link With Standard Libraries,改为No

    3.导入原文件
    在这里插入图片描述

将需要公开的.h文件移到public中。 选择Framework Target,在Build Phases的Headers里面将需要暴露出来的头文件设置好。public是可以被引用的,用户可以看到的,例如用户在使用的时候import “xxxxxx.h”,project和private是不暴露出来的。
在这里插入图片描述

然后将要公开的文件在sdk的.h文件中写出,不然后面使用s d k时,会提示文件找不到

在这里插入图片描述

二:创建资源文件bundle

生成的SDK,一般会有一些资源文件,那么最理想的是将资源文件也打包成为bundle给应用方一起使用。
1. 创建bundle, 在工程中创建一个新的target(SDKDemoResource),点下图左下方+号

在这里插入图片描述

选择macOS–》bundle
在这里插入图片描述

2. 创建好之后需要设置的地方:

  • Build Settings–》Enable Bitcode设置为NO
  • 将baseSDK改为iOS
    在这里插入图片描述
  • COMBINE_HIDPI_IMAGES改为NO
    在生成资源bundle文件时,发现编译好后的图片文件从png转成了tiff,这在使用sdk时无法识别图片。
    解决的方法: 经查是需要将编译设置COMBINE_HIDPI_IMAGES改为NO. 如下图所示:在这里插入图片描述

3.将必要的资源文件添加进去
如下图:可以将图片/xib文件添加进去
在这里插入图片描述

  • 图片加载方法:
    backImageView.image = [UIImage imageNamed:@“SDKDemoResources.bundle/backImg”];
  • xib加载方法:
    NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@“SDKDemoResources” ofType:@“bundle”];
    NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
    [self.tableView registerNib:[UINib nibWithNibName:@“VideoListCell” bundle:bundle] forCellReuseIdentifier:@“VideoListCell”];
    就是将有用到[NSBundle mainBundle]的地方,替换成上面定义的 NSBundle *bundle 。

三:切换scheme 然后运行,得到静态库和bundle 资源文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值