【问题标题】:Pod (PaymentKit) can't load images using imageNamedPod(PaymentKit)无法使用 imageNamed 加载图像
【发布时间】:2015-06-17 08:05:34
【问题描述】:

我正在将我的项目更新到 Swift 1.2

到目前为止已经做了什么(工作项目的变化):

  • 将 Xcode 更新到 6.3
  • 将 Alamofire 更新至 1.2.0
    • 将其添加到 Podfile 中
    • 在 Podfile 中添加了 use_frameworks!
    • 将 Podfile 7.0 中的平台更改为 8.0
  • 更新了 Stripe 3.0.0 -> 3.1.0

我还修复了我的代码中的一些问题(主要将 as 更改为 as! 用于铸件)。

在那之后 PaymentKit(它没有更新)停止加载其图像资源(背景、卡片图像等)。

我已签入派生数据 - PaymentKit.framework 包含其中的所有资产。但是像 [UIImage imageNamed:@"mastercard"] 这样的代码返回 nil。我花了几个小时试图解决它 - 没有运气......

任何想法可能是什么原因?

更新

我找到了原因 - use_frameworks! flag 但我不知道如何留下这个标志(Cocoapods 需要它,因为 Alamofire 是一个 Swift Pod)并且有工作的 PaymentKit。 我现在能看到的唯一原因 - 是使用 git submodule 添加 Alamofire,或者只是将其合并到我的项目中。

【问题讨论】:

    标签: ios swift cocoapods stripe-payments


    【解决方案1】:

    我认为这里的问题是这个 pod “还没有准备好”成为一个框架。他们使用 imageNamed 而不是

    NSBundle(forClass: self.class()).pathForResource("amex", ofType: "png")
    

    您仍然可以通过这种方式从代码中获取这些图像

    let image = NSBundle(forClass: PTKView.self).pathForResource("amex", ofType: "png")
    

    现在的“脏”解决方法是将所有资源从这个 pod 导入到您的图像资产中,或者只是将其复制到主包中。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2018-09-24
    相关资源
    最近更新 更多