【问题标题】:Getting custom Pod to work with Google Pods让自定义 Pod 与 Google Pod 一起使用
【发布时间】:2017-07-27 21:41:59
【问题描述】:

我已经尝试了一个多星期来让我的自定义 Pod 工作。这取决于 GooglePlaces 和 GoogleMaps Api。我想出了如何让本地 Pod 为不依赖的 swift 代码工作。但是,一旦我将其中一个 Google pod 引入其中,我就会得到错误:

[!] 'Pods-testPlaceSetterPod' 目标具有传递依赖项,其中包括静态二进制文件:(/Users/alexanderbollbach/Desktop/testPlaceSetterPod/Pods/GooglePlaces/Frameworks/GooglePlaces.framework)

Google 地图也会出现同样的错误。

我查看了 Cocoapods github 问题部分,但所有对话都超出了我的知识水平。我能做些什么?

【问题讨论】:

    标签: xcode google-maps cocoapods google-places


    【解决方案1】:

    我遇到了同样的问题,但使用的是 Google 移动广告。经过几个小时的搜索,简短的答案是你不能用 Swift 来做。我不是 Cocoapod 专家,正如您的错误所述,谷歌将他们的 SDK 分发为静态二进制文件(与动态相反),这是行不通的。技术推理超出了我的知识范围,但我做了find a post 这促使我放弃尝试

    在 GoogleMaps 作为动态框架发布之前,您只能 支持它作为库的传递依赖。然而,正如你 正在使用 swift 框架 - 你也不能支持它。恐怕您最好的选择是要求 Google 将他们的库作为动态框架发布。

    我确实想出了一个我认为尽可能好的解决方案。我没有在Podfile 中将我的项目作为 Cocoapod 分发,而是添加了几行以包含 Google SDK 并下载我想要作为 pod 分发的文件。

    查看McAdViewController,位于Installation 部分下。基本上,我像往常一样添加了 Google Mobile Ads pod,并添加了一些 Ruby 以在每次执行 pod installpod update 时下载最新的 McAdViewController 副本。

    pod 'Google-Mobile-Ads-SDK', '~> 7.19'
    
    puts "Downloading McAdViewController..."
    require 'open-uri'
    open('./McAdViewController.swift', 'wb') do |file|
      file << open('https://raw.githubusercontent.com/kmcgill88/McAdViewController/master/McAdViewControllerExample/McAdViewController.swift').read
    end
    puts "Successfully downloaded McAdViewController! :)"
    

    如果有人知道将其更改为合法 pod 的更好方法,我很想听听!

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2021-05-04
      • 2021-06-19
      相关资源
      最近更新 更多