teleport 3.1.0 for mac(10.12.6) 执行文件编译

1,476 阅读1分钟

1. 原因

联调甲方给的堡垒机,服务端:v3.2.2,要求client最低 teleport 3.1.0,而官网最新下载链接只有,10.13以下最新编译文件teleport-assist-macos-3.0.1.6.dmg,teleport-assist-macos-3.2.0.dmg要求10.13以上。并未提供3.1.0版编译文件文件,只能自行编译。

2.编译

2.1. 从github拉取源码

git pull https://github.com/tp4a/teleport/tree/v3.1.0

2.2. 用xcode加载源码,并编译

p.s. 尝试拉取最新代码编译,发现xcode无法识别(xcode随系统10.12.06) 下载3.1.0源码,发现teleport/client/tp_assist_macos下,竟然有两套编译环境tp_assist.xcodeproj(10.13以下)、TP-Assist.xcodeproj(10.13以上)

2.3. 编译错误

2.3.1 缺失文件

  • 错误: PBXCp Error

    • teleport/client/tp_assist_macos/src/apple-scpt/iTerm2.scpt: No such file or directory
  • 原因

    • 实际是缺少目录导致无法生成指定文件
    • teleport/client/tp_assist_macos/apple-scripts/compile.sh
  • 解决办法

    • 执行修正后的compile.sh,sh compile.sh
  • 修改前

#!/bin/bash

PATH_ROOT=$(cd "$(dirname "$0")/.."; pwd)

echo "compiling applescripts for OS X terminal..."

rm ${PATH_ROOT}/src/apple-scpt/Terminal.scpt
rm ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt

osacompile -o ${PATH_ROOT}/src/apple-scpt/Terminal.scpt -x ${PATH_ROOT}/apple-scripts/scripts/Terminal.applescript
osacompile -o ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt -x ${PATH_ROOT}/apple-scripts/scripts/iTerm2.applescript
  • 修改后
#!/bin/bash

PATH_ROOT=$(cd "$(dirname "$0")/.."; pwd)

echo "compiling applescripts for OS X terminal..."

rm ${PATH_ROOT}/src/apple-scpt/Terminal.scpt
rm ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt

# 创建目录
mkdir -p ${PATH_ROOT}/src/apple-scpt

osacompile -o ${PATH_ROOT}/src/apple-scpt/Terminal.scpt -x ${PATH_ROOT}/apple-scripts/scripts/Terminal.applescript
osacompile -o ${PATH_ROOT}/src/apple-scpt/iTerm2.scpt -x ${PATH_ROOT}/apple-scripts/scripts/iTerm2.applescript

2.3.2 缺失第三方库

github.com/tp4a/telepo…

  • 必须下载 jsoncpp 和 mongoose
  • 1.jsoncpp github.com/open-source… jsoncpp 0.10.6 注意:之所以不使用新的1.x.y版本,是因为1.x.y版本需要编译器支持C++11,而为了Linux平台的兼容性,使用的低版本GCC和libc++库,并不支持C++11。 注意:teleport项目使用源代码直接编译,因此解压缩源代码到此即可。
git pull https://github.com/open-source-parsers/jsoncpp/tree/0.10.6
  • 2.mongoose github.com/cesanta/mon… mongoose 6.6 注意:teleport项目使用源代码直接编译,因此解压缩源代码到此即可。
git pull https://github.com/cesanta/mongoose/tree/6.6

2.4 重新编译

  • 1.执行 Product->Clean
  • 2.执行 Product->Build
  • 3.生成执行文件
    • 文件名称
      • tp_assist
    • 文件路径
      • /Users/xxx/Library /Developer/Xcode/DerivedData/tp_assist-bqbjhqafrauqkbzgmqdkliswed/Build/Products/Debug文件名称
      • tp_assist

3.编译好的文件

teleport 3.1.0 for mac(10.12.6)