iosbundle开发,ios开发者

ios开发 怎么制作bundle

在我们使用第三方框架时,常常看到XXX.bundle的文件。

莘县网站建设公司创新互联,莘县网站设计制作,有大型网站制作公司丰富经验。已为莘县上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的莘县做网站的公司定做!

我们找到该文件,显示包内容,大致看到很多资源文件:图片、配置文本、XIB文件……

什么是Bundle文件?

简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个Bundle文件。方便在其他项目中引用包内的资源。

Bundle文件的特点?

Bundle是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的2进制数据。

iOS 创建bundle (xcode 13)

bundle 资源包 是静态的,不参与项目的编译,所以不占包的大小,如果bundle里面要包含xib,那么需要创建工程的形式,将xib 序列化为静态nib。bundle 里面是不能加入二进制文件的。

分别选择真机模式,和模拟器模式进行编译,编译通过后, command + ,

点击该路径,找到bundle文件

如果要打包上线,可能会有些问题,再针对不同的问题去解决就行。我还没有试,如果有问题,望指出。

iOS SDK(二):Bundle 创建 & 使用

一般情况下,使用 bundle 文件来存档 SDK 使用的资源文件,如:图片、多语言文件、storyboard编译文件等。

新建文件夹

修改文件名,后缀为 .bundle:

这样,就创建了一个 bundle 文件,将资源放置进去就可以使用了。

创建 bundle 工程

取名为 NiceBundle,此处的名字,即后面编译得到的 bundle 的名字

为方便管理,将工程跟 Framework 工程放置到一起

将支持类型设置为 iOS

设置最低支持版本和支持设备类型

编译得到 bundle 文件

导入图片,编译一下

可以发现,在 bundle工程中,图片放置在 image 文件夹下,编译后出现在 NiceBundle.bundle 根目录下,说明就算嵌套文件夹,编译后的资源文件都会在 bundle 文件根目录下。这个很重要,涉及到后面我们读取 bundle 文件的路径问题。

同 Framework 工程一样,为方便管理,可以将其添加到 xcworkspace 中。

将 NiceBundle.bundle 导入 Demo 工程,编译,查看 bundle 文件处于应用的哪个位置

由此,可以根据 bundle 在使用时的路径,得到该如何读取的方式。

可以看到,通过上面的方式,读取图片成功

同理,其它类型的文件,也可以通过上面的方式进行读取。

看懂请随手点赞,朋友们!????????????

iOS开发 创建Bundle及注意事项

创建文件夹TestBundle,并改名为TestBundle.bundle。然后再把资源文件放入该Bundle就可以了。

使用此方式的目的:可通过Xcode管理资源文件,且可多Target管理。

在 Build Settings 中修改 Base SDK 为 iOS

在 Build Settings 中修改 Versioning System 为 None

此处需要特别注意,一定要确认,如果设置不对,会导致Bundle中包含了可执行文件,会导致上架AppStore被拒。

在 Build Settings 中删除 Installation Directory 后面对应的路径。

在 Build Settings 中删除 Code Signing Identity 后面对应的路径。(先选择Other,再删除即可)

在 Build Settings 中设置 iOS Deployment Target 为 iOS9.0

一般情况下设置为最小的即可。

在 Build Settings 中设置 Skip Install 为 NO

在 Build Settings 中设置 COMBINE_HIDPI_IMAGES 为 NO

在 Info.plist 中删除 Executable file

确认生成的Bundle的 Info.plist , Bundle OS Type code 值是否为 BNDL ,如不是,手动修改为 BNDL

Cocoapods,让iOS开发更简单(三):实践经验汇总

相信各位读了之前的两篇文章,对pods的使用已经相当熟练了。不过在纷繁复杂的实际使用场景下,可能还是会遇到一些问题。本文就结合自己的实践经验,做一些快问快答,希望大家能多多补充交流。话不多说,那我们就即刻开始吧!

pod系列文章

Cocoapods,让iOS开发更简单(一):走近Cocoapods

Cocoapods,让iOS开发更简单(二):创建私有库

Cocoapods,让iOS开发更简单(三):实践经验汇总

一文带你快速分清静态库-动态库-Framework

一般推荐使用指定版本或范围版本号,以确保依赖的稳定性。

总结 :能用pod install解决问题的,就不要用pod update。因为pod update会把依赖库全部检查一遍,不仅慢有时候还会出现坑。

忽略Pods警告,有些第三方Pod集成进来会有一大堆警告信息,在Podfile中对应的target或分组下加上关键字inhibit_all_warnings!就可以把警告忽略。

作用:

在pods中用frameworks替代.a静态库。

场景:

swift项目pods默认开启(use_frameworks!),OC项目pods默认关闭(#use_frameworks!),同时需满足以下两点,

解析:

swift工程依赖了OC工程的话,需要use_modular_headers!

示例:

为某个 Pods 使用模块化标头,可以使用以下语法:

pod 'TestPodLib', :modular_headers = true

另外,当全局使用 use_modular_headers! 属性时,同时还可以使用以下方法从模块化标头中排除特定的Pod:

pod 'TestPodLib', :modular_headers = false

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

常用的方式调用pod中的素材是不生效的,因为默认是从mainBundle中读取的,如

打在pod中的素材已经不在mainBundle中而在对应组件下的bundle 里面,所以应该这么调用:

在用CocoaPods集成第三方库之后,默认情况下,使用类似#import XXX/YYY.h的方式引入第三方库的头文件。

pod search只会搜索本地缓存的库,如果想搜索到最新的第三方框架或者某个框架的最新版本,必须先使用pod repo update。

iOS SDK开发之图片资源Bundle打包

下面具体步骤如下...

1.创建Bundle资源包

2.新建一个Project


名称栏目:iosbundle开发,ios开发者
转载注明:http://pwwzsj.com/article/dsdiccj.html