潘神(Pan),希腊神话中司羊群和牧羊人的神,被认为是帮助孤独的航行者驱逐恐怖的神。
就像在希腊神话中羊是不可或缺的一样,我们同样希望 Pan,能够帮助开发者驱逐一些因环境及条件等因素带来的疑难杂症。缩减问题复现及定位的时间。
npm install olympus-pan -g
// 不建议使用sudo来进行安装,可以使用下面命令进行去sudo
sudo chown -R $USER /usr/local
pan -v
来查看是否安装成功。如果提示 pan command not found
则安装失败pan ios -s // 该命令为启动客户端
第一次启动,会看到 当前未添加任何app信息,如想添加请查阅文档
的提示。这是因为pan 扩展了对app管理的自定义模式,pan仅作为对模拟器的调用及调试工具,与客户端管理解耦。用户根据自身业务自行对pan的配置项进行添加

pan ios -u 'http://xxx' yanxuan
{
"name": "xxx1",
"cname": "xxx2",
"packageName": "xxxx.app",
"boundId": "xxxx",
"scheme": "aaa://bbb?url=",
"repository": {
"type": "git",
"url": ""
}
},
也就是说 通过pan ios -u "http://dizhi" [type]
可以自定义客户端呼叫指令
所有的客户端呼叫、安装,全部依赖pan所导入的配置项内容
{
"version":"1.0.0", // 当前配置项版本
"list":[] // 所有客户端配置项所在清单
}
配置项格式如下:
{
"name": 你客户端的英文名,用于客户端启动标记,唯一且不能重复
"cname": 客户端中文名,
"packageName": 客户端包名称,
"boundId": 客户端对应的boundId,
"scheme": 客户端对应的scheme呼叫h5指令,通常是xxxx://xxx?url= 的格式,
"repository": {
"type": "git",
"url": 客户端所在地址,选填。不填写将无法自动安装客户端
}
},
scheme
理论上所有app都支持从浏览器或第三方app 跳转到自己app的功能。Pan的呼叫app其实是调用了对应app的该命令
大部分app的跳转规则基本为: xxx://xxx?url=encode(目标页面),但也有一些app的规则并非如此,比如:
针对非常规格式的命令,Pan提供自身内置了模板功能。使用方式如下
http://xxxx.html?id={{url.encode}}
1. 双花括号
2. key.encode || key || key.decode // 第二个参数为功能参数,用于判断是否对url进行encode|decode处理
对于多种一个app想多种方式跳转。原则上Pan的命令是为了使用者的简便而设计,所以请配置多个配置项,毕竟,配置项不常改,但命令经常敲。
保证name
不相同即可,不然Pan将无法区分
如果配置项内已经填写了客户端所在仓库地址,则只需要 pan ios -i
即可出现可安装列表。
各业务部门可以自行维护该列表。
客户端git仓库目录规则:
root
├── readme.md
├── app
├── xxx.ipa
由于配置项文件是跟随版本走,所以每次更新版本会导致配置文件重置,为此,pan提供了导入导出功能。具体操作如下
pan ios --config
将配置文件导出到自定义目录
pan ios --config
使用当前目录文件
iphone 9
;不会启动任何设备,但输入的设备在当前mac上只存在1个,会直接启动。/Library/Developer/CoreSimulator/Profiles/Runtimes/
这个目录手动删除xcrun instruments -w 'iphone'
,查看是否报错,如果错误为xcrun: error: unable to find utility "instruments", not a developer tool or in PATH
. 在中断输入:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
Version | Tag | Published |
---|---|---|
1.3.3 | latest | 4yrs ago |