如何根据构建配置为Xcode传递命令行参数(Firebase调试场景)
在Debug/Staging构建中自动启用Firebase调试视图的正确方法
我明白你的困扰——直接在application(_:didFinishLaunchingWithOptions:)里加CommandLine.arguments.append("-FIRDebugEnabled")确实没用,因为Firebase在App启动的极早期就已经读取了命令行参数,等你在这个方法里添加参数时,它早就完成初始化了。下面给你两种靠谱的实现方式,选适合你的就行:
方法一:通过Scheme按构建配置添加启动参数
这是最直接的方式,能精准控制哪些构建配置启用调试参数:
- 打开Xcode,点击顶部菜单栏的
Product > Scheme > Edit Scheme(或者用快捷键Cmd + <快速打开) - 在左侧导航栏选择
Run,切换到Arguments标签页 - 在
Arguments Passed On Launch区域,点击+按钮,输入-FIRDebugEnabled - 关键一步:点击这个参数左侧的复选框,然后点击复选框旁边的小箭头(
Options按钮),选择Use the run action's build configuration - 在弹出的配置列表里,只勾选Debug和你的自定义Staging配置,取消勾选Release。这样只有在这两种构建配置下,这个启动参数才会被自动添加。
方法二:通过Info.plist + 构建配置变量实现
如果你不想修改Scheme,也可以用这种更“工程化”的方式,通过配置自动控制调试开关:
- 打开项目的
Info.plist文件,添加一个新的键:FIRDebugEnabled,类型选择Boolean - 点击这个键的值输入框,选择
Enter a variable...,输入$(FIREBASE_DEBUG_ENABLED) - 打开项目的
Build Settings页面,点击左上角的+按钮,选择Add User-Defined Setting,命名为FIREBASE_DEBUG_ENABLED - 在
Build Settings里找到这个新设置,分别在Debug和Staging配置下把值设为YES,Release配置下设为NO - 这样每次构建时,Info.plist里的
FIRDebugEnabled会自动根据当前配置切换值,同样能启用Firebase的调试视图,而且不需要手动管理启动参数。
两种方法都能解决你的问题,选哪种看你团队的配置习惯就行~
内容的提问来源于stack exchange,提问作者Bob De Kort
相关产品推荐
相关产品推荐

