【问题标题】:How do I use SwiftyJSON in my iOS App?如何在我的 iOS 应用程序中使用 SwiftyJSON?
【发布时间】:2015-05-28 16:00:15
【问题描述】:

我最近使用 Carthage 将 SwiftyJSON 添加到了我的 xCode 项目中。

购物车文件

$ cat Cartfile
github "SwiftyJSON/SwiftyJSON" >= 2.1.2

我运行这个命令来安装 SwiftyJSON

$ carthage update

我将构建的框架添加到我的 xCode 项目中

我在项目顶部导入了框架

但我仍然收到此错误:

Use of unresolved identifier 'JSON'

说真的,我做错了什么?我是 iOS 开发新手。

更新:我尝试删除框架并将框架重新拖动到链接框架和库,并按照 Carthage 中的说明将“运行脚本”部分添加到“构建阶段”。

我确信在Carthage Update 过程中出现了问题,因为我在初次尝试时收到了这个错误:

$ carthage update
*** Fetching SwiftyJSON
*** Fetching Alamofire
*** Checking out SwiftyJSON at "2.1.3"
*** Checking out Alamofire at "1.1.4"
*** xcodebuild output can be found in /var/folders/0x/swzt630n3_575tglljpwhn4h0000gn/T/carthage-xcodebuild.Pc6rLg.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
*** Building scheme "Alamofire OSX" in Alamofire.xcworkspace
*** Building scheme "SwiftyJSON" in SwiftyJSON.xcworkspace
** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

查了问题,说可以跑

carthage update --configuration Debug

它安装得很好,但还是有问题......

【问题讨论】:

  • 你能检查一下 SwiftJSON 文件在你的项目目录中的位置吗?
  • 在 Carthage/build/iOS 中

标签: ios xcode swift swifty-json carthage


【解决方案1】:

我不知道为什么你不能在 Carthage 的帮助下添加这个资源,但是如果你需要使用 SwiftyJSON,你只需要:

  1. 输入此网址:SwiftyJSON

  2. 单击“克隆或下载”按钮,然后在“下载 ZIP”中,如下图所示:

Clic the button "Clone or download" and then in "Download ZIP" IMG

  1. 您将获得一个名为“SwiftyJSON-master”的 ZIP 文件

  2. 解压文件

  3. 输入路径:

SwiftyJSON-master/Source/

  1. 您将看到一个文件名:

SwiftyJSON.swift

  1. 将该文件复制到项目的文件中。

  2. 将该文件添加到您的项目目录中。

  3. 该文件将与您可能使用的项目中的其他类一样。

【讨论】:

    【解决方案2】:

    TL,DR:不能在模拟器中使用它,请使用 iPhone。

    我也按照你的方法,我发现 --configuration debug 会将“iOS Developer”身份代码签名为 SwiftyJSON 的项目属性。

    AFAIK,代码签名的“iOS 开发人员”身份未使用模拟器运行。 当我在 iPhone 6 上运行它时,我的问题得到了解决。

    【讨论】:

      【解决方案3】:

      我切换到 Cocoapods,它就可以正常工作。同样,在 iOS 开发方面,我完全是个菜鸟。在寻找依赖管理器时,我查看了 Cocoapods 和 Carthage 以了解他们必须提供的内容。我对 Carthage 保持简单的说法很感兴趣:

      “Carthage,因为我们想要尽可能简单的工具——一个可以完成工作而不需要接管 Xcode 职责的依赖管理器”

      虽然在有选择时我总是会选择更简单的工具,但我认为我对 iOS 生态系统(阅读:Xcode)的了解还不够,无法使用 Carthage。

      【讨论】:

        【解决方案4】:

        在从Carthage 添加SwiftyJSONAlamofire 框架时,您似乎错过了一步。从Carthage 自述页面查看这些步骤:

        步骤:

        • 创建一个 Cartfile,列出您想在项目中使用的框架。
        • 运行迦太基更新。这会将依赖项提取到 Carthage/Checkouts 文件夹中,然后构建每个。
        • 在应用程序目标的“常规”设置选项卡的“链接框架和库”部分中,从磁盘上的 Carthage/Build 文件夹中拖放您要使用的每个框架。
        • 在应用程序目标的“构建阶段”设置选项卡上,单击“+”图标并选择“新建运行脚本阶段”。创建一个包含以下内容的运行脚本:

          /usr/local/bin/carthage copy-frameworks
          

          并在“输入文件”下添加要使用的框架的路径,例如:

          $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
          $(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework
          

        看起来您错过了第 4 步。我自己在一个演示 Swift 项目中尝试了这些步骤,它们运行良好。尝试这些步骤,如果您仍有问题,请发表评论。谢谢!

        【讨论】:

        • 我尝试重做您的建议,但问题仍然存在...查看我更新的问题。
        猜你喜欢
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-04
        • 2013-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多