iOS中生成并导入基于Swift编程语言的Framework

从iOS 8.0开始就引入了framework打包方式以及Swift编程语言。我们可以主要利用Swift编程语言将自己的代码打包成framework。不过当前Xcode 7.x在自动导入framework包的时候不太智能,因此需要做一些善后处理。

首先,在生成framework时,要暴露给外部的结构体、类、枚举、函数等都需要用public关键字来修饰,否则外部是访问不到这些类型以及函数的。此外,在结构体和类中,不能缺省初始化方法,必须用public暴露给外部,否则也一样无法被访问到。

其次,当我们生成好framework库之后,先打开framework的包目录,可以先用lipo命令将x86与arm不同处理器架构生成的二进制文件(exec)给整合一下,放到设备生成的framwork包内。然后将模拟器framework包中的Modules目录下的.swiftmodule目录中的所有模块文件拷贝到设备framework包中的相应目录内。这样,将处理完的设备framework目录包放到实际工程下就能通过编译和连接了。

最后,当我们要执行模拟器运行或真机运行前,将刚才处理完的framework包复制黏贴到products中最后生成的.app包的Framework目录下,这个需要手工拷贝完成,否则程序运行时会报image not found的错误~

时间: 2024-10-27 00:47:18

iOS中生成并导入基于Swift编程语言的Framework的相关文章

【swift】ios中生成二维码

ios开发中可以自己代码生成二维码,需要使用到一个框架 CoreImage CoreImage框架可以做滤镜,Gif动图,二维码等 先看效果图 下面直接贴上代码(OC也是下面一样的流程) 1 func createQRCode(){ 2 3 //建立一个滤镜 4 let qrFilter = CIFilter(name: "CIQRCodeGenerator") 5 //重设滤镜的初始值 6 qrFilter.setDefaults() 7 //通过KVC设置滤镜的内容(需要将字符串转

IOS中生成证书、真机调试、上线发布程序的步骤

前言:学习ios开发快一年了生成证书,真机调试,程序上线发布的总结,现在我来写下相关的步骤和心得: 真机调试现在没有苹果开发账号的情况下也是可以实现,现在我们叫的是有苹果开发者账号的情况来说明的这个问题: 开发账号的区别: 1.99美元的个人账号:只要去苹果官网付款就行了,但是你的信用卡要的支付外汇的才行的,这里推荐一个淘宝链接购买开发者账号:(http://tmqd.me/h.ZZTHi6?cv=AAFjfvYB&sm=4ce1c5). 2.99美元的企业账号:这个注册有点麻烦,需要邓白氏编码

ios 中生成二维码和相册中识别二维码

iOS 使用CIDetector扫描相册二维码.原生扫描 原生扫描 iOS7之后,AVFoundation让我们终于可以使用原生扫描进行扫码了(二维码与条码皆可)AVFoundation可以让我们从设备中获取到输入流与输出流,从而获取二维码中包含的信息. 实现原生扫描非常简单.1.先导入AVFoundation框架.<AVFoundation/AVFoundation.h>2.接着设置代理,实现代理回调方法AVCaptureMetadataOutputObjectsDelegate3.然后创建

ios 中生成随机数

ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变        int i = rand() % 5; 2.    srandom(time(0));        int i = random() % 5; 3.    int i = arc4random() % 5 ; 注:rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样. arc4ra

Swift编程语言资料合集

在本周二凌晨召开的苹果年度开发者大会WWDC上,苹果公司推出了全新的编程语言Swift.Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提升应用性能,同时降低开发难度. 据称,Swift仍然处于beta测试的阶段,会在iOS 8发布的时一同推出市场,用来取代现有的Objective-C语言.Swift推出之后,苹果公司也不会停止对Objective-C的支持,开发工具会同时支持两种语言. WWDC刚刚结束,在不到24小时的时间内,已经

Swift编程语言的相关资料

苹果官方Swift文档<The Swift Programming Language> 苹果开发人员Swift文档及介绍 网友整理的Swift中文文档<Apple Swift编程语言新手教程> 中文版Apple官方Swift教程(Github协作翻译中) Apple Swift编程语言新手教程 极客学院<一小时学会Swift语言>课程 Cocoachina翻译的Swift官方文档 Swift语言概览中文版 Swift英文文档markdown版 Swift开发视频教程[入

Swift编程语言中如何实现自定义类型的for-in循环(基于Swift 2.2)

我们在Swift编程语言中常常会用到for-in循环(在编程语言术语中又被称为for-each).此外,从Swift 2.2版本起,for循环将只支持for-in形式,而不支持for i = 0; i < n; i+=1 { }这种形式了,若要使用这种形式的话,只得用while或repeat-while来代替,或想办法转为for-in. 在Swift中,标准库已经定义了许多类型可直接支持for-in循环形式,比如Range.Array.Set.Dictionary等等.那么我们是否能自己定义一个

Swift编程语言中的方法引用(基于2.2版本)

由于Apple官方的<The Swift Programming Guide>对Swift编程语言中的方法引用介绍得不多,所以这里将更深入.详细地介绍Swift中的方法引用. Swift与Objective-C不同,由于Objective-C的方法都属于“消息”,因此直接用selector的消息签名即可表示一条确定的消息作为方法引用.而Swift的方法更类似于C++.Java中的方法,也就是说比Objective-C更静态,因此它不具有如此般灵活性. 另外,在Swift编程语言中,方法引用与C

iOS中静态库-.a文件生成和使用

最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一般的工程的话, 解决方法有两种: 我可把嵌套工程里面的文件拖拽出来. 修改一些属性什么的应该可以使用了 还有一种方法就是我把嵌套里面的工程整个生成一个静态库文件.把我需要使用的文件的.h暴露出来使用.但是这个工程比较奇葩. 他里面是c++de一些文件. 如果直接拖拽的话会有各种引用文件错误的问题.