专栏名称: Cocoa开发者社区
CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务。
目录
相关文章推荐
51好读  ›  专栏  ›  Cocoa开发者社区

制作Swift和Objective-C Mixed的Pod

Cocoa开发者社区  · 公众号  · ios  · 2016-12-28 08:11

正文

▲点击上方“ CocoaChina ”关注即可免费学习iOS开发


原文


知识背景

In Xcode, with references directly from the ruby source, it:

  1. Creates or updates a workspace.

  2. Adds your project to the workspace if needed.

  3. Adds the CocoaPods static library project to the workspace if needed.

  4. Adds libPods.a to: targets => build phases => link with libraries.

  5. Adds the CocoaPods Xcode configuration file to your app’s project.

  6. Changes your app’s target configurations to be based on CocoaPods’s.

  7. Adds a build phase to copy resources from any pods you installed to your app bundle. i.e. a ‘Script build phase’ after all other build phases with the following:

Shell: /bin/sh

Script: ${SRCROOT}/Pods/PodsResources.sh

大意是,CocoaPods是一个依赖管理工具,使用CocoaPods可以自动的去分析依赖,然后通过脚本去将第三方依赖复制编译为静态库然后链接进项目。~~~等。

  • 制作Pod

有时候我们有降代码做成一个轮子给别人用,我们需要按照官方的教程 Making CocoaPods 去制作。

教程分为2类 :

  1. 发布公共Pod给所有开发者使用。

  2. 制作私有Pod。 方法较为简单。自行查阅资料即可。这里不再赘述。

  • Swift和Objective-C Mixed

参考官方的文档(文末指出),混编里面包含有2种调用情况:

  1. Question1. Swift调用Objective-C

  2. Question2. Objective-C调用Swift

这里我新建一个项目 命名为Mixed(Single View Application), 创建一个文件夹Classes用于存放源代码.

创建一个Objective-C Class O 继承自NSObject 创建一个Swift Class S 继承自NSObject.

Answer1: 为Swift源代码添加一个 XXX.h头文件这里为Mixed-Bridging-Header 在这个文件中导入需要访问的Objective-C 源代码的头文件。

有时候Xcode反应会稍微延迟一点。手动编译一下即可。做完这个配置,Swift即可访问Objective-C 源代码。

代码如图:

Answer2: Objective-C 访问Swift源代码 需要导入系统为项目生成的头文件,默认为Module+Swift.h 当然自己也是可以修改的, 导入之后,编译一下(Xcode有时候有缓存,没事就应该编译一下????)

具体代码配置如图

至此混编项目测试完成。

  • 制作Pod 创建Mixed.podspec文件 键入如下内容

Pod::Spec.new do |s|

s.name             = "Mixed"

s.version          = "0.0.1"

s.summary          = "链家网混编组件"

s.description      = "链家网混编组件混编测试"

s.license          = {:type => 'MIT', :file => 'LICENSE'}

s.homepage         = 'http://XXXDomain/XXX.privateGit/Mixed.html'

s.author           = { "男神寒" => "[email protected]" }

s.source           = { :git => "http://http://XXXDomain/XXX.privateGit/Mixed.git", :commit => "bb1e3eb2d55468252f68fb4c1881ecc68517757a" }

s.platform              = :ios, '8.0'

s.ios.deployment_target = '8.0'

s.public_header_files = 'Mixed/Classes/*.h'

s.source_files = 'Mixed/Classes/*.{h,m,swift}'

s.requires_arc = true

s.pod_target_xcconfig = { 'SWIFT_VERSION' => '2.3' }

end


接下来可是使用Cocoapods提高的命令行工具 pod spec lint Mixed.podspec 去校验,但是这个方法需要完整的去编译所有项目去检测,在我的电脑需要编译很久,我一般都习惯直接安装测试。







请到「今天看啥」查看全文


推荐文章
南沙365  ·  南沙网2017年4月21日招聘信息
7 年前
法律读库  ·  来自莫高窟的浪漫——放妻书
7 年前
国信中房网  ·  中国房地产市场迎来租赁时代
7 年前
文学投稿小助手  ·  『仰望星空』全球征文大赛
7 年前