首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift,iOS 8+框架

Swift,iOS 8+框架
EN

Stack Overflow用户
提问于 2016-07-20 00:23:05
回答 1查看 254关注 0票数 3

我想创建一个共享的Swift库a.k.a。Cocoa框架在我的两个iOS应用程序之间共享。我不是一个全职的iOS开发人员,所以我在XCode等方面有很多空白。

我找到了这篇创建第一个iOS框架文章,认为我在家是免费的:-)。可悲的是,我无法让它发挥作用,主要是因为我不知道我想做什么。

我只想在我的两个应用程序之间创建一个共享Swift代码的(私有)框架(库)。我希望在框架中使用CocoaPods来引入其他框架,比如Alamofire。我无意公开这个架构。

我几乎不明白为什么人们会使用迦太基(vs. . CocoaPods)作为管理框架并将其导入消费应用程序的机制。但是,这个例子混合了迦太基和CocoaPods,并建立了一个我不想要的Podspec,这让我感到困惑。

在这篇文章中,一般子项目的概念,以及将迦太基下载的框架拖到框架中,以及在消费应用中“导入”共享框架本身,这些都让我感到困惑。我想知道我为什么要这么做,它的后果是什么。

我是不是走错路了?有没有人有一个大脑死亡的简单配方,可以私下在两个相关应用程序之间共享、Swift、代码和其他构件?

有人能解释这个理论吗?

当我想到重复代码的时候,我几乎没有时间去做我的应用程序和爬行,所以我浪费了无数个小时去寻找简单的指南,更多的时间试图跟随我发现的那些--所有这些都是令人失望的结果。

任何帮助都将不胜感激。

谢谢彼得。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 02:16:10

我建议您使用Carthage,因为它要简单得多,并且不会对项目文件施加任何限制。我无法帮助您完成CocoaPods,因为我从未使用过它,我将指导您完成迦太基所需的步骤:

  1. 如果您还没有安装自制软件,那么它是OSX上最常用的包管理器。命令: /usr/bin/ruby -e“(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
  2. 安装迦太基。命令: brew更新& brew安装carthage
  3. 使用iOS Cocoa框架模板创建一个新项目。保存时,请检查"Create存储库“。
  4. 向项目文件夹中添加一个.gitignore文件。如果您在项目目录中,可以这样做: 卷曲https://raw.githubusercontent.com/github/gitignore/master/Swift.gitignore > .gitignore
  5. 将您想要的代码添加到项目中,请记住,只有public声明在框架之外可用。
  6. 编辑方案(快捷方式⌘<)并检查Shared。这是迦太基工作所必需的。
  7. 提交更改(快捷⌥⌘C),检查每个文件(右键单击>检查所有)并输入提交消息(例如:“第一版”)
  8. 标记发行版(由Carthage要求):命令(在项目目录中): git标签0.1 -m“版本0.1”
  9. 运行以下命令,通过Carthage验证和构建项目: 迦太基建造--无跳过电流

您的框架现在应该设置为与迦太基一起工作。您可以按照这里步骤将框架添加到iOS项目中:

  1. 将一个卡特夫添加到您的项目(简单地说是一个名为Carthage (没有扩展名)的文件),您可以为此使用Xcode。该文件应包含以下内容: git "file:///path/to/your/framework/project/directory“github "Alamofire/Alamofire”#其他框架
  2. 跑 迦太基更新--平台iOS
  3. 打开Carthage/Build/iOS文件夹(在Finder中),并将每个.framework文件拖放到项目设置(General选项卡)的Linked Frameworks and Libraries部分。
  4. 添加一个新的Run Script阶段(项目设置>构建阶段> "+“按钮)。把线放上去 /usr/local/bin/carthage副本-框架 并将每个框架添加到“输入文件”部分: $(SRCROOT)/Carthage/Build/iOS/MyFramework.framework $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework

如果你被困在某个地方,请告诉我。

编辑:当您对库进行更改时,您可以这样做:

  1. 提交
  2. git tag 0.2 -m "Version 0.2"

在使用该框架的项目中,只需运行carthage update --platform iOS,其他什么都不用做。

如果您的框架也需要使用Alamofire,它需要与其他项目相同的Cartfile设置。在运行carthage update时,Carthage将解决每个框架及其子框架等所需的所有子框架。

如果一个Cartfile想要"Alamofire" ~> "1.0",另一个"Alamofire" ~> "2.0"需要冲突,那么可能会发生冲突,但这种情况很少发生。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38470517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档