macOS下如何指定URI Scheme启动的目标应用路径
指定URI Scheme启动的特定应用副本
针对你开发机器上多份应用副本导致URI启动异常的问题,可通过以下方法强制指定启动目标版本:
1. 手动注册目标应用到Launch Services
Launch Services负责管理macOS的URI关联,直接注册你需要的DerivedData下的应用副本即可覆盖旧关联:
- 找到当前构建应用的完整路径,比如:
~/Library/Developer/Xcode/DerivedData/YourApp-abc123/Build/Products/Debug/YourApp.app - 在终端执行以下命令(替换为你的应用路径):
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f /完整路径/YourApp.app-f参数会强制覆盖该应用的现有注册信息,让系统优先选择这个副本处理URI请求。
2. Xcode构建后自动注册(可选)
如果不想每次手动执行命令,可在Xcode中添加构建后脚本,自动注册当前构建的应用:
- 打开Xcode项目,进入「Targets」→ 你的应用目标 → 「Build Phases」
- 点击「+」→ 「New Run Script Phase」
- 在脚本框中输入:
这样每次构建完成后,系统会自动注册最新的DerivedData副本,避免URI启动旧版本。APP_PATH="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app" /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f "${APP_PATH}"
3. 临时测试指定应用(快速验证)
如果只是临时测试特定副本,可直接用终端命令通过URI启动目标应用:
open -a "/完整路径/YourApp.app" "your-scheme://your-path"
这种方式跳过系统默认关联,直接指定应用打开URI。
内容的提问来源于stack exchange,提问作者Ryan H
相关产品推荐
相关产品推荐

