共享 swift 代码并在一处维护代码 [framework/library]

Sharing swift code and maintaining the code in one place [framework/library]

我想创建一个 Swift 框架并将其导入到我的其他项目中。显然,我想通过使用有问题的框架来共享我的代码。 我在这里只能找到一个相关问题

Create and import swift framework

和互联网上的一些教程似乎对我没有任何用处。 所以这就是我所拥有的:

  1. 一个 XCode 项目(带有 .xcworkspace 工作空间,由 CocoaPods),这是应该使用的实际应用程序 框架。
  2. 一个"Cocoa Touch Framework"XCode项目 框架。

将框架(2)包含到应用程序(1)中的步骤是什么?

我尝试使用上面链接问题中描述的方法,但是在构建时,它说它没有找到实际的源文件。

< unknown >:0: error: no such file or directory: '/path/to/project/MyFrameWork/SomeClass.swift'

其中 /path/to/project/ 显然只是一个占位符...

赏金目标:

Propose a viable option how I could share a set of classes in an efficient way. I need to be able to reuse code from one project easily and be able to maintain this code in one place. It also needs to be compatible with iOS7, so dynamic libraries probably won't do it for me. Any workflow that would allow me to do what I described above will be a winner. Thanks

我不知道这是否是答案,但无论如何我都会告诉它。在 Xcode 中创建框架项目并将其放在 github 中。然后你可以用 Carthage

创建框架

为了帮助他人,这里是我所做的跟进:

由于 - 在撰写本文时 - iOS8 被大约 81% 的 Apple 移动设备用户使用,我想我会选择 CocoaPods 路线。 (我提到这个是因为 iOS8 需要使用动态 Swift 库)而且因为无论如何我都重新开始我的项目,我想,为什么不从 iOS8 开始...

我基本上是按照这些思路创建了一个新库(注意:您的系统需要安装 CocoaPods!)

pod lib create <YourLibraryName>

并相应地更改在此过程中创建的 .podspec 文件的内容。

将您的源代码添加到为您的库创建的文件夹(或您在 .podspec 文件中指定的 source_folder)并从中创建一个 git 存储库。现在您将能够在每个也使用 CocoaPods 的项目中使用这个库,只需添加

pod 'YourFrameWork', :git => 'https://path/to/your/repo.git'

希望对您有所帮助。

Here 是我找到的一个很好的教程。

你必须做什么?

[sudo] gem install cocoapods --pre

.podspec 文件

Pod::Spec.new do |s|
  s.name = 'MotionKit'
  s.version = '0.6'
  s.license = 'MIT'
  s.summary = 'CoreMotion Made insanely simple'
  s.homepage = 'https://github.com/MHaroonBaig/MotionKit'
  s.social_media_url = 'https://twitter.com/PyBaig'
  s.authors = { 'Haroon Baig' => 'haroon.prog@gmail.com' }
  s.source = { :git => 'https://github.com/MHaroonBaig/MotionKit.git', :tag => s.version }

  s.ios.deployment_target = '8.0'

  s.source_files = 'MotionKit/*.swift'

  s.requires_arc = true
end

现在测试你新创建的 Pod

现在是测试您的 pod 的时候了,以确保它工作正常。快速将 pod 文件创建到您的测试项目中,并向其中添加以下行。

pod '[s.name]', :git => '[s.source]'

你的情况:

pod 'MotionKit', :git => 'https://github.com/MHaroonBaig/MotionKit.git'