如何在mysql中创建表Xcode 6 iOS 8中创建一个FrameWork

声明:本文章转载自的博客
1.先创建一个项目,选择Cocoa touch Framework,点击下一步
2.把自带的.h文件删除点,再将要打包成的.framework源代码拖入项目中
3.项目设置,选择工程-&targe-&build setting,在搜索框中搜索linking,进行如下设置
4.把要公开的头文件已到Public中去,在使用.framework时只能调用公开.h文件中的声明
5.开始编译,选择Generic iOS Device 或者 真机,编译一下,再选择模拟器环境编译一下
6.上面的操作会出现两个版本的.framework,点击Products中的framework,选择右键在文件夹中查看。
7.真机版本适用于真机调试开发,模拟器版本适用于模拟器调试开发,将两个版本中的 CWen 文件通过终端合并成通用的,终端指令:lipo -create&+上面两个文件的路径 +-output+
合成后文件的输出路径;
8.如果出现下面的提示,说明输出路径有相同的名字
9.将合并生产的CWen文件替换真机生产的CWen.framework中的CWen文件
10.创建一个新的项目,将替换后的CWen.framework引入到项目中
11.接着在工程的search path中加上此framework的Headers的路径
12.按下Command + R进行编译,没有错误的话在开发中引入.framework中的头文件就可以使用了,下面是我在集成框架遇到的错误,这种情况是编译没有错误,运行的时候就会报这样的错误,也就是说在链接的时候发生了错误。
13.解决方法:在tagert中的Other Linker Flags 中加入所需的参数,一般是这三个:-ObjC、-all_load、-force_load,我添加了第一个问题就解决了。
14.至此,我的.framework制作和使用就完成了,使用过程:在项目的全局.pch文件中包含了.framework头文件,刚开始编写代码时没有提示, clear一下再编译就好了。遇到的问题也就是这些,后期使用中如果遇到其他的问题会再来这里补充,刚刚接触这一块,有什么不对的地方希望大家可以指出。
15.问题补充:
如果制作的.framework中包含其他第三方框架,而且其他第三方框架中有bundle文件,在拉入的时候可以忽略这个bundle,制作.framework成功后,可以将这个.framework和刚才那个bundle文件放入一个文件夹,再拖入其他项目中,或者同时将.framework和bundle拖入其他项目中
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31207次
排名:千里之外
原创:32篇
转载:11篇
评论:20条
(3)(2)(5)(6)(2)(2)(2)(1)(1)(3)(1)(2)(2)(3)(7)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'IOS&Framework制作全攻略
创建一个Framework 项目
1.创建项目
让我们一步步的来完成整个制作过程。在XCode重创建按一个IOS项目,选择任意一个应用程序模版,这不是最主要的,当这个模版在Framework导出前可以测试你的框架代码。
2.添加框架类
记住要创建一个“import
header”,在使用框架时通过头文件引用可以快速找到所有框架类。在之后还可以通过设置公共和私有头文件,来保护核心文件不被查看。记住这样的结构能完成一个很好的框架的90%,所以你必须尽量遵循objctive-c的类名、方法、属性、功能等。
3.创建一个Framework Target
通过点击你项目,选择右面视图的TARGETS点击左下角Add
Target按钮,与创建&“Cocoa Touch Static Library” 和
&“Cocoa Framework” 不同我们创建一个"Bundle" Target。
因为“Cocoa&Framework”Target
不能被编译到armv6/armv7和Xcode不允许使用“静态库”中的“Cocoa&Framework”,所以我们不能用这个Target。另外,不是使用“Cocoa
Touch Static Library”,因为它不能使用我们想要创建的Framework。
4.设置 Bundle
和以往的教程不同,你不需要做任何删除。因为所有的东西都会被忽略。选中刚刚创建的Bundle,选择 "Build
Settings" 选项卡。
修改一下设置:(可以通过搜素找到这些选项)
重要提示:由于Xcode的4.x的架构ARMv6的已不再支持。所以我还要作一下操作:
更改以上设置后关闭了Xcode,在Finder中找到:xcodeproj(项目文件),然后选择“显示包内容”。
到一个文本编辑器打开文件“project.pbxproj”。
与VALID_ARCHS=“$(ARCHS_STANDARD_32_BIT)”删除所有行。
5.添加源代码到 Framework
首先选择TARGETS下面创建的framewok。然后选择Build
Phases选项卡。点击右下角的“Add Build Phase”按钮,选择“Add Copy Headers”。
打开刚刚创建的“Copy
Headers”区域,这里可以分离你的公共头、私有头和工程头。
区别如下:
公共头:这里的头文件可以让其他的开发者通过xcode查看内容。
私人头:这里的头文件不能让其他的开发者通过xcode查看内容。
项目头:这些头将不会被编译到最终框架中,这只是让编译器创建自定义的框架。
现在将所有头文件添加到里面去。
参考下图:
创建通用框架
6.创建通用的Targets
使用锂工具。它是一个iOS
SDK工具,它是在“/Platforms/iPhoneOS.platform/Developer/usr/bin”中,其文件名是”lipo“。但我们并不需要知道它的位置,Xcode会给我们处理。
点击"Add Target"
如图选择:
它不直接创建任何产品,它的目的是聚合另一个“target” 或
运行一些脚本,使用他通过"lipo”工具运行脚本,最终生产framework。
7.使用 Lipo
工具运行脚本
这就是我们最重要的部分,下面的脚本内容通过 Lipo 工具编译成我们想要得到的框架结构。
选中刚刚创建的Aggregate标签,选中Build Phases选项卡,点击Add Build Phase按钮,选择“Add Run
Script”。让后将脚本粘贴进去。
# Sets the target folders and the final
framework product.
FMK_NAME=Test
FMK_VERSION=A
# Install dir will be the final output
to the framework.
# The following line create it in the
root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the
framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# Building both
architectures.
xcodebuild
-configuration&"Release"&-target&"${FMK_NAME}"&-sdk
xcodebuild
-configuration&"Release"&-target&"${FMK_NAME}"&-sdk
iphonesimulator
# Cleaning the oldest.
-d&"${INSTALL_DIR}"&]
-rf&"${INSTALL_DIR}"
# Creates and renews the final product
-p&"${INSTALL_DIR}"
-p&"${INSTALL_DIR}/Versions"
-p&"${INSTALL_DIR}/Versions/${FMK_VERSION}"
-p&"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources"
-p&"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers"
# Creates the internal
# It MUST uses relative path, otherwise
will not work when the folder is copied/moved.
-s&"${FMK_VERSION}"&"${INSTALL_DIR}/Versions/Current"
-s&"Versions/Current/Headers"&"${INSTALL_DIR}/Headers"
-s&"Versions/Current/Resources"&"${INSTALL_DIR}/Resources"
-s&"Versions/Current/${FMK_NAME}"&"${INSTALL_DIR}/${FMK_NAME}"
# Copies the headers and resources files
to the final product folder.
-R&"${DEVICE_DIR}/Headers/"&"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/"
-R&"${DEVICE_DIR}/"&"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/"
# Removes the binary and header from the
resources folder.
-r&"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/Headers""${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/${FMK_NAME}"
# Uses the Lipo Tool to merge both
binary files (i386 + armv6/armv7) into one Universal final
-create&"${DEVICE_DIR}/${FMK_NAME}"&"${SIMULATOR_DIR}/${FMK_NAME}"&-output"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
-r&"${WRK_DIR}"
修改脚本:
FMK_NAME=Test(这个修改为你的Framework名称)
FMK_VERSION=A(这个为版本)
选中XCODE如图:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/bmiddle/407fb5bcgeb&690" STYLE="margin-top: 0 margin-right: margin-bottom: 0 margin-left: display:" NAME="image_operate_77893"
ALT="IOS&Framework制作全攻略"
TITLE="IOS&Framework制作全攻略" />
然后 command+b
编译该target。编译可能会出现错误,将&Test-Prefix.pch
中的代码注释解决这个错误。
生成后的framework文件将保存在项目目录/Products
8.添加使用 Framework
打开需要使用Framework的工程文件。选中项目名称。右边视图选中TARGETS下的项目,然后选中Build
Phases选项卡,打开Link Binary With Libraries区域,点击"+"号,点击Add
Other按钮然后找到刚刚在项目中生成的framework文件夹,如图打开文件夹,OK,你已经学会如何创建及使用自定义动态库了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。[iOS]Xcode8 搭建 .framework - CSDN博客
[iOS]Xcode8 搭建 .framework
Xcode8 搭建.framework的步骤大致如下:
1、创建一个Cocoa Touch Framework模板。
2、模板创建完成后,新建Test类。
3、TARGETS下选中工程,在Build Settings下更改几个参数
4、在Architectures下增加armv7s,并选中。将Build Active Architecture Only 设置为NO。
5、设置Headers
将你要公开的头文件移动到Public下。
然后需要在Test.h(必须是公开的,否则无法引用)中将你所有要公开的.h引入。
6、打包.framework
a) 选择模拟器,运行command+b,生成模拟器下的framework
生成文件通过点击product-&show in finder打开
b) 选择Generic iOS Device,同样的生成真机下可用的framework
生成真机的文件目录:
最后,通过下面的lipo -create 命令把两个库进行合并:
lipo -create /Users/newLibrary/Developer/Xcode/DerivedData/FWDemo-aylexwaxqtsgbwdentxurhiczhsa/Build/Products/Debug-iphoneos/FWDemo.framework/FWDemo /Users/new/Library/Developer/Xcode/DerivedData/FWDemo-aylexwaxqtsgbwdentxurhiczhsa/Build/Products/Debug-iphonesimulator/FWDemo.framework/FWDemo -output /Users/new/Desktop/new/FWDemo
最终打包好的framework如下:
拷贝替换到之前模拟器或真机的
7、引用的时候直接把上面生成的framework拖到项目工程下。
效果如下图:
本文已收录于以下专栏:
相关文章推荐
包含cocoa pods,打包&#160;framework
# Constants
SF_TARGET_NAME=${PROJECT_NAME}
#自定义的用来存放最后合并的framew...
网上关于Framework制作的教程数不胜数,然而都过于陈旧,最新的也是使用Xcode7的教程,而且有些设置也只给出步骤,并没有给出原因,而且按照有些教程制作出的framework还有些问题,所以我把...
网上关于Framework制作的教程数不胜数,然而都过于陈旧,最新的也是使用Xcode7的教程,而且有些设置也只给出步骤,并没有给出原因,而且按照有些教程制作出的framework还有些问...
标签:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的...
Xcode 8制作动态及静态Framework创建iOS动态库
新建工程并选择默认Target为Cocoa Touch Framework, 如图:
2.做编码工作,在这里我简单的写了一个UPM...
找到两篇好文章,但发现都有不足之处,所以把两个文章给合并了起来,自己又做了补充
第一步:制作framework
原文链接:打包自己的framework(Xcode7&OSX10.11)兼容...
最近公司要整理框架,想制作成静态库.framework,自己在也网上看了相关的资讯,在这里记录下自己操作步骤,自己没有做过多版本的测试,如果大家在制作和使用过程中遇到了其他的问题,希望可以留言一起讨论...
Xcode8如何使用静态库1.首先在Build Phases的Link Binary With Libraries中将要使用的静态库文件添加进去2.打开Build Setting,找到Search P...
1、创建MyLibrary静态库
如图:选择Cocoa Touch Static Library 点击下一步,然后起工程的名字就叫:MyLibrary
选择库类型
原文地址:/p/43d55ae49f59
最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录。
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)iOS在Xcode 7.2 里制作 Framework 的简单过程 - CSDN博客
iOS在Xcode 7.2 里制作 Framework 的简单过程
静态库和动态库的区别:
首先我们得认识到静态库和动态库的区别:静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存在,链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝;动态库以 .dylib 和 .framework 形式存在,链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存,一般只能由系统创建。静态库分为真机—Debug(调试)版本、真机—Release(发布)版本、模拟器—Debug版本、模拟器—Release版本;开发中一般都打包Release(发布)版本,将真机和模拟器版本合并,提供外界。
打包Framework
1、新建iOS-&Framework & Library-&Cocoa Touch Framework
2、选择next进入下一步
3、在PROJECT-&Deployment Target-&iOS Deployment Target选择你需要支持的最低系统。
同样的操作在TARGETS中,Deployment Info-&Deployment Target
4、由于我的framework需要支持iOS7,所以在第2、3步中进行了相应的设置。Build时会发现有ld: warning: embedded dylibs/frameworks only run on iOS 8 or later警告,这是因为工程默认编译设置的是Dynamic Framework。这种编译只有在iOS8以后才能使用。
5、针对第4步中所出现的问题,根据需求我的工程不需要使用动态framework,以使用其动态更新的功能。动态库可以分开发布,在运行时查找并存入内存,但苹果只允许他自己用,到iOS8以后才开放给开发者。因此,我需要将Dynamic Framework更换为Static Library静态模式。设置路径为Build Settings-&Linking-&Mach-O Type-&Static Library
6、这里要注意,在编译时,不要将图片文件放在工程里面,否则编译后framework中会出现大量的零散图片文件在里面。这时需要将图片等资源放在.bundle文件中。图片的打包在第二步介绍。
7、这样打包的framework依然有问题,如果你用了Category,别人在用你的framework时会发生崩溃。这时别人在引用时需要在工程中other linker flags中添加-objC如果依然有问题,再添加-all_load。
8、终于编译成功,但发现很多关于符号表的警告,这时需要将Generate Debug Symbols设置为NO即可关闭符号表警告。
9、但是我需要支持bitcode,以上设置后并不能使framework支持bitcode,因此还需要进行额外的设置一个命令让其支持bit code。在TAGETS的Build setting中搜索Other C Flags,添加命令“-fembed-bitcode”。同样的设置在PROJECT中。如果不进行以上操作。别人在集成你的framework时可以编译,亦可以真机测试。唯独在打包时会发出警告并打包失败。警告为framework不支持bitcode!
10、无论SDK还是Framework都需要暴露公共的头文件以供使用者读取和。在TARGETS-&Build Phases-&Headers里面,有三种类别。Public(公共的),这里存放供其他人查看的header。Private(私有的)这里存放私有的Header,以上两个Headers存放位置都会暴露出来,所有人可以查看。有些Header是不想给别人看到的。这种header放在第三个类Project中。
11、打包。Edit Scheme-&Build Configuration-&选为Release然后Run即可.
打包bundle文件
1、新建OS X-&Framework & Library-&Bundle新建
2、在Build Settings-&(null)-Deployment-&iOS Deployment Target-&选择自己需要支持的最低系统。
3、build后会生成一个bundle包,但在包中的图片由以前的png格式全部变成tiff格式。为了防止这种格式转变。需要在Build Settings-&Architectures-&Base SDK-&选择iOS的SDK要支持的版本。这时TARGETS中Build Setting-&User-Defined中会出现一个新的Key:COMBINE_HIDPI_DEBUG_INFO,把它设置为NO。
4、这样创建的图片资源不能使用[UIImage imageNamed:@“png”]来获取了。需要使用路径方式来读取图片。
这里我使用了一个函数来获取路径。
NSString *getKaYiKaImageBundlePath(NSString *filename);
NSString *getKaYiKaImageBundlePath(NSString *filename) {
NSBundle *libBundle = [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@”KaYiKa.bundle”]];
if (libBundle && filename) {
NSString *path = [[libBundle resourcePath] stringByAppendingPathComponent:filename];
path = [path stringByAppendingString:@”.png”];
使用时直接用
[UIImage imageWithContentsOfFile:getKaYiKaImageBundlePath(@”tool_return_day”)]获取图片。
创建引用工程
创建引用工程时将framework和bundle同时导入。
剩下的使用与系统framework相同。
制作通用动态库
1.新建Aggregate Target
TARGETS–&”+”按钮–& Other –& Aggregate –& 双击;
2.添加script到新建的Target;
选中第1步新建的Aggregate,点击左上角的”+”,添加new Run Script P
本文已收录于以下专栏:
相关文章推荐
找到两篇好文章,但发现都有不足之处,所以把两个文章给合并了起来,自己又做了补充
第一步:制作framework
原文链接:打包自己的framework(Xcode7&OSX10.11)兼容...
一、什么是CocoaPod
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库...
iOS开发 xcode6制作framework静态库相信大家应该有要将一些工具类做成framework或者从事SDK制作的经历,在功能实现过后,我们希望方便大家使用从而做成framework,那么如何...
写在前面:
通过 Framework 可以在物理上实现 iOS 程序的模块化。
&#160;&#160;&#160;&#160;&#160; 1、如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性;
&#160;&#160;&#160;&#160;&#160; ...
相关链接:IOS开发~Cocoa
Touch Static Library(静态库)
一、Framework 简介(Introduction to Framework...
IOS7开发~Xcode5制作framework
相关链接:IOS开发~Cocoa
Touch Static Library(静态库)
一、Fra...
找到两篇好文章,但发现都有不足之处,所以把两个文章给合并了起来,方便大家学习。
第一步:制作framework
原文链接:打包自己的framework(Xcode7&OSX10.11)兼容各种cp...
一、Framework 简介(Introduction to Framework Programming Guide)
Mac OS X 扩展了 framework 的功能,让我们能够利用它来共...
本稿来自本群 【Misery_IOS_武汉】投稿,初次投稿值得鼓励,而且重点是步骤很详细。感谢支持与配合!
以下是Misery的分享内容:
1.&#160;&#160;&#160;&#160;新建一个 Project,选择CocoaTo...
ios 通过Xcode制作 .framework文件
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 如何在数据库中创建表 的文章

 

随机推荐