gpt4 book ai didi

ios - Cocoapods 和自定义 xcconfig

转载 作者:可可西里 更新时间:2023-11-01 03:57:50 24 4
gpt4 key购买 nike

我正在尝试在 iOS 项目中使用 Cocoapods 和一些自定义配置。
我有 3 个(Dev、Stage、Prod),每个都有一些自定义 GCC_PREPROCESSOR_DEFINITIONS .我看到周围有人向我们建议#include <path-to-pods.xcconfig> ,但这似乎是执行此操作的旧方法。
我见过 Cocoapods 0.39根据我的配置自动生成其配置文件并自动将它们添加到我的目标中(这很好)。
this article也证实了这一点谁在谈论创建 Podfile 的“新方法”。问题是这些文件不包含我的配置。
我正在尝试使用 xcodeprojlink_with , 但没有成功。有谁知道处理 Cocoapods + 自定义 xcconfig 文件的正确方法是什么?

最佳答案

问题在于 CocoaPods 基于 xcconfig 文件并设置实际变量。但是当完整配置在 xcconfig 文件中时,这些值不能以任何方式使用,例如:

#include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = ...

在这种情况下,GCC_PREPROCESSOR_DEFINITIONS 会覆盖之前的值。

解决方法如下:

  1. 更新 Podfile 以在 post_install 上使用 PODS_ 前缀重新定义 GCC_PREPROCESSOR_DEFINITIONS 值:

    post_install do |installer|
    work_dir = Dir.pwd
    Dir.glob("Pods/Target Support Files/Pods-Demo/*.xcconfig") do |xc_config_filename|
    full_path_name = "#{work_dir}/#{xc_config_filename}"
    xc_config = File.read(full_path_name)
    new_xc_config = new_xc_config.sub(/GCC_PREPROCESSOR_DEFINITIONS/, 'PODS_GCC_PREPROCESSOR_DEFINITIONS')
    File.open(full_path_name, 'w') { |file| file << new_xc_config }
    end

    end
  2. 按以下方式定义 xcconfig 文件:

    #include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"
    GCC_PREPROCESSOR_DEFINITIONS = $(PODS_GCC_PREPROCESSOR_DEFINITIONS) ...

在这种情况下,GCC_PREPROCESSOR_DEFINITIONS 应该包含 PODS_GCC_PREPROCESSOR_DEFINITIONS 和您的自定义值。

关于ios - Cocoapods 和自定义 xcconfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com