You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复制steam_appid.txt至可执行文件旁致代码签名失效的解决办法

解决Steam调试构建代码签名冲突问题

方法1:通过环境变量替代steam_appid.txt文件

调试时无需复制文件,直接在Xcode中设置运行环境变量:

  • 打开Xcode的项目设置,进入Edit Scheme -> Run -> Arguments标签页
  • 在Environment Variables区域添加变量:STEAM_APPID,值设为你的游戏Steam AppID
  • 应用设置后,启动调试时SteamAPI_Init()会自动读取该环境变量,无需依赖steam_appid.txt

方法2:将steam_appid.txt纳入Xcode资源管理(仅Debug模式)

把文件添加到项目中,让Xcode自动处理复制和签名,避免手动脚本冲突:

  • 将steam_appid.txt拖入Xcode项目,勾选Copy items if needed,并确保目标勾选你的游戏target
  • 进入target的Build Phases -> Copy Bundle Resources,确认steam_appid.txt在列表中
  • 添加条件编译设置:在Build Settings中搜索Excluded Source File Names,在Debug配置下留空,Release配置下添加steam_appid.txt,确保正式构建不包含该文件

方法3:调整脚本执行时机到代码签名之后(需重新签名)

如果必须用脚本复制,修改脚本在签名后执行并重新签名:

  1. 在Build Phases中移除原有的复制脚本,添加一个Run Script到Post-Compile Scripts的最末尾(确保在Code Sign之后)
  2. 脚本内容示例:
    # 复制steam_appid.txt到可执行文件目录
    cp "${SRCROOT}/steam_appid.txt" "${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app/Contents/MacOS/"
    # 重新签名应用
    codesign --force --sign "${CODE_SIGN_IDENTITY}" "${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app"
    
    注意:替换${SRCROOT}/steam_appid.txt为你的文件实际路径,确保CODE_SIGN_IDENTITY在Xcode Build Settings中正确配置

方法4:复制文件到应用包外部目录

将steam_appid.txt复制到应用包外的Steam默认搜索路径,避免修改签名后的包内容:

  • 脚本中复制文件到~/Library/Application Support/Steam/steamapps/common/[你的游戏目录]/
  • 或者复制到构建产物的上级目录(如${BUILT_PRODUCTS_DIR}/),同时在Xcode的运行路径设置中指定该目录为工作目录

内容的提问来源于stack exchange,提问作者Scam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:13:33