【发布时间】:2013-07-09 11:42:19
【问题描述】:
如何创建静态库,并且可以在 ios 中的任何项目上仅添加 .a 文件。
我试过这样做,但做不到。
提前致谢
【问题讨论】:
-
嗨,不。在您发送的示例中,添加了整个项目。我只想添加 .a 库文件。
标签: ios xcode ios4 static-libraries objective-c++
如何创建静态库,并且可以在 ios 中的任何项目上仅添加 .a 文件。
我试过这样做,但做不到。
提前致谢
【问题讨论】:
标签: ios xcode ios4 static-libraries objective-c++
如果你想创建静态库,请参考链接http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html
第 1 步:创建一个新项目,将其命名为“Logger”
第 2 步:创建类
您可以创建任意数量的类,在我们的教程中,我们将创建一个名为“Logger”的类。 所以,现在我们的资源中应该有两个文件。 1.记录器.h 2. 记录器.m
第 3 步:将一些有用的代码放入类中
第 4 步:创建新目标
从文件菜单创建新目标。
新目标 选择 Cocoa Touch 静态库
第 5 步:将文件添加到编译资源
选择静态库的“Logger”目标 转到构建阶段 在 Complied Sources 部分,添加所有 .m 和 .mm 文件。 在 Copy Files 部分,添加所有 .h 文件和资源文件。
构建阶段
第 6 步:使用静态库目标编译项目
为 iOS 设备编译项目 为模拟器编译项目 您可以在 build 文件夹中找到两个不同的 .a 文件。
查找 .a 文件
第 7 步:使静态库通用
您现在可以找到两个不同的库,一个用于模拟器,一个用于 iOS 设备。
创建一个新文件夹并将其命名为 LoggerMerge。
将Debug-iphoneos文件夹的libLogger.a文件复制到“LoggerMerge”,重命名为libLogger_device.a
将Debug-iphonesimulator文件夹的libLogger.a文件复制到“LoggerMerge”重命名为libLogger_simulator.a
使用终端打开 LoggerMerge 文件夹
在命令下方开火
lipo -create "libLogger_simulator.a" "libLogger_device.a" -output "libLogger.a"
现在,您可以在 LoggerMerge 文件夹中找到 libLogger.a,这是通用静态库文件。 现在,您只需要一件事就是标题,请参见上面的屏幕截图,在两个构建文件夹中都有一个名为 include 的文件夹。只需从该文件夹中复制头文件即可。
第 8 步:测试静态库
创建新项目,将其命名为 TestLogger
导入libLogger.a和头文件
将头文件“Logger.h”导入任何你想使用的地方
现在,使用这个 Logger 类作为默认做法。
在我们的例子中,[Logger log:@"Test String"];
在模拟器和设备中运行项目
而已!!你有自己的静态库!!
【讨论】:
第 1 步:启动一个新的静态库项目
打开 XCode 并开始一个新项目。在iOS下,选择Library,“Cocoa Touch Static Library”说它为“staticlibrary”。这将为我们创建一个不错的新项目,该项目构建一个.a 文件。
第 2 步:编写静态库代码 首先我们需要添加一些文件。将一个新的 NSObject 子类添加到您的项目中,并将其命名为 StaticClass。然后在这些文件中编写一些有用的代码。
第 3 步: 构建和分发您的库
一旦你对你的库感到满意,只需在 XCode 中构建它。显然,不要构建和运行,因为你无法运行它(同样,除非你有一个测试套件)。现在,查看 XCode 中的 Products 组,您应该会看到一个名为 lib(libraryName).a 的文件。在我们的例子中,它是libstaticlibrary.a。
右键单击该文件并选择“Reveal In 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希望本教程对你有所帮助。
【讨论】:
Xcode 版本 10.2.1
关注Create Objective-C static library版块
关注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>
【讨论】: