Files
youle_app_ios_v2/ylgamehall/Source/Network/QiniuConfig.swift
T
joywayerandClaude Opus 4.7 a3679aba7d 修复 SDK 真实接入后的 Swift 编译错误 + Xcode 链接配置
实测三个 SDK(微信 / 高德 / 七牛)链接进 Target 后,暴露出 9 个 Swift 编译错误,逐一修正:

代码侧(5 个 Swift 文件):
- AMapWrapper:updatePrivacyShow / updatePrivacyAgree 是 AMapLocationManager
  类方法(since 2.8.0),不在 AMapServices 上;改为 AMapLocationManager.*
  并补 import AMapLocationKit
- BackGameDataHandler:删 `WXApi.delegate = nil`。新版 SDK 2.x 无 static
  delegate API,delegate 由调用方逐次传给 handleOpenURL/sendAuthReq 并被
  SDK 弱引用;WeChatManager singleton 长生命周期不析构,无需 cleanup
- QiniuConfig / QiniuTokenSigner:所有 static 成员标 nonisolated,让 actor
  QiniuUploader 可直接调,无需 await MainActor.run
- QiniuUploader:QNUploadManager() 在七牛 SDK 8.x 已 kQNDeprecated,改用
  initWithConfiguration: + defaultConfigurationV2

工程侧(pbxproj,Xcode UI 自动写入):
- 新 Frameworks group 容纳 Vendor/WechatSDK / Vendor/AMap 引用
- WechatOpenSDK-NoPay.xcframework:Embed & Sign(动态库)
- AMapFoundationKit / AMapLocationKit:Do Not Embed(静态 fat .framework)

BuildProject 验证:Swift 全部编译通过;剩余 AMap fat framework arch 冲突
(M Mac iOS-simulator)是工程配置选择,下个 commit 处理。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-23 01:03:29 +08:00

38 lines
1.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// QiniuConfig.swift
// ylgamehall
//
// 七牛云配置常量(沿用 msext QiniuConfig.m)。
//
// ⚠️ SecretKey 客户端硬编码 = 父项目 CLAUDE.md 已识别但接受的安全风险,
// 同款 AppSecret 路径。msext 已分发多年等价泄露,沿用不引入新攻击面。
//
import Foundation
/// 七牛云配置常量。整体 nonisolated,使得 QiniuUploaderactor)和其它非 MainActor
/// 上下文可直接读取这些 immutable static 常量,无需 await MainActor.run。
public enum QiniuConfig {
/// 七牛 AccessKey(沿用 msext QiniuConfig.m:12
public nonisolated static let accessKey = "dQbQLUm1jIuL9PEq4jd6VKB-6pPxPEdg7le9KeBm"
/// 七牛 SecretKey(沿用 msext QiniuConfig.m:13)— HMAC-SHA1 签 putPolicy 用
public nonisolated static let secretKey = "RCZpwLhAPoQ2sQQyWXzMJc7Po2MyZWfUJeW4Jmfq"
/// 存储空间名(沿用 msext QiniuConfig.m:16)— putPolicy scope 用
public nonisolated static let bucketName = "iosaudio"
/// CDN 默认域名(沿用 msext qiniudomain/ 渠道注入目录名,已生产生效)。
/// msext fallback 是 `iosaudio.daoqi8888.cn`,但实际渠道注入覆盖为 `daoqi88`;
/// 新外壳直接沿用渠道注入值。
public nonisolated static let cdnDomain = "iosaudio.daoqi88.cn"
/// 录音 key 模板前缀(msext QiniuConfig.m:22 为空字符串)
public nonisolated static let recordingDirectory = ""
/// 拼访问 URL`http://{cdnDomain}/{key}`msext QiniuManager.m:197 等价)
public nonisolated static func publicURL(forKey key: String) -> String {
"http://\(cdnDomain)/\(key)"
}
}