如何通过Swift/Objective-C代码检测Xcode中StoreKit测试选项是否启用?
检测Xcode StoreKit测试选项是否启用的方法
编译期检测
你可以给启用StoreKit测试的Scheme配置单独添加预编译宏:打开Scheme的Build Settings,找到Preprocessor Macros,给对应配置添加STOREKIT_TEST_ENABLED=1。之后就能在代码里直接判断:
Swift 实现
#if STOREKIT_TEST_ENABLED print("StoreKit测试已启用(编译期检测)") #else print("StoreKit测试未启用(编译期检测)") #endif
Objective-C 实现
#ifdef STOREKIT_TEST_ENABLED NSLog(@"StoreKit测试已启用(编译期检测)"); #else NSLog(@"StoreKit测试未启用(编译期检测)"); #endif
运行期检测
苹果没有提供直接读取Scheme配置的API,但可以通过Xcode注入的环境变量间接判断:
Swift 实现
if ProcessInfo.processInfo.environment["XCODE_STOREKIT_TESTING_ENABLED"] != nil { print("StoreKit测试已启用(运行期检测)") } else { print("StoreKit测试未启用(运行期检测)") }
Objective-C 实现
if ([[[NSProcessInfo processInfo] environment] objectForKey:@"XCODE_STOREKIT_TESTING_ENABLED"]) { NSLog(@"StoreKit测试已启用(运行期检测)"); } else { NSLog(@"StoreKit测试未启用(运行期检测)"); }
补充:这个环境变量是Xcode内部使用的,后续可能存在变动,建议和编译期宏的方式结合使用,结果更稳妥。
内容的提问来源于stack exchange,提问作者Alfonso Tesauro
相关产品推荐
相关产品推荐

