technique to separate API keys in a xcconfig file described in this answer不适用于Swift 2.2 due to a bug (SR-909)。
有解决方法吗?
答案 0 :(得分:5)
感谢您指出该错误,不会在一段时间内想出这个。如果有任何帮助,我最后添加了一个额外的objc常量桥接到Swift并使用来自swift的桥接常量:
// Constants.h
extern NSString *const kDropBoxAPIKey;
// Constants.m
NSString *const kDropBoxAPIKey = DROPBOX_API_KEY;
// xxx-Bridging-Header.h
#import "Constants.h"
然后在Swift中使用桥接键
// xx.swift
...
// let auth = DropboxAuth(appKey: DROPBOX_API_KEY)
let auth = DropboxAuth(appKey: kDropBoxAPIKey)
...
答案 1 :(得分:0)
您可以在桥接头文件中声明另一个类似的宏。想象一下,我们在预处理定义中有MY_MACRO
个宏。 Swift代码没有看到它。在桥接头文件中,我们可以定义另一个宏:
#define MY_MACRO2 MY_MACRO
现在在Swift代码中使用MY_MACRO2
。当Apple修复此问题时,您需要将MY_MACRO2
重命名为MY_MACRO
。