问题描述
我的应用有一个自定义注册的 ULR 方案,我们称之为 myapp://
。开发时系统上有多个应用程序版本:
- 生产版本可能在
/Applications
-
DerivedData
中的当前版本 -
Archives
中发布的存档版本
现在当 myapp://
被打开时,例如浏览器,实际上启动哪个版本似乎完全随机。人们可能会猜测它应该是最后一个活动或正在运行的版本,但它不是。
我能以某种方式影响这个发射顺序吗?如何在系统上可靠地测试多个版本的 URL 方案?
解决方法
它丑陋而蛮力,但是……你能“破解”你不想启动的应用吗?
例如像
这样的shell脚本break.sh
#!/bin/bash
mv /Applications/MyApp.app /Applications/MyApp.disable
mv /DerivedData/MyApp.app /DerivedData/MyApp.disable
for x in /Archives/*.app
do mv /Archives/$x /Archives/$x.disabled
done
然后恢复做一个像restore.sh这样的脚本
#!/bin/bash
mv /Applications/MyApp.disable /Applications/MyApp.app
mv /DerivedData/MyApp.disable /DerivedData/MyApp.app
for x in /Archives/*.app
do mv /Archives/$x Archives/`echo $x | sed -e /s/disabled//g`
done
显然,编辑上面的内容以不破坏您想要继续工作的内容。