- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在 iOS 项目中使用 Cocoapods 和一些自定义配置。
我有 3 个(Dev、Stage、Prod),每个都有一些自定义 GCC_PREPROCESSOR_DEFINITIONS
.我看到周围有人向我们建议#include <path-to-pods.xcconfig>
,但这似乎是执行此操作的旧方法。
我见过 Cocoapods 0.39
根据我的配置自动生成其配置文件并自动将它们添加到我的目标中(这很好)。
this article也证实了这一点谁在谈论创建 Podfile 的“新方法”。问题是这些文件不包含我的配置。
我正在尝试使用 xcodeproj
和 link_with
, 但没有成功。有谁知道处理 Cocoapods + 自定义 xcconfig 文件的正确方法是什么?
最佳答案
问题在于 CocoaPods 基于 xcconfig 文件并设置实际变量。但是当完整配置在 xcconfig 文件中时,这些值不能以任何方式使用,例如:
#include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = ...
在这种情况下,GCC_PREPROCESSOR_DEFINITIONS
会覆盖之前的值。
解决方法如下:
更新 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
按以下方式定义 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/
有没有办法检查您的 xcode 项目是否正在使用您提供的 .xcconfig 配置文件? 我的意思是,是否有某种方式“打印”语句,例如调试,如#warning、#error、printf 等...?
我使用 6 个自定义 xcconfig 设置我的项目,如显示的图像: My project xcconfig setting 在每个自定义 xcconfig 文件中,我都包含了相应的 pods-gen
如果我有一个 Adhoc.xcconfig 我在其中定义了一个变量: PREPROCESSOR_DEFINITIONS = IS_ADHOC=1 CRASHLYTICS=1 在运行脚本中,有一个检查,
我将 firebase 添加到我的 pod 中,在 FirebaseCore.xcconfig 中有 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOA
是否可以在配置文件中使用宏?我想实现这样的目标: if iPad set variable to 1 else set variable to 0 这可能吗?我宁愿不为此使用脚本。 最佳答案 您通常应
使用 Xcode 8,在 macOS Sierra 上运行,我试图在 xcconfig 文件中声明一个条件变量。 我的项目正在使用 fastlane match ,所以我主要想使用 fastlane
我是 Xcode 新手。 在过去的两天里,我一直在研究如何在访问网络服务的 iPhone 上测试我的应用程序。在模拟器上,我可以使用硬编码的“localhost”变量,但我不想硬编码所有配置设置。 我
我创建并应用了一个简单的 .xcconfig 文件,其中包含 GCC_PREPROCESSOR_DEFINITIONS[config=Debug] = FOODEBUG GCC_PREPROCESSO
我正在使用 Xcode 3.2 和 xcconfig文件。文件按目标组织。例如,我有一个 debug.xcconfig文件和 release.xcconfig一。两者都使用通用设置,所以我添加了 sh
我正在使用 Xcode 和 .xcconfig 文件。我试图在预处理器定义中附加一些值,但我根本无法使其工作。 我尝试了以下方法(以及它的许多变体),但到目前为止没有运气: GCC_PREPROCES
我遇到了其他线程,但无法找到针对我的情况的解决方案。 我有三个配置文件(DEV、QA、Prod) 在每个 xcconfig 文件中,我覆盖了 $(product_name) 例如:PRODUCT_NA
我想使用 .xcconfig 文件为我的项目加载一些预定义的设置,主要是我要链接的库、附加链接器路径和 header 搜索路径。我正在寻找一种解决方案,我可以在其中使用 xcconfig 文件的路径并
我正在 build 一个图书馆。我希望它编译并包含另一个(即 googleConversion),但我需要使用 xcconfig 文件来完成(因为对于某些构建,我不想包含库) 以下:Link bina
有没有办法在代码中获取正在使用的 .xcconfig 文件的名称? 如下图所示,我希望能够找出配置是“Lab2” 最佳答案 这是一种阅读方式... 编辑您的 Lab2.xcconfig 文件并添加此内
我已经开始使用 xcconfig 文件进行特定于环境的build设置,我注意到字符串引号是按字面解释的。 例如 APP_BUNDLE_DISPLAYNAME_SUFFIX = "DEBUG" 将显示
我在一个由多个开发人员组成的团队中开发 iOS 应用程序。我们都有属于同一个开发配置文件的开发人员证书。当我构建我们正在开发的应用程序以便在设备上对其进行测试时,我需要明确指定要使用的代码签名身份。否
我有一个 Xcode 项目,它本质上是一个内置到几个几乎相同的目标中的应用程序。我已经将几乎所有构建配置设置移到中心位置,但我无法弄清楚如何将静态库 (libMantle.a) 的链接移动到 xcco
我正在尝试在 iOS 项目中使用 Cocoapods 和一些自定义配置。 我有 3 个(Dev、Stage、Prod),每个都有一些自定义 GCC_PREPROCESSOR_DEFINITIONS .
我创建了示例项目来演示问题 https://github.com/pikciu/XCodeWorksapce/tree/noPods 无效的框架路径 框架构建的配置与主项目不同。 有 4 种构建配置和
有没有办法在 Podfile 中指定那个 xcconfig文件应该是 #include d 在 Cocoapods 生成的那个? 是否有公开的方法/变量用于附加此 #include还是我需要阅读生成的
我是一名优秀的程序员,十分优秀!