从私有 Pod 的资产目录加载图像

Fah*_*dsk 2 ios cocoapods swift4.1

我创建了一个包含一些图像的私有 pod,我已将该图像放在资产目录中,现在当我尝试访问它时,它没有加载到我安装了这个私有 pod 的主机应用程序中

这是我的私人 podspec

s.resource_bundles = {
     'myPod' => ['myPod/Assets/*.xcassets']
  }
Run Code Online (Sandbox Code Playgroud)

并且我已将此资产目录添加到使用 pod 创建的 Assets 文件夹中

这在viewDidLoad我的私人 pod里面的 VC 里面

if let image = UIImage(named: "myIcon", in:Bundle(for:myVC.self), compatibleWith: nil) {
    sendButton.setImage(image.withRenderingMode(.alwaysTemplate), for: .normal)
    sendButton.setTitle("", for: .normal)
}
Run Code Online (Sandbox Code Playgroud)

我还可以在我的主机应用程序、Resources 文件夹内的 pods 部分看到资产文件,我的包也不是零。

Fah*_*dsk 5

最后,我找到了一个解决方案,原来问题出在资源包上,我可以看到Assets.car包中存在,但图像仍未加载。

我认为使用 png 文件可能有效,并且我可以看到它正在被复制到包中,但我无法使用图像名称访问它,结果我必须将其添加到图像名称中myPod.bundle/imageName并且它有效但仍然不是很好的解决方案。

最后,有一个更干净、更简单的解决方案,就是使用resources而不是resource_bundles在 pod 规范文件中,仅此而已。

s.resources = 'myPod/Assets/**'
Run Code Online (Sandbox Code Playgroud)

然后执行 pod install 它将从您的资产目录加载图像。