用途:聚焦 Swift/SwiftUI 应用从归档到上架的发布环节,解决构建成功但上传被 App Store Connect 拒绝的问题。构建与 CI 侧问题另有 building-swift-apps 技能,本技能从 archive 开始。
主要分工:fastlane 负责 App Store Connect 状态(文案、截图、定价、订阅产品),xcodebuild 负责归档、签名与上传二进制;xcodebuild 本身即可上传,无需再套 fastlane 的构建封装。只做元数据的 lane 更安全,Fastfile 头部应注明不会提交审核。
认证:生成一把 App Store Connect API key(Users and Access → Integrations,角色 App Manager 或 Admin),两个工具共用。fastlane 用 app_store_connect_api_key,并用 ENV.fetch 读取 ASC_KEY_ID、ASC_ISSUER_ID、ASC_KEY_PATH;xcodebuild 传入 -authenticationKeyPath、-authenticationKeyID、-authenticationKeyIssuerID 与 -allowProvisioningUpdates。
关键注意:将 *.p8、.env.asc、.fastlane_screens/ 加入忽略规则并用 git check-ignore 校验,.p8 保存在仓库之外;构建号应从 API 读取而非猜测;已批准的营销版本会关闭该 train,需相应提升 MARKETING_VERSION;辅助 .app target 需设 SKIP_INSTALL = YES;多平台 target 每个 destination 各归档上传一次;ExportOptions.plist 设 manageAppVersionAndBuildNumber 为 false;上传成功不等于处理完成,需确认 processingState 为 VALID。
限制:资料未提供价格、平台支持范围与具体版本要求。