Browse Source

上传iOS 编译修复

newdev_shunjiawei
liwei1dao 5 months ago
parent
commit
f6372ed783
  1. 39
      ios/Podfile
  2. 2
      lib/data/models/appconfig.dart
  3. 7
      local_plugins/chat_api/ios/chat_api/Package.swift

39
ios/Podfile

@ -40,6 +40,45 @@ target 'Runner' do
end
post_install do |installer|
# ---- Auto patch: bump FlutterGeneratedPluginSwiftPackage iOS platform ----
# Flutter 生成的中介包总是写死 .iOS("12.0"),与 Podfile 中的
# platform :ios, '16.0' 不一致,会报
# "requires minimum platform version 15.0/16.0 ... but this target supports 12.0"。
# 这里自动同步为 16.0。
generated_pkg = File.expand_path(
'Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage/Package.swift', __dir__)
if File.exist?(generated_pkg)
content = File.read(generated_pkg)
new_content = content.gsub(/\.iOS\("\d+\.\d+"\)/, '.iOS("16.0")')
if new_content != content
File.write(generated_pkg, new_content)
puts '[Podfile patch] Bumped FlutterGeneratedPluginSwiftPackage iOS platform to 16.0'
end
end
# ---- Auto patch: comment out illegal `<netinet6/in6.h>` imports in all Pods sources ----
# 新版 Xcode 模块校验禁止跨模块引用私有头 `<netinet6/in6.h>`
# `<netinet/in.h>` 已包含全部 IPv6 定义,注释掉即可。
pods_dir = File.expand_path('Pods', __dir__)
if Dir.exist?(pods_dir)
patched_files = []
Dir.glob(File.join(pods_dir, '**', '*.{m,mm,h,hpp,c,cpp}')).each do |file|
content = File.read(file)
new_content = content.gsub(
/^[ \t]*#\s*(?:import|include)\s*<netinet6\/in6\.h>.*$/,
'// \0 // patched: private header, covered by <netinet/in.h>'
)
if new_content != content
File.write(file, new_content)
patched_files << file.sub(pods_dir + '/', '')
end
end
unless patched_files.empty?
puts "[Podfile patch] Commented out <netinet6/in6.h> imports in #{patched_files.size} file(s):"
patched_files.each { |f| puts " - #{f}" }
end
end
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)

2
lib/data/models/appconfig.dart

@ -7,7 +7,7 @@ class AppConfig {
// true => 首页/发现页切换为精简布局,新手引导跳过 AI 引导步骤
// false => 保持原有布局
// TODO: 后续接入 BLE PID 判断逻辑,B017 设备连接时自动置 true
static bool hideAiAssistant = false;
static bool hideAiAssistant = true;
static late UserGetAppConfigResp config;

7
local_plugins/chat_api/ios/chat_api/Package.swift

@ -14,7 +14,10 @@ let package = Package(
],
dependencies: [
.package(url: "https://github.com/MacPaw/OpenAI.git", exact: "0.4.3"),
.package(url: "https://github.com/modelcontextprotocol/swift-sdk.git", from: "0.9.0"),
// 改用本地副本:上游 swift-sdk 0.9.0 的 Package.swift 声明 swift-tools-version:6.0
// 会在 Xcode 16 上把 sending 警告升级为错误;且上游 0.10+ 已修改 Tool.Content
// 的 case 签名,会导致 MCPClient.swift tuple 解构编译失败。本地副本锁定为 0.9.0 + 5.10。
.package(path: "../../../swift_sdk_local"),
.package(path: "../../../location_service/ios/location_service"),
.package(path: "../../../music_service/ios/music_service"),
.package(path: "../../../qq_music/ios/qq_music"),
@ -25,7 +28,7 @@ let package = Package(
.target(
name: "chat_api",
dependencies: [
.product(name: "MCP", package: "swift-sdk"),
.product(name: "MCP", package: "swift_sdk_local"),
.product(name: "OpenAI", package: "OpenAI"),
.product(name: "music-service", package: "music_service"),
.product(name: "qq-music", package: "qq_music"),

Loading…
Cancel
Save