检查应用程序是否构建为发布
我必须确保,应用程序不会发送推送通知的设备令牌,如果它在调试中构建,并在发布时发送。
我可以使用这段代码吗?
#if RELEASE [SendTokenRequest sendDeviceToken:deviceToken withCompletion:nil]; #endif
显然它很难测试,它编译而不是在调试中执行,只是不确定它将在生产中执行……
是的,它应该适用于您的生产案例,假设RELEASE
是仅在发布构建步骤中创建的预处理程序指令。
我在我工作的应用程序中做了类似的事情,但使用了一个DEBUG
宏(反转你的测试)。 我还添加#else
以确保它已登录调试。
#ifndef DEBUG // Make sure this is executed in debug NSLog(@"Send token in production"); #else // Release code #endif
您可以使用以下方法使用您想要的标志来测试您是否处于调试,adhoc,发布或调试模式:
转到“构建设置”并添加其他标记,如上一张图片。
接下来,您可以在项目中使用它(在您的情况下):
#ifdef __RELEASE__ // Do what you want #endif
您可以根据您的方案设置使用__DISTRIBUTION__
__RELEASE__
__DEBUG__
__AD_HOC__
老问题,但我找到了另一种方法。 将此对添加到Info.plist
Configuration ${CONFIGURATION}
现在您可以检查应用程序是发布还是调试:
var config = Bundle.main.infoDictionary?["Configuration"]