-
Notifications
You must be signed in to change notification settings - Fork 12
build(mobile): automate App Store metadata #379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
83622b1
build(mobile): add local EAS release workflow
AprilNEA 9ee0060
fix(mobile): read PostHog host from Actions vars
AprilNEA 12e1365
build(mobile): configure App Store Connect app
AprilNEA f3d39e2
build(mobile): automate App Store metadata
AprilNEA 332c179
Merge remote-tracking branch 'origin/master' into xuan/code-287
AprilNEA File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | ||
| 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 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,6 +17,7 @@ expo-env.d.ts | |
| *.p12 | ||
| *.key | ||
| *.mobileprovision | ||
| credentials.json | ||
|
|
||
| # Metro | ||
| .metro-health-check* | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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" | ||
| } | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When this workflow is dispatched while
build-mobile.ymlis running withsubmit: true, the workflows use different concurrency groups (publish-mobile-metadataversusbuild-mobile-production) even though the iOS submit profile now hasmetadataPathand the build workflow invokeseas 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 👍 / 👎.