检查版本与依赖
运行 xcodebuild -version 与 xcode-select -p。在 Xcode 的设置中核对命令行工具选择,确认工程所需 SDK 与目标系统范围。
如果工程使用 CocoaPods、Swift Package Manager 或其他依赖管理方式,先按项目说明恢复依赖。不要在报错后同时升级所有工具。
大多数使用问题,都能沿着浏览器远程桌面与 SSH 两条路径自助排查。需要图形操作就进桌面,需要检查构建输出就用命令行;先确认连接,再处理工具链、签名与文件。
已经开通机器:登录后从实例详情取得连接信息。本文不提供通用主机地址或通用密码。
浏览器桌面不需要安装远程桌面客户端。Windows 的 SSH 则是备选入口:桌面显示异常时,也可以用它判断机器是否仍可连接。两种方式都以控制台当前显示的地址、端口和账户为准。
登录控制台,找到已开通的订单与实例。核对机型、节点、到期时间和当前状态;支付完成但仍在开通时,先查看页面反馈,不要重复购买同一份配置。
在实例详情中使用远程桌面操作入口。等待 macOS 画面出现后,再点击桌面区域输入。不要把连接页面地址、密码或截图中的敏感信息转发给他人。
依次测试鼠标点击、普通英文输入和窗口切换。打开访达确认文件可见,再打开终端检查工具链。中文输入不正常时,先区分本地输入法与远端输入源,不要直接重装系统。
在 Windows PowerShell 中运行下方命令,按提示输入实例详情提供的用户名、主机与端口。首次连接应核验主机指纹;密码输入不回显属于正常行为。
在 Windows PowerShell 中逐项输入连接参数。这里的变量从你自己的输入取得,不是可直接使用的连接凭据。
$MacUser = Read-Host "输入实例用户名"
$MacHost = Read-Host "输入实例主机"
$MacPort = Read-Host "输入 SSH 端口"
ssh -p $MacPort "$MacUser@$MacHost"
出现超时,先核对网络、主机与端口;出现认证失败,先核对用户名与认证方式。主机指纹发生变化时,先确认是否重装过系统,不要未经核实就删除旧记录。
SSH 连通不等于工程已经配置完成。先检查 Xcode 路径和版本,再进入工程目录归档;上传步骤依赖你已配置好的 fastlane lane、签名材料与分发权限。
右侧为工作流示意,不是机器性能实测,也不代表任何项目都能原样运行。主机名称为示意名称;实际连接请使用上一节的交互命令。
App 是示例 scheme。先用工程自己的 workspace、project 和 scheme 替换对应参数,再执行归档。依赖尚未安装时,优先处理依赖错误。
fastlane beta 仅适用于已有 beta lane 的工程。看到归档成功后,再确认分发端的实际处理状态,不能把命令启动当成上传完成。
$ ssh developer@your-mac-host
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
$ cd ~/Projects/App
$ xcodebuild -scheme App archive
** ARCHIVE SUCCEEDED **
$ fastlane beta
Successfully uploaded package to TestFlight
保留完整执行命令、首条错误与末尾错误摘要。只截取“构建失败”四个字,通常不足以定位问题。
macOS 图形界面与命令行完整可用。首次打开工程时,先检查工具链,再配置签名。系统中有哪些 Xcode 版本、当前选中了哪个版本,应以实例内实际检查结果为准。
运行 xcodebuild -version 与 xcode-select -p。在 Xcode 的设置中核对命令行工具选择,确认工程所需 SDK 与目标系统范围。
如果工程使用 CocoaPods、Swift Package Manager 或其他依赖管理方式,先按项目说明恢复依赖。不要在报错后同时升级所有工具。
通过受控传输方式把证书送到实例,在“钥匙串访问”中导入需要的证书与私钥。受密码保护的文件应通过不同渠道保管密码。
只有证书、没有对应私钥时,不能完成需要该身份的签名。不要将私钥、证书密码写进仓库、命令历史或公开工单附件。
导入项目需要的描述文件,检查 Bundle Identifier、团队标识、有效期和分发类型是否与目标一致,再核对各 target 的签名设置。
首次尝试建议在图形界面完成一次可复现归档。确认配置后,再把相同参数迁入脚本或 CI,减少图形界面与命令行配置差异。
| 报错或现象 | 优先检查 | 下一步操作 |
|---|---|---|
| No signing certificate | 当前钥匙串是否包含所需签名身份,以及证书关联的私钥。 | 重新核对导入材料与有效期;不要仅反复下载同一张证书。 |
| No profiles for… | 描述文件的应用标识、团队与分发类型是否对应当前 target。 | 导入匹配的描述文件,并检查工程的签名选择。 |
| User interaction is not allowed | 执行构建的用户、钥匙串锁定状态,以及签名工具访问权限。 | 在桌面中核对解锁与访问授权,再用相同用户重试。 |
| SDK 或目标版本不匹配 | 选中的 Xcode 路径、已安装 SDK 与工程部署目标。 | 选择兼容工具链;升级前先核对项目依赖,不盲目覆盖环境。 |
源码、签名材料和构建产物分开存放。先在远端创建工程目录,再传文件;取回 IPA 后核对文件大小与校验值,不要只凭文件名判断传输完成。
已有代码仓库时,在实例内按团队的认证方式拉取工程,不把访问令牌写入共享脚本。只有本地目录时,可用 Windows OpenSSH 的 scp,或支持 SFTP 的工具上传。
先在远端终端执行 mkdir -p ~/Projects。下方 PowerShell 命令沿用首次连接时输入的三个变量,并要求你输入本地工程路径。
$ProjectPath = Read-Host "输入本地工程目录"
scp -P $MacPort -r "$ProjectPath" "${MacUser}@${MacHost}:~/Projects/"
注意:ssh 指定端口用小写 -p,scp 用大写 -P。上传前确认目标目录,避免把旧依赖与新工程混在一起。
Archive 与导出的 IPA 不是同一个文件。先完成项目需要的导出流程,再在 macOS 终端中用 ls -lh 确认 IPA 的实际路径。
在下方命令中输入远端 IPA 的绝对路径,以及本地已存在的保存目录。路径包含空格时保留引号,下载完成后再检查文件。
$IpaPath = Read-Host "输入远端 IPA 绝对路径"
$SavePath = Read-Host "输入本地保存目录"
scp -P $MacPort "${MacUser}@${MacHost}:$IpaPath" "$SavePath"
需要校验时,在 Mac 上运行 shasum -a 256,在 Windows 上运行 Get-FileHash -Algorithm SHA256,对同一文件比较结果。
先记录问题出现时正在做什么,再尝试可撤回的操作。黑屏、输入错位与空间不足不等于需要重装;重装会影响现有环境,不能当作第一步排查。
先确认实例处于可连接状态,再关闭旧连接标签,从实例详情重新进入。检查本地网络是否限制长连接;可以换一个网络或浏览器会话交叉确认。
若 SSH 可以连接,记录桌面异常但命令行正常这一事实;先保存正在执行的任务,不要连续触发重启。若两条路径都失败,附上实例状态、错误文字与发生时间提交工单。
先点击远端可输入区域,切换到英文输入,测试字母、数字与标点。核对 macOS 输入源与 Windows 键盘布局;本地输入法拦截与远端布局错误需要分开判断。
Windows 与 macOS 的修饰键习惯不同,部分组合也会被本地浏览器截获。先使用应用菜单完成同一操作,再检查按键映射;不要在不确认焦点时输入密码。
在 macOS 终端运行 df -h,先确认哪个卷空间不足。检查旧 Archive、导出产物、模拟器数据与项目缓存;清理前先确认不再需要,不能把证书、源码或唯一备份当作缓存删除。
确实需要更多容量时,可查看 +1TB SSD 或 +2TB SSD 附加项。扩展是否已经挂载、挂载在哪里,以及工程是否使用了新增位置,都要在操作后确认;不能仅看到加购记录就假定当前卷已变大。
逐项核对实例用户名、端口与当前认证方式,确认没有复制额外空格。使用密钥时,核对指定的私钥文件及权限;不要把私钥内容贴到工单正文。
重装后连接信息可能变化,应重新查看实例详情。记录原始错误文字;认证失败与连接超时不是同一种故障,不要在工单中只写“SSH 不通”。
节点全年 365 天正常运行,租用权限仍以订单周期为准。长任务启动前,先核对控制台显示的到期时间,不要等到最后一次构建开始后才处理续期。
登录控制台,在订单或实例详情中核对当前租期与到期时间。跨时区工作时,按页面显示的时间和时区核对,不自行把到账时间当作到期时间。
源码、签名材料、环境配置和产物应有独立备份。不要把到期后的机器当成长期文件存储。
查看我的订单支持日、周、月、季四种计费周期,一律美元结算。先在控制台核对当前订单可用的续期操作与报价,再按任务长度选择。
支付仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),实际可用网关以后端接口返回为准。
核对全部价格重装是重新准备环境,不是保留现有文件的修复操作。先停止构建,取回工程、证书与产物,再记录工具版本、依赖和启动脚本。
从实例详情检查当前可用的系统操作。确认目标实例与风险提示后再继续;执行后重新核对连接资料和工具链。
管理我的实例已下单的技术问题优先登录控制台提交工单,让问题关联到对应实例。售前、账单或无法登录的情况,可通过 support@osxmesh.com 联系;不要发送密码、私钥、完整卡号或证书口令。
附上订单号或实例标识、机型和节点。节点目录为新加坡、东京、首尔、香港;机型为 Mesh M4 或 Mesh M4 Pro。不要只写“我的 Mac”。
写明发生时间与时区、预期结果、实际结果,以及最近一次正常操作。附上可重复的最短步骤,区分一直失败与偶发失败。
连接问题附浏览器与系统版本、报错截图,以及 SSH 是否可用;构建问题附工具版本、执行命令与首条错误。截图与日志上传前先遮盖敏感信息。