17

如何创建静态库并且可以在 ios 中的任何项目上仅添加 .a 文件。

我试过这样做,但做不到。

提前致谢

4

3 回答 3

30

如果你想创建静态库意味着参考链接http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html

第 1 步:创建一个新项目,将其命名为“Logger”

第 2 步:创建类

您可以创建任意数量的类,在我们的教程中,我们将创建一个名为“Logger”的类。所以,现在我们的资源中应该有两个文件。1. 记录器.h 2. 记录器.m

第 3 步:将一些有用的代码放入类中

第 4 步:创建新目标

从文件菜单创建新目标。

新的 Target Select Cocoa Touch 静态库

第 5 步:将文件添加到编译资源

选择静态库的“记录器”目标转到编译源部分中的构建阶段,添加所有 .m 和 .mm 文件。在 Copy Files 部分,添加所有 .h 文件和资源文件。

构建阶段

第 6 步:使用静态库目标编译项目

为 iOS 设备编译项目 为模拟器编译项目 您可以在构建文件夹中找到两个不同的 .a 文件。

查找 .a 文件

第 7 步:使静态库通用

您现在可以找到两个不同的库,一个用于模拟器,一个用于 iOS 设备。

创建一个新文件夹并将其命名为 LoggerMerge。将libLogger.aDebug-iphoneos 文件夹的文件复制到“LoggerMerge”,将其重命名为 libLogger_device.a 将libLogger.aDebug-iphonesimulator 文件夹的文件复制到“LoggerMerge”,将其重命名为 libLogger_simulator.a,使用终端火打开 LoggerMerge 文件夹,命令 lipo -create“ libLogger_simulator.a”“ libLogger_device.a” -输出“ libLogger.a

现在,您可以在 LoggerMerge 文件夹中找到 libLogger.a,这是通用静态库文件。现在,您只需要一件事就是标题,请参见上面的屏幕截图,在两个构建文件夹中都有一个名为 include 的文件夹。只需从此文件夹中复制头文件即可。

第 8 步:测试静态库

创建新项目,将其命名为 TestLogger 导入和头文件在您要使用的任何地方libLogger.a导入头文件“ ” 现在,将此 Logger 类用作默认做法。Logger.h在我们的例子中,[Logger log:@"Test String"]; 在模拟器和设备中运行项目就是这样!!你有自己的静态库!!

于 2013-07-11T09:11:34.043 回答
11

第 1 步:启动新的静态库项目

打开 XCode 并开始一个新项目。在iOS下,选择Library,“Cocoa Touch Static Library”说它为“staticlibrary”。这将为我们创建一个很好的新项目来构建一个.a文件。

第 2 步:编写静态库代码 首先我们需要添加一些文件。向您的项目添加一个新的 NSObject 子类并将其命名为 StaticClass。然后在这些文件中编写一些有用的代码。

第 3 步:构建和分发您的库 一旦您对您的库感到满意,只需在 XCode 中构建它。显然,不要构建和运行,因为您无法运行它(同样,除非您有测试套件)。现在,查看 XCode 中的 Products 组,您应该会看到一个名为 lib(libraryName).a 的文件。在我们的例子中,它是libstaticlibrary.a.

右键单击该文件并选择“在 Finder 中显示”。将此文件拖到您创建的新文件夹中,您将在其中捆绑所有库文件。现在,对所有 .h 文件执行相同操作。在我们的例子中,只需复制StaticClass.h到这个新目录中。您的目录结构现在应该如下所示:

FolderName
|- libstaticlibrary.a
|-  StaticClass.h

现在你可以压缩这个文件夹并以数百万美元的价格卖给潜在的 iOS 开发者!

第 4 步:在新项目中链接您的库 现在您已经构建了闪亮的新静态库,是时候在另一个应用程序中测试它了。

创建一个新的基于视图的项目(或其他无关紧要的项目)。将其命名为测试。

现在,只需将此文件夹拖到项目中,XCode 就会自动设置所有链接。当提示复制时,我通常会说是,但您可以根据您打算如何使用库来做任何您想做的事情。如果您有多个项目共享一个库,有时仅链接而不是复制会更有益。它确保他们都使用最新的版本。

您现在应该.a在新项目中看到该文件以及头文件。

第 5 步:使用静态库代码

现在所有的链接都设置好了,您只需像使用任何其他类一样使用您的库。

如需进一步说明 http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial 希望本教程对您有所帮助。

于 2014-03-21T10:50:48.423 回答
-1

Objective-C 消费者 -> Objective-C 静态库

Xcode 版本 10.2.1

创建 Objective-C 静态库

关注部分Create Objective-C static library

带有 Objective-C 静态库的 Objective-C 消费者

关注部分Swift consumer with Objective-C static library

将模块导入到 Objective-C 客户端代码[module_name]

@import module_name;

//or umbrella or public header
#import <module_name/module_name.h>

[更多示例]

于 2019-12-06T15:31:37.120 回答