【问题标题】:Sharing swift code and maintaining the code in one place [framework/library]共享 swift 代码并在一个地方维护代码 [框架/库]
【发布时间】:2015-07-10 14:31:33
【问题描述】:

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

Create and import swift framework

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

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

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

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

:0:错误:没有这样的文件或目录:'/path/to/project/MyFrameWork/SomeClass.swift'

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

赏金目标:

提出一个可行的选项,我可以如何以有效的方式共享一组类。我需要能够轻松地重用来自一个项目的代码,并且能够在一个地方维护此代码。它还需要与iOS7兼容,所以动态库可能不会为我做这件事。 任何能让我完成上述工作的工作流程都将是赢家。 谢谢

【问题讨论】:

    标签: ios xcode swift frameworks


    【解决方案1】:

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

    【讨论】:

    • 感谢mustafa的回答,我真的考虑过这样做...直到我发现它只支持iOS8以上...
    • 那你就别无选择了。因为你不能创建静态 swift 库。
    • 你确定吗?我只需要能够在我的项目之间共享代码,为什么以上帝的名义如此困难/不可能:(?
    【解决方案2】:

    为了帮助别人,这里是我所做的后续行动:

    由于——在撰写本文时——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'
    

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      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'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-16
        • 1970-01-01
        相关资源
        最近更新 更多