资讯详情

资讯详情

Mac Duo 源码构建完整指南:Swift Package Manager 打包、ad-hoc 签名与屏幕录制权限问题一次解决

【免费下载链接】Mac-DuoWish you could bring the iPhone Duo effect to your MacBook?项目地址https://gitcode.com/gh_mirrors/mac/Mac-Duo点击查看免费下载想把 iPhone 的合盖空间感效果Duo搬到自己的 MacBook 上这篇文章带你从源码构建 Mac Duo用Swift Package Manager编译并打包成.app完成ad-hoc 签名并一次性解决新手最容易卡住的屏幕录制权限Screen Recording反复失效问题。全程只需命令行无需 Xcode 工程文件。 一句话概括Mac Duo 是一个纯 Swift 的 SwiftPM 包./build.sh一条命令就能产出带 ad-hoc 签名的build/Mac Duo.app唯一要额外花心思的是 macOS 屏幕录制权限的授权方式。 项目结构速览这是一个标准的 SwiftPM 包动手前先花 30 秒理解仓库布局后面构建才不会迷路。Package.swift 声明了 3 个 target 加 1 组测试LidAngleKitSources/LidAngleKit/LidAngleSensor.swift封装读取 MacBook 合盖角度的 HID 传感器不需要任何系统权限MacDuoSources/MacDuo/主程序负责菜单栏、Metal 渲染与实时屏幕捕获lidprobeSources/lidprobe/main.swift传感器诊断小工具用来确认机型是否带合盖角度传感器MacDuoTestsTests/MacDuoTests/单元测试。依赖极简无需拉取第三方库离线也能编译。 构建前置要求macOS 14 或更高Resources/Info.plist 中LSMinimumSystemVersion已写死为 14.0Xcode 或 Command Line Tools含 Swift 6.0 及以上——因为 Package.swift 顶部声明了// swift-tools-version: 6.0一台带内置合盖角度传感器的 MacBook传感器必须被 macOS 标记为内置外接的同类传感器会被忽略。 仓库通过 mise.toml 固定了swift latest若你本机装了 mise进入目录会自动切到最新 Swift 工具链。 一键构建build.sh 打包 ad-hoc 签名整个构建被封装在 build.sh 里无需手动敲swift build# 1. 克隆源码 git clone https://gitcode.com/gh_mirrors/mac/Mac-Duo.git cd Mac-Duo # 2. 构建 ad-hoc 签名产出 build/Mac Duo.app ./build.shbuild.sh背后做的事以 release 模式调用swift build -c release --product MacDuo同时构建lidprobe把可执行文件、Info.plist、本地化资源拷进build/Mac Duo.app的标准 bundle 结构用ad-hoc 签名执行codesign --force --options runtime --timestampnone --sign -再用codesign --verify --strict校验。常用参数一览命令作用./build.sh构建并签名./build.sh --run构建、签名并重启 App./build.sh --universal同时构建 Apple Silicon 与 IntelSIGN_IDENTITY你的名字 ./build.sh改用你自己的签名证书⚠️ 默认签名标识是-ad-hoc产物路径为build/Mac Duo.app从访达双击打开即可。 为什么 ad-hoc 签名会让屏幕录制权限变脸这是新手最容易被坑的一步理解了原理后面就不会慌传感器不抢权限合盖角度直接来自 IOKit 的 HID 设备读取无需授权见 LidAngleSensor.swift屏幕捕获才要权限实时画面用的是ScreenCaptureKitScreenStreamer.swiftmacOS 要求屏幕录制权限ad-hoc 签名的坑macOS 的 TCC 权限表把授权绑定到 App 的代码签名。ad-hoc 每次构建都会重新生成签名系统于是把新产物当作另一个 App之前授过的屏幕录制权限就失效了。一句话每次用 ad-hoc 重新构建后都要重新授予屏幕录制权限——这是正常现象不是 bug。️ 屏幕录制权限三种授权方式方式一系统设置里手动勾选推荐构建后首次打开build/Mac Duo.app若合盖无效果打开系统设置 → 隐私与安全性 → 屏幕录制与系统录音找到Mac Duo并打开开关若列表里没有先完全退出再重新打开一次 App按提示重启 App效果即刻生效。方式二让系统弹窗自动授权直接运行./build.sh --run启动macOS 会弹出屏幕录制授权弹窗点击允许后重启 App 即可。方式三tccutil 重置授权状态混乱时如果权限显示已开启却仍无效通常是旧的 ad-hoc 记录作祟先重置该 App 的屏幕录制授权tccutil reset ScreenCapture to.maki.MacDuo这里的 Bundle ID 取自 Info.plist 的CFBundleIdentifierto.maki.MacDuo。重置后重新授权即可恢复。 可选用 lidprobe 验证传感器构建产物里附带了build/lidprobe源码见 main.swift用来确认你的 MacBook 是否带可用传感器./build/lidprobe # 实时打印合盖角度若输出no lid angle sensor found on this Mac说明当前机型不受支持App 会在菜单栏提示传感器不可用。✅ 常见问题速查FAQ症状原因解决合盖没反应、画面不倾斜未授予屏幕录制权限按方式一授权并重启 App每次重新构建都要重新授权ad-hoc 签名每次都变化属正常现象或设SIGN_IDENTITY用固定证书提示无传感器机型不含内置合盖角度传感器换支持的 MacBook或用lidprobe确认找不到 Mac Duo.app产物路径不熟在build/Mac Duo.app从访达打开照着走你就拥有了一个可运行、可调试的 Mac Duo 本地构建版本。传感器读取零权限、屏幕捕获只需一次性授权——把这三件事理顺从源码跑起 Mac Duo 其实只有三步clone → ./build.sh → 授权屏幕录制。赞分享【免费下载链接】Mac-DuoWish you could bring the iPhone Duo effect to your MacBook?项目地址https://gitcode.com/gh_mirrors/mac/Mac-Duo点击查看免费下载相关推荐Swift Package Manager 注册表登录指南swift package-registry login 完整实战与源码解析Swift Package Manager 注册表登录指南 swift package registry login 完整实战与源码解析 本指南围绕 Swif开发工具构建工具Swift Package Manager 的 swift package 命令完全指南创建、编辑、检查与维护 Swift 包Swift Package Manager 的 swift package 命令完全指南创建、编辑、检查与维护 Swift 包 swift package 是开发工具构建工具Swift Package Collections 完全指南创建、发布、签名与使用包集合Swift Package Collections 完全指南创建、发布、签名与使用包集合 导读 本文以 SwiftPM 官方文档 PackageCollect开发工具构建工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →