创建你自己的 iOS 框架 已翻译 100%

oschina 投递于 2013/02/08 09:01 (共 6 段, 翻译完成于 02-08)
阅读 23003
收藏 104
8
加载中

如果你是IOS的新手,并有.net开发的背景(就像我一样),你可能到处去找,哪里有dll呢?

其实,IOS平台是使用框架而不是dll,框架里面包含公共头文件和二进制文件。很不幸,XCode并不支持你自己去创建框架。

对于一个开发人员,这是个大问题,b/c缺少框架,我们就不得不去创建一个静态库文件。但是使用lib文件是一件痛苦的事情。实质上,向工程添加库的引用,并告诉功能工程在哪里可以找到你的头文件,这对于用户体验并非一件好事。

enixyu
enixyu
翻译于 2013/02/08 09:26
4

所以我们应该如何突破这个限制呢?

在查阅过大量的资料之后,我发现在gitHub上有一个非常惊人的开源项目:iOS-Universal-Framework. 这个工程基本上是一个项目模板。你只需安装这个项目,现在你就多了一个新选择来创建项目。

现在,让我们讨论安装过程还有如何使用它:

  1. 下载zip文件.
  2. 保证你放在一个地方,并方便日后使用。B/C工程模板,每次你更新XCode的时候,你都需要重新安装这个项目模板(不要担心,安装过程非常的快)。
  3. 确保XCode已完全关闭
  4. 解压缩zip文件并转到文件夹:Real Framework/install.sh
  5. 如果你熟悉使用命令终端,只需运行install.sh。如果你不熟悉,那么只需把它改名为 install.sh.command 并双击运行它。
  6. 当它开始运行,它会询问你:XCode安装在哪里。如果你没有修改过默认XCODE的安装路径,只需回车确认。
  7. 然后它会再询问你,需要安装在什么地方。只需敲入y并回车。
  8. 输入密码,回车
  9. 等待安装结束
  10. 打开Xcode并打开New Project窗口。
  11. 在IOS选择框架和库的地方,你会发现多了一个选择“Static iOS Framework” 
  12. 点击下一步,敲入你的框架名称,并按照一般的步骤创建工程。
enixyu
enixyu
翻译于 2013/02/08 09:39
2

现在,你有了一个全新的框架!但是,你应该如何使用它?

你基本上可以把它当做一个普通工程。但是,当你需要创建公共的API的时候,你需要告诉它。

现在让我们一步一步创建一个框架,发布你的公共API,并使用它!

  1. 使用new project对话框创建你的框架
  2. 你现在创建了一个空白的项目。现在我们添加一个新的类。在这个例子中,我们添加一个UIView的类,名字叫做MyView.
  3. 现在,我需要这个API供使用这个框架的开发者能正常使用,我需要让.h文件变为公共。点击项目导航器的项目,并选择build phase:
enixyu
enixyu
翻译于 2013/02/08 09:46
1

当你点击扩展Copy Header面板,你会看到3个选项,Public, Private和 Project。默认设置的话,当你添加一个新的文件,它会在project中可见。当你需要把它改变为public,只需把头文件拖到public面板中。

4. 让我们在class中输入一些代码:

@implementation MyView
-(id)init
{
   self = [super init];
   if(self)
   {
      self.backgroundColor = [UIColor orangeColor];
   }
   return self;
}
@end

我们把我们的View的默认背景颜色设为橙色

5. 现在下一步是可选的。但是我的观点是最好也配置一下。如果你使用Apple的默认框架的时候,你会发现import语句就像:#import UIKit/UIKit/.h  或者 #import  QuartzCore/QuartzCore.h 。这有个优点,就是你知道框架的名字,然后知道引用哪个头文件。这些头文件在框架中全部是public的API。所以你不需要添加一堆头文件。

enixyu
enixyu
翻译于 2013/02/08 09:56
1

所以让我们按如下步骤来做。

第一,打开 Add New File对话框,并添加头文件:

为头文件命名(跟框架的名字一样),在头文件里面,加入#import语句,添加你的框架中所有的公共头文件。

现在,不要忘记了在Build Phase面板它把变为PUBLIC!!!(步骤3)

6. 编译项目,现在就可以使用它了。

7.  创建一个新工程,对于这个例子我们就创建一个简单的View应用,叫做MyApp.

8. 当项目创建后,点击项目面板,并下拉到"Linked Frameworks and Libraries Section",并点击加号按钮:



enixyu
enixyu
翻译于 2013/02/08 10:06
1

现在点击“Add Other”按钮跳至你的框架页面:

是时候写些代码了!

9. 首先打开ViewController.m文件,写入你的代码:

10. 运行你的项目,你就会看到如下画面:

你现在就完成了一个框架,可以在不同的项目和组之间共享这个框架了!

我希望这篇文章对你来说是有用的。

enixyu
enixyu
翻译于 2013/02/08 10:10
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(24)

骑车去旅行
mark 留着研究研究
crossmix
crossmix
ok
Sniper_Tei
Sniper_Tei
mark
不哭
再请问下,我可以在这个framework里面加入第三方库么?
kawa
kawa

也下载了,挺好用的,关于 那个 i386 和 armv7的事情,编译好了,archive 就好了,

不哭

想请教我用这个创建后,UIKit 基本框架的东西,都提示错误,我有加入系统UIKit库,请问下这个是什么原因啊

不哭

引用来自“zhenwen_li”的评论

Command /bin/sh failed with exit code 1
什么情况?

你解决了这个问题了么,我也遇到这个问题呢,求指点

zhenwen_li
zhenwen_li
Command /bin/sh failed with exit code 1
什么情况?
lena
lena
我的也是找不到类库,
jink2005
jink2005
我的Xcode4.6.2也不行,报错:
target specifies product type 'com.apple.product-type.framework.static', but there's no such product type for the 'iphoneos' platform
返回顶部
顶部