Swift,iOS 8+框架

psparago

我想创建一个共享的Swift库(又名Cocoa Touch Framework),以在我的两个iOS应用程序之间共享。我不是专职的iOS开发人员,所以我对XCode等的知识有很多空白。

我发现本文创建了您的第一个iOS框架,并认为我是免费的:-)。可悲的是,我无法使其正常运行,主要是因为我不知道自己要做什么。

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

我几乎不明白为什么要使用Carthage(相对于CocoaPods)作为管理框架并将其导入使用的应用程序的机制。但是,该示例混合了Carthage和CocoaPods并设置了我不想要的Podspec,这使我感到困惑。

在本文中,总体上是子项目的概念,将Carthage下载的框架拖到框架中,然后将共享框架本身“导入”到使用的应用程序中,这一切都使我感到困惑。我想知道为什么要这么做以及它的后果。

所以,我会以错误的方式处理吗?是否有人在两个相关的应用程序之间私下共享Swift代码和其他工件的脑筋急转弯的简单配方

谁能解释这个理论?

当我想到复制代码时,我几乎没有时间来处理我的应用程序,而且我的骨肉也在爬行,所以我浪费了无数的时间来尝试找到简单的指南,而浪费了更多的时间来尝试遵循我发现的指南,这一切都令人失望。

非常感激任何的帮助。

谢谢,彼得...

西尔万·莫斯伯格(Silvan Mosberger)

我建议您使用迦太基,因为它更简单并且不会对您的项目文件施加任何约束。我从未使用过CocoaPods,所以无法为您提供帮助,我将指导您完成迦太基的必要步骤:

  1. 如果尚未安装Homebrew,它是OSX上最常用的软件包管理器。命令:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. 安装迦太基。命令:

    brew update && brew install carthage
    
  3. 使用iOS Cocoa Touch Framework模板创建一个新项目。保存时,选中“创建Git存储库”。

  4. .gitignore文件添加到您的项目文件夹。如果您在项目目录中,则可以执行以下操作:

    curl https://raw.githubusercontent.com/github/gitignore/master/Swift.gitignore > .gitignore
    
  5. 将您想要的代码添加到项目中,请记住,只有public声明在框架外部可用。

  6. 编辑方案(Shortcut⌘<)并检查Shared这是迦太基工作所必需的。

  7. 提交更改(快捷方式⌥⌘C),检查每个文件(右键单击>全部检查),然后输入提交消息(例如“第一版”)

  8. 标记发行版(Carthage要求):命令(在项目目录中):

    git tag 0.1 -m "Version 0.1"
    
  9. 运行以下命令以通过Carthage验证并构建项目:

    carthage build --no-skip-current
    

您的框架现在应该设置为可以与Carthage一起使用。您可以按照此处的步骤将框架添加到您的iOS项目中:

  1. Cartfile添加到您的项目(简称为Carthage(无扩展名)文件),您可以为此使用Xcode。该文件应包含以下内容:

    git "file:///path/to/your/framework/project/directory"
    github "Alamofire/Alamofire"
    # Other frameworks
    
  2. carthage update --platform iOS
    
  3. 打开Carthage/Build/iOS文件夹(在Finder中),然后将每个.framework文件拖放Linked Frameworks and Libraries项目设置(“常规”选项卡)中的部分中。

  4. 添加一个新Run Script阶段(“项目设置”>“构建阶段”>“ +”按钮)。放线

    /usr/local/bin/carthage copy-frameworks
    

    并将每个框架添加到“输入文件”部分:

    $(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,迦太基将解析每个框架所需的所有子框架工作及其子框架工作,等等。

如果一个人Cartfile想要"Alamofire" ~> "1.0"而另一个人可能会发生冲突"Alamofire" ~> "2.0",但这很少发生。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

社交框架iOS 8 Swift

来自分类Dev

将框架嵌入框架(iOS 8+)

来自分类Dev

从iOS 8框架加载图像

来自分类Dev

将Objective-C框架连接到Swift iOS 8应用程序(解析框架)

来自分类Dev

iOS 8动态框架:库未加载

来自分类Dev

嵌入式框架<iOS 8

来自分类Dev

iOS 8上的UI框架崩溃

来自分类Dev

框架尺寸iOS8 Sprite Kit

来自分类Dev

在XCode 8中为iOS 8及更高版本构建框架

来自分类Dev

iOS 8和iOS 7上的UIScrollView框架大小不同

来自分类Dev

iOS 8中的UIWindow框架与横向中的iOS 7不同

来自分类Dev

iOS 7和iOS 8上的框架高度不同

来自分类Dev

iOS从Swift使用框架导入Swift类

来自分类Dev

如何使用Swift在iOS8中创建与矩形摄像头框架的顶部对齐的方形摄像头预览

来自分类Dev

iOS8:如何从动态框架加载xib

来自分类Dev

iOS 8嵌入式框架中的头文件

来自分类Dev

iOS 8照片框架。访问照片元数据

来自分类Dev

iOS 8照片框架-替换无法正常工作的照片

来自分类Dev

更改视图框架iOS 8时UIViewController视图消失

来自分类Dev

iOS 8照片框架:获取iOS8所有相册的列表

来自分类Dev

如何使用Swift的私有iOS框架?

来自分类Dev

Swift 5编译器的iOS框架

来自分类Dev

iOS Swift:从iOS框架向iOS应用发送日志信息

来自分类Dev

iOS 8 Swift阅读清单

来自分类Dev

支持iOS 8-Swift

来自分类Dev

iOS 8 + Swift中的setHTTPBody

来自分类Dev

Swift NSLocale Simulator iOS 8

来自分类Dev

支持iOS 8-Swift

来自分类Dev

Swift NSLocale Simulator iOS 8