iOS在Cocoa Touch Static Library使用CocoaPods

1、在XCode中新建静态库工程:DDLogLib。

2、添加对外暴露接口的头文件DDLogLibHeader.h

3、命令行进入DDLogLib目录,运行pod init,并修改Podfile

4、运行pod install,并打开DDLogLib.xcworkspace。

5、运行pod spec create DDLogLib,创建DDLogLib.podspec文件,并编辑。

#  Be sure to run `pod spec lint DDLogLib.podspec‘ to ensure this is a

#  valid spec and to remove all comments including this before submitting the spec.

#

#  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html

#  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/

#

Pod::Spec.new do |s|

# ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  These will help people to find your library, and whilst it

#  can feel like a chore to fill in it‘s definitely to your advantage. The

#  summary should be tweet-length, and the description more in depth.

#

s.name         = "DDLogLib"

s.version      = "0.0.1"

s.summary      = "A short description of DDLogLib."

s.description  = <<-DESC

A longer description of DDLogLib in Markdown format.

* Think: Why did you write this? What is the focus? What does it do?

* CocoaPods will be using this to generate tags, and improve search results.

* Try to keep it short, snappy and to the point.

* Finally, don‘t worry about the indent, CocoaPods strips it!

DESC

s.homepage     = "http://EXAMPLE/DDLogLib"

# s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"

# ―――  Spec License  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  Licensing your code is important. See http://choosealicense.com for more info.

#  CocoaPods will detect a license file if there is a named LICENSE*

#  Popular ones are ‘MIT‘, ‘BSD‘ and ‘Apache License, Version 2.0‘.

#

s.license      = "MIT (example)"

# s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

# ――― Author Metadata  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  Specify the authors of the library, with email addresses. Email addresses

#  of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also

#  accepts just a name if you‘d rather not provide an email address.

#

#  Specify a social_media_url where others can refer to, for example a twitter

#  profile URL.

#

s.author             = { "hu5675" => "[email protected]" }

# Or just: s.author    = "hu5675"

# s.authors            = { "hu5675" => "[email protected]" }

# s.social_media_url   = "http://twitter.com/hu5675"

# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  If this Pod runs only on iOS or OS X, then specify the platform and

#  the deployment target. You can optionally include the target after the platform.

#

# s.platform     = :ios

# s.platform     = :ios, "5.0"

#  When using multiple platforms

# s.ios.deployment_target = "5.0"

# s.osx.deployment_target = "10.7"

# s.watchos.deployment_target = "2.0"

# ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  Specify the location from where the source should be retrieved.

#  Supports git, hg, bzr, svn and HTTP.

#

s.source       = { :git => "http://EXAMPLE/DDLogLib.git", :tag => "0.0.1" }

# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  CocoaPods is smart about how it includes source code. For source files

#  giving a folder will include any swift, h, m, mm, c & cpp files.

#  For header files it will include any header in the folder.

#  Not including the public_header_files will make all headers public.

#

s.source_files  = "DDLogLib", "DDLogLib/**/*.{h,m}"

s.exclude_files = "DDLogLib/Exclude"

s.public_header_files = "DDLogLib/**/*.h"

# ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  A list of resources included with the Pod. These are copied into the

#  target bundle with a build phase script. Anything else will be cleaned.

#  You can preserve files from being cleaned, please don‘t preserve

#  non-essential files like tests, examples and documentation.

#

# s.resource  = "icon.png"

s.resources = "DDLogLib/Resources/*.png"

# s.preserve_paths = "FilesToSave", "MoreFilesToSave"

# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  Link your library with frameworks, or libraries. Libraries do not include

#  the lib prefix of their name.

#

 s.framework  = "SystemConfiguration"

# s.frameworks = "SomeFramework", "AnotherFramework"

# s.library   = "iconv"

# s.libraries = "iconv", "xml2"

# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

#

#  If your library depends on compiler flags you can set them in the xcconfig hash

#  where they will only apply to your library. If you depend on other Podspecs

#  you can include multiple dependencies to ensure it works.

# s.requires_arc = true

# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }

s.dependency "CocoaLumberjack"

  #s.dependency "other lib"

6、新建工程DDLogLibAPP,与DDLogLib保持在同一目录,命令行进入DDLogLibAPP,运行pod init,并编辑。

# Uncomment this line to define a global platform for your project

# platform :ios, ‘6.0‘

target ‘DDLogLibAPP‘ do

pod ‘DDLogLib‘, :path => ‘../DDLogLib‘

end

target ‘DDLogLibAPPTests‘ do

end

target ‘DDLogLibAPPUITests‘ do

end

7、运行pod install,并打开DDLogLibAPP.xcworkspace编译。

8、在DDLogLib实现printABC方法。

DDLogLib.m

#import "DDLogLib.h"

#import "DDLog.h"

#import "DDFileLogger.h"

#import "DDTTYLogger.h"

static int ddLogLevel = LOG_LEVEL_INFO;

@implementation DDLogLib

- (void)printABC{

NSLog(@"ABC");

DDLogFileManagerDefault *logFileManager = [[DDLogFileManagerDefault alloc] init];

DDFileLogger* _fileLogger = [[DDFileLogger alloc] initWithLogFileManager:logFileManager];

_fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling

_fileLogger.logFileManager.maximumNumberOfLogFiles = 7; // a weeks worth

//#ifdef DEBUG

[DDLog addLogger:[DDTTYLogger sharedInstance]];// this is log to xcode window.

//#else

[DDLog addLogger:_fileLogger];

//#endif

DDLogInfo(@"DDLog ABC");

}

@end

DDLogLib.h

#import <Foundation/Foundation.h>

@interface DDLogLib : NSObject

- (void)printABC;

@end

9、在DDLogLibAPP中调用。

#import "AppDelegate.h"

#import <DDLogLib/DDLogLib.h>

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

DDLogLib* logLib = [[DDLogLib alloc] init];

[logLib printABC];

return YES;

}

10、运行DDLogLibAPP,一切正常。

11、在DDLogLibAPP中直接使用DDLog。

#import "AppDelegate.h"

#import <DDLogLib/DDLogLib.h>

#import <DDLog.h>

#import <DDFileLogger.h>

#import <DDTTYLogger.h>

static int ddLogLevel = LOG_LEVEL_INFO;

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

//app 通过静态库调用

// DDLogLib* logLib = [[DDLogLib alloc] init];

// [logLib printABC];

//app 直接调用

DDLogFileManagerDefault *logFileManager = [[DDLogFileManagerDefault alloc] init];

DDFileLogger* _fileLogger = [[DDFileLogger alloc] initWithLogFileManager:logFileManager];

_fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling

_fileLogger.logFileManager.maximumNumberOfLogFiles = 7; // a weeks worth

//#ifdef DEBUG

[DDLog addLogger:[DDTTYLogger sharedInstance]];// this is log to xcode window.

//#else

[DDLog addLogger:_fileLogger];

//#endif

DDLogInfo(@"application ABC");

return YES;

}

12、运行正常打印。

时间: 2024-12-30 13:46:28

iOS在Cocoa Touch Static Library使用CocoaPods的相关文章

ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让他们看到你的源代码. Xcode6创建静态库详解(Cocoa Touch Static Library) 一.创建静态库文件 打开Xcode, 选择File ----> New ---> Project. 新建工程. 选择iOS ----> Framework & Library -

使用Xcode 5创建Cocoa Touch Static Library(静态库)

转自:http://blog.csdn.net/jymn_chen/article/details/21036035 首先科普一下静态库的相关知识: 程序编译一般需经预处理.编译.汇编和链接几个步骤.对于我们项目中的一些公共代码,如果想要对其进行复用,可以把这些代码编译成一个静态库文件.在链接步骤中,链接器会从库文件中取得对应的代码并生成可执行文件.静态库的执行文件中包含了库中的完整代码,但是多次使用会产生多份冗余拷贝. 静态库和动态库的区别在于静态库在链接阶段被复制,与程序的运行阶段无关:动态

[IOS/翻译]Cocoa Touch Layer

本文是本人自己辛苦翻译的,请转载的朋友注明,翻译于Z.MJun的CSDN的博客 http://blog.csdn.net/Zheng_Paul,感谢! 翻译于2015年10月6日 Cocoa Touch Layer Cocoa Touch层包含了关键的库来构建IOS应用.这些库定义了应用的表现.他们提供应用的基本空间和提供关键技术,如多任务,以接触为基础的输入,消息推送,和许多高级的系统服务.当你设计你的应用时候,你需要优先研究他们. 高级别的特性 接下来的章节描述一些关键技术 App Exte

Foundation &amp; UIKit &amp; Cocoa Touch

Foundation Foundation is basically the Apple development standard library, implemented in Objective-C. It includes data types like NSArray, NSString, and NSDictionary. However, Swift provides replacements for these data types: Array, String, and Dict

iOS框架介绍(三)---Cocoa Touch 层(转)

目录 Cocoa Touch 层 高级特性 多任务 数据保护 苹果推送通知服务 本地通知 手势识别器 文件共享支持 点对点服务 标准系统视图控制器 外部设备支持 Cocoa Touch 层包含的框架 Address Book UI 框架 Event Kit UI 框架 Game Kit 框架 iAd 框架 Map Kit 框架 Message UI 框架 UIKit 框架 Cocoa Touch 层 Cocoa Touch层包含创建 iOS应用程序所需的关键框架.上至实现应用程序可视界面,下至与

iOS 元件组件-创建静态库static library

概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有main函数的程序代码集合.除了静态库,还有动态链接库,他们之间的区别是:静态库可以编译到我们的执行代码中,应用程序可以在没有静态库的环境中运行:动态库不能编译到我们的执行代码中,应用程序必须在有链接库文件的环境下运行.另外,动态库在AppStore里,很有可能被拒绝,上架不了. 因而,一般情况下,我们都

UI - Cocoa Touch框架

Cocoa Touch 层 Cocoa Touch层包含创建 iOS应用程序所需的关键框架.上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础.在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架. 高级特性 下面章节描述一些常见特性,也许您也正打算在应用程序支持这些特性. 多任务 如果应用程序构建于iPhone SDK 4.0及其后续版本(且运行于iOS 4.0及后续版本操作系统),则点击Home键的时候,应用程序不会结束,而是切换到后台.对于大多

《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式

原创文章,欢迎转载.转载请注明:关东升的博客 什么是设计模式.设计模式是在特定场景下对特定问题的解决方案,这些解决方案是经过反复论证和测试总结出来的.实际上,除了软件设计,设计模式也被广泛应用于其他领域,比如UI设计和建筑设计等. 下面来介绍Cocoa Touch框架中的设计模式中的单例模式. 单例模式 单例模式的作用是解决"应用中只有一个实例"的一类问题.在Cocoa Touch框架中,有UIApplication.NSUserDefaults和NSNotificationCente

Cocoa Touch框架

iOS – Cocoa Touch简介: iOS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更加专注于触摸的接口和优化.UIKit 为开发者提供了在 iOS 上实现图形,事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等. Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计.有了 UIKit,您可以使用 iOS 上的独特的图形接口控件,按钮,以及全屏视图的功能