14

我有一个项目,我需要将其作为框架导入到其他项目中,就像我们如何导入 Coredata 框架、Quartzcore 等一样。如何实现?如何将我的项目编译成可以导入其他项目的库或框架?请说明步骤。

提前致谢。

4

2 回答 2

3

https://github.com/jverkoey/iOS-Framework试试这个链接来创建框架和资源包触摸静态库项目。

于 2012-11-02T07:58:28.107 回答
2

如果你想编译一个像 UIKit.framework 这样的“标准”框架,试试这个Universal Framework iPhone iOS

别的

  1. 创建一个名为“TestPlugin”的新项目并选择类型“Cocoa touch Static Library”。在这里,您将有一个目标“TestPlugin.a”。
  2. 添加新目标。在项目设置的左角,名称为:'Add Target'。在“OS X”的“框架和库”中选择“捆绑”。这是您的第二个目标,名为“TestPluginBundle.bundle”。
  3. 在您的 TestPlugin.a 目标的“构建短语”设置中,添加一个新的“目标依赖项”。这将首先生成 .bundle 文件,然后生成 .a 文件。
  4. 将所有“原始”项目的文件(不包括 main.m 和 .xcodeproj 文件)复制并添加到 TestPlugin 项目。
  5. 在 TestPluginBundle 的“构建阶段”设置中,将所有 .xib .png(maybe .jpg) 文件添加到“编译源”。将空间资源(如 .wav、.gif 和 .html)添加到“复制捆绑资源”。
  6. 将所有从主包加载资源的代码替换为从 TestPluginBundle 加载资源。也许你想为 UIImage 添加一个类别,因为你想使用imageNamed:这样你就可以使用[UIImage testPluginImageNamed:@"small.png"]. 在您的项目中进行替换并添加相关的头文件很容易。以 .xib 文件为例:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        //self = [super initWithNibName:nibNameOrNil bundle:[NSBundle mainBundle]];
        // you need to define a method to get the bundle 'TestPluginBundle.bundle', here I used '[TestPlugin TestPluginBundle]'
        self = [super initWithNibName:nibNameOrNil bundle:[TestPlugin TestPluginBundle]];
        ...
    }
    
  7. 在此之后将 .a 文件和 .bundle 文件添加到另一个项目。在另一个项目中,您需要再次添加相关框架。

我已经成功地将这种方法用于我的工作。

于 2012-11-02T08:10:35.337 回答