2025-10-31 16:50:15 +08:00
|
|
|
|
//
|
|
|
|
|
|
// KBConfig.h
|
|
|
|
|
|
// 主 App 与键盘扩展共用的配置/宏。
|
|
|
|
|
|
//
|
|
|
|
|
|
// 在此处修改后,会通过 PCH 被两个 target 同步引用。
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef KBConfig_h
|
|
|
|
|
|
#define KBConfig_h
|
|
|
|
|
|
|
|
|
|
|
|
// 基础baseUrl
|
|
|
|
|
|
#ifndef KB_BASE_URL
|
|
|
|
|
|
#define KB_BASE_URL @"https://m1.apifoxmock.com/m1/5438099-5113192-default/"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// Universal Links 通用链接
|
|
|
|
|
|
#ifndef KB_UL_BASE
|
|
|
|
|
|
#define KB_UL_BASE @"https://your.domain/ul"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#define KB_UL_LOGIN KB_UL_BASE @"/login"
|
|
|
|
|
|
#define KB_UL_SETTINGS KB_UL_BASE @"/settings"
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* KBConfig_h */
|
|
|
|
|
|
|
|
|
|
|
|
// --- 认证/共享钥匙串 配置 ---
|
|
|
|
|
|
// 若已在 Capabilities 中启用 Keychain Sharing,并添加访问组:
|
2025-11-03 21:04:39 +08:00
|
|
|
|
// $(AppIdentifierPrefix)com.loveKey.nyx.shared
|
|
|
|
|
|
// 运行时会展开为:TN6HHV45BB.com.loveKey.nyx.shared
|
2025-10-31 16:50:15 +08:00
|
|
|
|
// KBAuthManager 通过下面的宏定位访问组;如需修改,可在 Build Settings 或前缀头中覆盖该宏。
|
|
|
|
|
|
#ifndef KB_KEYCHAIN_ACCESS_GROUP
|
2025-11-03 21:04:39 +08:00
|
|
|
|
#define KB_KEYCHAIN_ACCESS_GROUP @"TN6HHV45BB.com.loveKey.nyx.shared"
|
2025-10-31 16:50:15 +08:00
|
|
|
|
#endif
|
2025-11-06 15:16:03 +08:00
|
|
|
|
|
|
|
|
|
|
// --- 设备特性:是否为带刘海机型(iPhone X 及以后异形屏)---
|
|
|
|
|
|
// 说明:在 iPhone 12 等机型底部会有 34px 安全区,这里通过安全区来判断是否为“刘海屏”。
|
|
|
|
|
|
// 注意:使用到 UIKit,这里自行引入,避免依赖 PCH 的包含顺序。
|
|
|
|
|
|
#import <UIKit/UIKit.h>
|
|
|
|
|
|
static inline BOOL KBDeviceHasNotchRuntime(void) {
|
|
|
|
|
|
if (@available(iOS 11.0, *)) {
|
|
|
|
|
|
UIWindow *window = nil;
|
|
|
|
|
|
if (@available(iOS 13.0, *)) {
|
|
|
|
|
|
for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) {
|
|
|
|
|
|
if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:[UIWindowScene class]]) {
|
|
|
|
|
|
UIWindowScene *ws = (UIWindowScene *)scene;
|
|
|
|
|
|
for (UIWindow *w in ws.windows) { if (w.isKeyWindow) { window = w; break; } }
|
|
|
|
|
|
if (window) { break; }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!window) { window = UIApplication.sharedApplication.windows.firstObject; }
|
|
|
|
|
|
} else {
|
|
|
|
|
|
window = UIApplication.sharedApplication.keyWindow;
|
|
|
|
|
|
}
|
|
|
|
|
|
return window.safeAreaInsets.bottom > 0.0;
|
|
|
|
|
|
}
|
|
|
|
|
|
return NO;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef KB_DEVICE_HAS_NOTCH
|
|
|
|
|
|
#define KB_DEVICE_HAS_NOTCH (KBDeviceHasNotchRuntime())
|
|
|
|
|
|
#endif
|