Iphone 如何将Xcode项目转换为静态库或框架?

Iphone 如何将Xcode项目转换为静态库或框架?,iphone,objective-c,frameworks,static-libraries,Iphone,Objective C,Frameworks,Static Libraries,我有一个项目,我需要导入到其他项目作为一个框架,就像我们如何导入Coredata框架,Quartzcore等。如何实现这一点?如何将我的项目编译成可以导入其他项目的库或框架?请解释一下步骤 提前感谢。尝试此链接以创建框架和资源包。将项目中使用的图像、XIB和其他资源打包成一个包,并将类复制到Cocoa Touch静态库项目中。如果您想编译像UIKit.framework这样的“标准”框架,请尝试以下方法 否则 创建一个名为“TestPlugin”的新项目,并选择类型“Cocoa touch静态库

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


提前感谢。

尝试此链接以创建框架和资源包。将项目中使用的图像、XIB和其他资源打包成一个包,并将类复制到Cocoa Touch静态库项目中。

如果您想编译像UIKit.framework这样的“标准”框架,请尝试以下方法

否则

  • 创建一个名为“TestPlugin”的新项目,并选择类型“Cocoa touch静态库”。这里有一个目标“TestPlugin.a”
  • 添加一个新目标。在项目设置的左角,名称是:“添加目标”。在“OS X”中的“框架和库”中选择“Bundle”。这是您的第二个目标,名为“TestPluginBundle.bundle”
  • 在TestPlugin.a目标的“构建短语”设置中,添加新的“目标相关性”。这将首先生成.bundle文件,然后生成.a文件
  • 将所有“原始”项目的文件(不包括main.m和.xcodeproj文件)复制并添加到TestPlugin项目中
  • 在TestPluginBundle的“构建阶段”设置中,将所有.xib.png(可能是.jpg)文件添加到“编译源代码”。将空间资源(如.wav、.gif和.html)添加到“复制捆绑资源”中
  • 将从主捆绑包加载资源的所有代码替换为从TestPluginBundle加载资源。可能您想为UIImage添加一个类别,因为您想使用
    imagename:
    ,这样您就可以使用
    [UIImage testpluginimagename:@“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]];
        ...
    }
    
  • 在此之后,将.a文件和.bundle文件添加到另一个项目中。在另一个项目中,您需要再次添加相关的框架


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

    在完成上述所有步骤后,您能解释一下如何最终构建框架吗?我的意思是像我们通常包含在xcode项目中的框架一样。预定义的框架,如coredata、quartzcore等。。如何构建这样一个框架?是否可以阅读框架的内容?我最近发现了一个。一个框架,但我不知道如何使用它。比如,有什么方法可以让我使用,而且也没有什么帮助。框架上也没有纪录片,所以我真的被卡住了。@MelvinLai,我不知道如何阅读内容。我刚刚遇到的情况是,我有.a库的头文件(这称为静态库)。你有这个吗?@sunkhappy对不起,我好久没登录这个网站了。。。我得到了一些关于我的.a文件的信息,我没有使用它,因为它是一个第三方API,如果我使用它,苹果会反对。所以我不再使用它了。好的,现在关于.a文件,我根本看不到任何静态库,它只是一个.a文件。我看不到任何头文件我看不到.a文件中的内容。这是不可靠的。所以我把它推到一边。谢谢你的回复:)