Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/publish-mobile-metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Publish Mobile Metadata

on:
workflow_dispatch:

concurrency:
group: publish-mobile-metadata

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Serialize metadata publishing with mobile submissions

When this workflow is dispatched while build-mobile.yml is running with submit: true, the workflows use different concurrency groups (publish-mobile-metadata versus build-mobile-production) even though the iOS submit profile now has metadataPath and the build workflow invokes eas submit --profile production. A metadata-only run from a newer ref can therefore publish first and then be overwritten by the older build run when its long native build finishes; use a shared concurrency group for both App Store writers or stop the artifact submission path from uploading metadata.

Useful? React with 👍 / 👎.

cancel-in-progress: false

permissions:
contents: read

env:
EAS_CLI_VERSION: 21.4.0
MOBILE_DIR: apps/mobile

jobs:
publish:
name: Publish App Store metadata
runs-on: ${{ vars.CI_RUNNER_LINUX || 'ubuntu-latest' }}
timeout-minutes: 10
environment: release

steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Setup pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6
with:
run_install: false

- name: Setup Node
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version-file: .nvmrc
package-manager-cache: false

- name: Setup EAS
uses: expo/expo-github-action@c7b66a9c327a43a8fa7c0158e7f30d6040d2481e # v8
with:
eas-version: ${{ env.EAS_CLI_VERSION }}
packager: pnpm
token: ${{ secrets.EXPO_TOKEN }}

- name: Validate metadata
working-directory: ${{ env.MOBILE_DIR }}
run: eas metadata:lint --profile production

- name: Publish metadata
working-directory: ${{ env.MOBILE_DIR }}
env:
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
run: eas metadata:push --profile production --non-interactive
1 change: 1 addition & 0 deletions apps/mobile/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ expo-env.d.ts
*.p12
*.key
*.mobileprovision
credentials.json

# Metro
.metro-health-check*
Expand Down
3 changes: 2 additions & 1 deletion apps/mobile/eas.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
"ios": {
"ascAppId": "6791199804",
"appleTeamId": "422ACSY6Y5",
"bundleIdentifier": "com.arcboxlabs.linkcode.mobile"
"bundleIdentifier": "com.arcboxlabs.linkcode.mobile",
"metadataPath": "./store.config.json"
}
}
}
Expand Down
36 changes: 36 additions & 0 deletions apps/mobile/store.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"configVersion": 0,
"apple": {
"copyright": "2026 ArcBox, Inc.",
"categories": ["DEVELOPER_TOOLS", "PRODUCTIVITY"],
"info": {
"en-US": {
"title": "LinkCode",
"subtitle": "Your coding agents, anywhere",
"description": "LinkCode puts your coding agents on your iPhone and iPad.\n\nConnect to the LinkCode host on your computer to monitor active work, continue conversations, send prompts, review tool activity, and use terminal sessions without switching between separate agent interfaces.\n\nLinkCode provides one consistent workspace for Codex, Claude Code, OpenCode, Pi, and Grok Build. Your coding projects and agent history remain on the host machine.\n\nA LinkCode host is required.",
"keywords": [
"coding agent",
"developer tools",
"remote development",
"terminal",
"Codex",
"Claude Code"
],
"promoText": "Control the coding agents running on your computer from your iPhone or iPad.",
"marketingUrl": "https://linkcode.ai",
"supportUrl": "https://linkcode.ai/support",
"privacyPolicyUrl": "https://linkcode.ai/privacy"
},
"zh-Hans": {
"title": "LinkCode",
"subtitle": "随时连接你的 Coding Agent",
"description": "LinkCode 将你的 Coding Agent 带到 iPhone 和 iPad。\n\n连接电脑上运行的 LinkCode Host,即可查看正在进行的任务、继续对话、发送提示词、检查工具调用,并使用终端会话,无需在不同 Agent 界面之间反复切换。\n\nLinkCode 为 Codex、Claude Code、OpenCode、Pi 和 Grok Build 提供统一工作台。项目文件和 Agent 历史记录仍保留在 Host 设备上。\n\n使用本 App 需要一台运行 LinkCode Host 的电脑。",
"keywords": ["编程", "代码", "开发工具", "远程开发", "终端", "AI", "Codex"],
"promoText": "在 iPhone 或 iPad 上随时查看和控制电脑中运行的 Coding Agent。",
"marketingUrl": "https://linkcode.ai/zh",
"supportUrl": "https://linkcode.ai/zh/support",
"privacyPolicyUrl": "https://linkcode.ai/zh/privacy"
}
}
}
}
Loading