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