Tag: XCCONFIG

从Xcode配置生成代码

如果您还使用xcconfig文件来管理不同的环境beta , staging和live那么您可能已经注意到,通过plist从xcconfig读取值并不是真正的干净方法,它也不提供编译时安全性。 因为有时您忘记了将配置值添加到其他环境,并且预处理器宏不再能够读取这些值。 在plist中公开配置环境值 要从配置中读取值,旧的方法是在info.plist添加条目,然后在代码运行时中读取它们。 如果这些值不在特定配置中,则该应用程序将在运行时崩溃。 将生成的文件从finder中拖放到Xcode项目中,以便可以对其进行引用。 将文件BuildConfig.generated.swift添加到gitignore以便可以在每次构建时生成它。 否则,您将经常看到该文件在更改,因为您将经常在debug和release配置之间进行切换。 让我们将网址转换为它的类型 另一个sed😉 sed -E’s /“ http。* / URL(string:&)!/’ 将此添加到同一文件将成为 echo“ //生成的文件,请不要编辑” printf“ /// \ n // \ n //由BuildConfig.sh \ n” printf“ import Foundation \ n \ n” echo“ struct BuildConfig {” echo“ fileprivate init (){}“ env | \ grep” buildConfig_“ | \ sed“ s […]

使用.xcconfig文件在Xcode Project中存储各种SDK密钥和ID。

可以直接保存在plist中。 如果是Facebook和Google Login集成,则还必须在项目目标->信息中添加URL类型。 如果有一天,您必须为项目更改这些开发密钥,ID,机密ID,ClientId,RevereClientId等。 然后,您必须在多个位置(例如info.plist,项目目标的信息中的URL类型和.swift文件中的URL类型)中更改这些内容。 因此,如果您只想在一个地方管理这些事情,这就是解决方案。 在名为Release.xcconfig和Debug.xcconfig的项目中创建两个带有.xconfig扩展名的文件,并在如下所示的两个文件中写入各种SDK的所有密钥,ReverseClientIds,ClientIds等。 URL类型内重复相同(项目目标->信息) 如果要访问.xcconfig,则.swift文件中的任何键或值。 就像使用Google SignIn一样,您必须使用以下代码访问Google Client ID GIDSignIn.sharedInstance()?. clientID = xxxxxxxxxxxx 这样,您将无法直接从.xconfig文件访问值,但可以从Info.plist文件访问值。 因此,请先确保将其添加到Info.plist中 在我们的情况下,该名称以GOOGLE_CLIENT_ID的名称添加。 因此,要从Info.plist访问此代码,请编写以下代码。 让googleClientID =(Bundle.main.infoDictionary?[“ GOOGLE_CLIENT_ID”] 作为 ?字符串)? .replacingOccurrences(of:“ \\”,其中:“”) 还有一件事,如果您已经安装了Facebook SDK,GoogleSDK或任何其他SDK,则可以按照以下命名约定在xcode项目中找到两个.xcconfig文件。 Pods-PROJECT_NAME.debug.xcconfig Pods-PROJECT_NAME.release.xcconfig 因此,您已经分别将这些文件导入或包含在Release.xcconfig和Debug.xcconfig文件中。 在第一行的Release.xcconfig中写入以下内容。 #include“ Pods /目标支持文件/Pods-PROJECT_NAME/Pods-PROJECT_NAME.release.xcconfig” 在Debug.xcconfig里面写这个。 #include“ Pods /目标支持文件/Pods-PROJECT_NAME/Pods-PROJECT_NAME.debug.xcconfig” 现在,您必须完成最后一步。 转到项目导航器->信息->配置 并使用您创建的文件(如下所示)更改带有红色标记的xcconfig文件。 现在,您将所有密钥,ClientID等都集中在一个地方。 您可以随时在Release.xconfig和Debug.xcconfig文件中进行更改。 快乐的编码:— — — — — — — —)和平家伙 如果您觉得有帮助,请这样做。

直到Xcode重新启动后,XCConfig才会刷新

我想有一个单一的目标和几个编译scheme,并且有一些由scheme的预动作脚本声明的编译器定义。 预执行脚本正在生成comp.xcconfig文件,该文件由[Release | Debug] Config.xcconfig #include。 我生成的comp.xcconfig持有这一行: GCC_PREPROCESSOR_DEFINITIONS = $(inherited) MY_TEST 我的应用程序包括这些行: #ifdef MY_TEST #error ye #else #error oy #endif 按照预期,使用上述configuration进行编译会导致错误“ye”。 如果我然后更改comp.xcconfig是: GCC_PREPROCESSOR_DEFINITIONS = $(inherited) MY_TEST1234 我还在得到'你'。 但是,如果我退出Xcode并重新启动它,我正在得到预期的'OY'。 我的问题: 有没有办法迫使Xcode跟踪xcconfig文件的变化,而不需要退出Xcode?

有没有办法将xcode版本设置导出到.xcconfig文件?

是否有可能导出xcode的构build设置为.xcconfig文件? 除了复制粘贴到文本文件逐行。 谢谢!

如何在xcconfig文件中configuration完整的URL

我有一个xcconfig文件,其中包含我的应用程序应该打到哪个服务器的configuration。 在debugging模式下,这将是与发布版本不同的服务器。 我遇到的问题是在双斜杠之后,将forms为http://www.stackoverflow.com的URL视为注释。 所以我在代码中得到的string是'http:' 我已经读过,我可以在Info.plist上添加一个传统的构build标志,我想知道是否有其他人有类似的问题,并已经解决了? 谢谢。