Macos 系统搭建 Sonic Server

一、安装 mysql
https://dev.mysql.com/downloads/mysql/
设置 root 密码

为便于使用,创建别名:
echo "alias mysql=/usr/local/mysql/bin/mysql" >> ~/.zshrc 
echo "alias mysqladmin=/usr/local/mysql/bin/mysqladmin" >> ~/.zshrc

命令行设置密码:
mysqladmin -u root password xxxxxx
修改密码:
mysqladmin -u root -p  password xxxxxx(新密码)

创建数据库
mysql -u root -p
create database sonic character set = 'utf8mb3' collate = 'utf8mb3_general_ci' encryption='N';

允许mysql的root用户远程连接
use mysql;
select user,host from user;
update user set host = '%' where user = 'root';
flush privileges;


二、安装 docker
官方 docker desktop 极其难用,这里选用 orbstack 作为 docker 承载虚拟机。
brew install orbstack 
验证 orbstack:orb start
打开 OrbStack app,设置中勾选 Start at login、Keeprunning when menu bar app is quit

尝试过 Docker Desktop、colima、orbstack,都未能在 Mac 上实现开机不登录情况下自动启动,只好暂时忍受,机器重启后,需要人工登录。登录后 orbstack 是可以自动启动的,但不能确保所有 docker 容器都能正常启动,需要检查。


三、安装 sonic-server
下载 https://github.com/SonicCloudOrg/sonic-server/releases/download/v2.6.4/sonic-server-v2.6.4.zip
解压后移至 ~/sonic-server-v2
设置 .env 中参数:
SONIC_SERVER_HOST=192.168.x.x
MYSQL_HOST=192.168.x.x
MYSQL_PASSWORD=xxxxxx

启动 sonic-server:
cd ~/sonic-server-v2
docker-compose up -d

浏览器打开 sonic server
http://192.168.x.x:3000
注册账号 sonic :sonic
设备中心 - agent 中心 - 创建 agent:agent1,复制 agent key   

三、安装 agent
此例中只安装一台 agent,与 sonic-server 共用同一台机。
https://ghproxy.com/https://github.com/SonicCloudOrg/sonic-agent/releases/download/v2.6.4/sonic-agent-v2.6.4-macosx_x86_64.zip
https://ghproxy.com/https://github.com/SonicCloudOrg/sonic-agent/releases/download/v2.6.4/sonic-agent-v2.6.4-macosx_arm64.zip


解压到 ~/sonic-agent-v2
sudo chmod -R 777 xxxxx
修改 config/application-sonic-agent.yml 中 agent 下的 host、key,server 下的 host
wda-bundle-id: com.my.WebDriverAgentRunner


sudo spctl --master-disable
cd sonic-agent-v2 
java -Dfile.encoding=utf-8 -jar sonic-agent-xxxx.jar
在设置 - 隐私与安全性,允许 sonic-android-supply、sonic-ios-bridge、sonic-go-mitmproxy

【sonic-agent 作为服务开机启动】
创建 /Library/LaunchDaemons/com.my.sonic-agent.plist,纯文本,编码utf8
内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.my.sonic-agent</string>
    <key>KeepAlive</key>
    <true/>
    <key>ProcessType</key>
    <string>Interactive</string>
    <key>RunAtLoad</key>
    <true/>
    <key>Program</key>
    <string>/usr/local/opt/openjdk/bin/java</string>
    <key>ProgramArguments</key>
    <array>
      <string>-Dfile.encoding=utf-8</string>
      <string>-jar</string>
      <string>/Users/admin/sonic-agent-v2/sonic-agent-macosx-x86_64.jar</string>
    </array>
    <key>UserName</key>
    <string>admin</string>
    <key>GroupName</key>
    <string>staff</string>
    <key>WorkingDirectory</key>
    <string>/Users/admin/sonic-agent-v2</string>
    <key>EnvironmentVariables</key>
    <dict>
        <key>JAVA_HOME</key>
        <string>/usr/local/opt/openjdk</string>
        <key>ANDROID_HOME</key>
        <string>/Users/admin/Library/Android/sdk</string>
        <key>ANDROID_PATH</key>
        <string>/Users/admin/Library/Android/sdk/platform-tools</string>
        <key>PATH</key>
        <string>/usr/local/opt/openjdk/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin</string>
    </dict>
  </dict>
</plist>

查看并确保该文本的 owner 为 root:wheel,必要时改变所有者
sudo chown root:wheel /Library/LaunchDaemons/com.my.sonic-agent.plist

启用服务
sudo launchctl enable system/com.my.sonic-agent
sudo launchctl bootstrap system /Library/LaunchDaemons/com.my.sonic-agent.plist

四、连接手机

NOTE: 使用 tcp/ip 连接安卓手机有一个缺陷:手机重启后,无法通过 ip:port 连接。推荐通过usb 连接。

安卓手机:
开启开发者选项
启用 usb 调试

不同手机注意事项:
https://sonic-cloud.cn/deploy/android-deploy.html


iOS:
编译制作 WebDriverAgentRunner,其包名更改为 com.my.WebDriverAgentRunner
手机通过 usb 连接到 agent 机上
信任电脑
iOS16 及以上:设置-隐私与安全性,打开“开发者模式”
连接后需要等待一段时间,agent 机从手机复制完共享缓存符号数据后,才可使用,同步完后若还不可用,拔下 usb 线重新连接一次。
通过 sonic 网页向手机安装 WebDriverAgentRunner.ipa
https://sonic-cloud.cn/deploy/ios-deploy.html


sonic 使用指南:
https://sonic-cloud.cn/doc/doc-use.html


 

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巍巍清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值