ios-resign
Use when the user wants to rebuild, re-sign and reinstall one of their own iOS apps onto their iPhone(s) — typically because a free Apple ID provisioning…
Skill by KerberosClaw
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kerberosclaw-ios-resign
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, marketing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ios-resign
What's inside
- Skill name
ios-resign- Description
- Use when the user wants to rebuild, re-sign and reinstall one of their own iOS apps onto their iPhone(s) — typically because a free Apple ID provisioning profile expired after 7 days and the app now crashes on launch — OR just wants to check that such a project still builds and signs without touching any phone (build-only), OR wants to set a project up for this (重簽/重新簽/App 過期閃退/重裝到手機/確認還編得過/只編譯不要裝/設定重簽). If the repo has a resign.yaml, use this skill for any build/sign check instead of hand-rolling xcodebuild: it runs outside the agent sandbox (Swift macro plugins and signing fail inside it) and knows the project's scheme, configuration and prebuild step. Reads the project's resign.yaml (in version control) plus resign.local.yaml (this Mac's phones), builds with xcodebuild, installs and launches via devicectl, and maps every failure to a fixed exit code with a plain-language next step. Setup mode inspects the Xcode project, drafts both YAML files for the user to confirm, and walks the human-only steps (Apple ID login, trusting the computer, Developer Mode, trusting the developer). NOT for App Store / TestFlight distribution, paid-team ad-hoc signing workflows, or editing app code.
- License
- MIT
- Instructions
- 197 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- description: longer than 1024 characters
Files (7)
- SKILL.md
- config.rb · scripts/
- inspect.sh · scripts/
- resign.sh · scripts/
- QA.md · tests/
- mutate.sh · tests/
- run.sh · tests/
SKILL.md (first lines)
# ios-resign — 自己的 iOS App 過期了,重簽裝回手機 You are a careful release helper for one person's own iOS apps. 免費 Apple ID 簽的 App 每 7 天到期,到期後一點就閃退;你的工作是讓「重簽」變成一句話的事,而且**任何一步出錯都講得出白話的下一步**。 **Agent 決定、腳本執行**:找哪個專案、哪個版本、哪幾支手機、要不要先問使用者,是你決定的;編譯、簽章、安裝、讀設定、分類錯誤,一律交給 `scripts/` 裡的腳本。**不要自己組 `xcodebuild` 指令。** 腳本路徑以本 skill 資料夾為準,下文寫成 `<skill>/scripts/...`。 ## Step 0:找專案的設定檔 依序試,找到就停: | 情況 | 怎麼找 | |---|---| | 目前資料夾在某個 repo 裡 | 從目前資料夾往上找 `resign.yaml`(腳本預設就這樣找,到 git 根目錄為止) | | 不在任何專案裡,使用者點名了 App(「重簽 wherebear」) | 照使用者環境提供的專案索引(例如全域 AGENTS.md/CLAUDE.md 指到的清單)查 repo 位置,再用 `--config <repo>/resign.yaml` | | 都找不到 | **問使用者**專案在哪;不要自己掃整個家目錄 | 有 `resign.yaml` → **重簽模式**。沒有 → 問使用者要不要先跑**設定模式**。 ## 重簽模式 ### Step R1:確認要簽什麼 先看設定: ```bash <skill>/scripts/resign.sh --list # 在專案資料夾裡 <skill>/scripts/resign.sh --list --config <repo>/resign.yaml ``` | 使用者說 | 參數 | |---|---| | 只說「重簽」 | 不加:預設版本、本機設定列的全部手機 | | 點名某支手機(「只簽 11 Pro」) | 把手機名稱或 UDID 放在最後,可列多支。對照 `--list` 的手機名稱;使用者的叫法對不上就問 | | 要開發版/某個版本 | `--variant <版本名>` | | 只想確認編得過、不碰手機 | `--build-only` | `--list` 顯示「本機設定沒有列任何手機」而使用者要的是重簽(不是只編譯):**先停下來告訴他這台電腦還沒設定要裝哪支手機,問要不要跑設定模式把手機加進 `resign.local.yaml`**。不要自己改成 `--build-only`:只編譯不會更新手機上的 App,回報「完成」會讓他以為重簽好了。 提醒使用者:**要裝的 iPhone 插上傳輸線(或跟電腦連同一個 Wi-Fi)、解鎖、螢幕保持亮著。** ### Step R2:執行 ```bash <skill>/scripts/resign.sh [--config <repo>/resign.yaml] [--variant <版本>] [手機名稱 ...] ``` - 一支手機約 3~5 分鐘,**逾時至少設 15 分鐘**。 - **CRITICAL**:腳本要連 Apple 的簽章伺服器、要碰手機、要寫 `~/Library/Caches`。在有沙箱的 agent(例如 Codex)裡**要在沙箱外執行**(要求提升權限,或由使用者在規則裡放行這支腳本);沙箱裡跑一定失敗,而且錯誤看起來像簽章問題。 ### Step R3:看結果 腳本逐支手機處理,每支各印一行 `✔ [手機名] …` 或 `✖ [手機名] …`;失敗的那支會再印 `RESIGN_EXIT=<碼> DEVICE=<名稱>`,設定層的錯誤只印 `RESIGN_EXIT=<碼>`。 | 碼 | 意思 | 請使用者做什麼 | |---|---|---| | 0 | 全部完成 | 跟使用者說「好了,App 可以用了」。不用主動提到期日或約下次 | | 31 | **部署成功**,要在手機上信任開發者(第一次、或 App 被刪光後重裝) | 把腳本印的設定路徑原樣告訴他,信任完直接點 App,**不用重跑**。按信任一直轉圈是手機連不到 Apple 驗證:確認有網路、關掉 VPN 再按 | | 32 | **部署成功**,手機鎖著沒自動打開 | 解鎖後直接點 App;跳「未受信任的開發者」就照 31 | | 13 | 手機連不到或沒配對 | 插線、解鎖;第一次接這台電腦要在手機按「信任」並輸入手機密碼 | | 14 | 手機沒開開發者模式 | 手機「設定 › 隱私權與安全性 › 開發者模式」打開,照指示重開機 | | 16 | 點名的手機不在設定裡 | 錯誤訊息列了可用名稱,改用正確名稱重跑;真的是新手機就走設定模式加進 `resign.local.yaml` | | 17 | 手機上的自簽 App 已滿 3 個(免費帳號上限) | 把腳本列出的 App 念給使用者,**問他要刪哪個**,他在手機上刪掉後重跑。確定其中有付費團隊簽的才加 `--allow-over-limit` | | 20 | 編譯或簽章失敗 | 看下方「碼 20 細分」 | | 30 | 安裝失敗 | 解鎖、保持亮著再試一次;再失敗就問使用者能不能先刪掉手機上的這個 App(**會清掉 App 資料,刪光後重裝也要重新信任**) | | 33 | 已安裝但打不開,原因不明 | 先請他直接點 App 看看;打不開就回報錯誤摘要 | | 10 | 設定檔有問題 | 照錯誤訊息修 YAML(缺欄位、bundle ID 跟專案對不上、沒列手機…) | | 11 | Xcode 沒裝好或太舊 | 見設定模式的「人要做的事」 | | 12 | 建置前指令失敗 | 那是專案自己的前置步驟(例如編原生函式庫),看它的輸出;修不了就回報 | | 15 | Xcode 沒登入該團隊的 Apple ID,或團隊不是免費個人團隊 | 登入要人在 Xcode 畫面做;**不要自己改 `team`**,換團隊要使用者決定 | | 18 | 找不到 `/usr/bin/ruby` | 讀 YAML 要用 macOS 內建 Ruby;回報使用者 | **同一支手機、同一個錯誤重試兩次還不行就停**,把錯誤碼、`✖` 那行、錯誤摘要與紀錄路徑(`~/Library/Caches/ios-resign/<repo>-<版本>/build-<手機>.log`)整理給使用者。一支成功、另一支碼 13 沒接上:先報成功的那支,再問另一支要不要現在接上。 #### 碼 20 細分(看腳本印的錯誤摘要) - `maximum number of apps`:同碼 17,手機自簽 App 已滿 - `No Account`、`sign in`:Xcode 的 Apple ID 登出或過期 → 人在 Xcode › Settings › Accounts 重新登入 - `No profiles`:通常是手機還沒登記到描述檔;確認手機有接上、重跑一次(腳本會自動登記) - `locked`:手機鎖著 - 其他:回報 ## 設定模式 第一次替某個專案(或某台電腦)設定。**寫入任何檔案前都要使用者確認。** ### Step S1:偵察 ```bash <skill>/scripts/inspect.sh # 在 repo 根目錄:列 .xcodeproj、Xcode 團隊、配對過的 iPhone <skill>/scripts/inspect.sh <路徑/App.xcodeproj> # 再列每個會產出 App 的 scheme 與 bundle ID/團隊/configuration ``` ### Step S2:人要做的事(偵察結果缺什麼就帶他做什麼) | 缺什麼 | 誰做 | 怎麼帶 | |---|---|---| | Xcode 沒裝或版本低於專案最低 iOS | 人 | App Store 或 Apple Developer 下載;版本要對得上手機的 iOS | | `xcodebuild` 跑不起來 | 人(要 sudo 密碼) | 給他兩行:`sudo xcodebuild -license accept`、`sudo xcodebuild -runFirstLaunch` | | 「Xcode 登入的團隊」是空的 | 人(雙重認證) | Xcode › Settings › Accounts › 左下「+」› Apple ID 登入 | | 想裝的手機不在「配對過的 iPhone」 | 人 | 插線、解鎖,手機按「信任這部電腦」並輸入手機密碼 | | 開發者模式沒開 | 人 | 手機「設定 › 隱私權與安全性 › 開發者模式」,打開後重開機 | | 第一次裝完打不開(碼 31) | 人 | 手機「設定 › 一般 › VPN 與裝置管理」信任開發者 | ### Step S3:起草設定,給使用者確認 照偵察結果起草兩個檔(格式見下節),**整份貼給使用者看**,問三件事:要列哪些版本、預設哪個版本、這台電腦要裝哪幾支手機。專案特有、偵察看不出來的前置步驟(例如要先編原生函式庫)要**問使用者**,不要猜。 - 列進來的版本,`scheme`、`bundle_id`、`configuration` **照偵察結果抄**,不要自己推。 - 專案有 App 擴充功能、而且要分享給別人用自己的 bundle ID 簽:照下方欄位表的 `bundle_id_setting` 處理,不要直接覆蓋 `PRODUCT_BUNDLE_IDENTIFIER`(擴充功能會跟主 App 撞名)。 - `team` 用偵察列出的**免費個人團隊**;只有付費團隊時告訴使用者這個 skill 預設只用個人團隊,他確定要用付費團隊才加 `allow_paid_team: "true"`。 - **先讀 repo 的規則(AGENTS.md/CLAUDE.md、推送前掃描)**:repo 規定簽章資訊不進版控(例如可公開的 repo、團隊 ID 在掃描黑名單裡),`team` 就寫在 `resign.local.yaml`,`resign.yaml` 不寫。兩個檔哪一個寫都讀得到。 - 免費帳號一支手機最多 3 個自簽 App;版本選多了(例如正式版和開發版都要)先提醒會佔名額。 ### Step S4:寫入 1. 使用者確認後,寫 `resign.yaml` 與 `resign.local.yaml` 到 **repo 根目錄**(同一個資料夾)。 2. 確認 `.gitignore` 有 `resign.local.yaml`,沒有就加。
From KerberosClaw/kc_ai_skills, MIT.
More from KerberosClaw/kc_ai_skills
- 0.676score
align
KerberosClaw
Reconcile existing repository documentation with the current implementation, especially after verified hotfixes or after QA in an unattended task.
SkillAFreshness: A★ 79Claude Code +9 - 0.676score
goal-engineer
KerberosClaw
Author a self-contained unattended dispatch for a generate-and-select loop (generate candidates, grade, iterate, keep the best for human selection), or for a…
SkillAFreshness: A★ 79Claude Code +9 - 0.676score
ctf-kit
KerberosClaw
Use when the user is solving an authorized CTF / lab reverse-engineering challenge focused on Windows application authentication or license-check bypass.
SkillAFreshness: A★ 79Claude Code - 0.671score
adr
KerberosClaw
Use when a durable technical decision was just made in conversation and should be recorded, or when user asks to write/record an ADR (開 ADR / 記個決策 / 這要不要 ADR).
SkillAFreshness: A★ 79Claude Code +9 - 0.671score
workflow-router
KerberosClaw
Use when the user is unsure which kc_ai_skills workflow skill to use, or describes work involving PRD, SD/software design, FR, AC/acceptance criteria, ADR…
SkillAFreshness: A★ 79Claude Code +9 - 0.651score
spec
KerberosClaw
Use when the user wants a spec-driven development workflow for implementing a feature in the current codebase, from fuzzy idea or existing active spec through…
SkillAFreshness: A★ 79Claude Code +9 - 0.632score
wrap-up
KerberosClaw
Use ONLY when the user's latest message explicitly contains the `/wrap-up` command.
SkillBFreshness: B★ 79Claude Code +9 - 0.631score
diagnose
KerberosClaw
Use when the user reports misbehaving software to investigate — a bug, crash, wrong output, flaky behavior, or '為什麼壞掉/不會動/查一下' — and the root cause is not yet…
SkillBFreshness: B★ 79Claude Code +9 - 0.631score
job-scout
KerberosClaw
Use when the user is considering applying to, interviewing with, or accepting an offer from a company and wants due diligence on the company and optionally a…
SkillBFreshness: B★ 79Claude Code +9 - 0.631score
prep-repo
KerberosClaw
Prepare an existing project for GitHub or public release with scope-appropriate checks for sensitive data, documentation, installation, tests and release…
SkillBFreshness: B★ 79Claude Code +9 - 0.611score
llm-benchmark
KerberosClaw
Use when the user wants to test, compare, or choose local Ollama models for their machine.
SkillBFreshness: B★ 79Claude Code +9 - 0.611score
memory-lint
KerberosClaw
Use when the user wants to lint a Claude Code memory directory (~/.claude/memory or custom path) for index inconsistency, broken cross-links, stale project…
SkillBFreshness: B★ 79Claude Code +9
Signals
- Stars
- 79
- Forks
- 14
- Open issues
- 0
- Last commit (this folder)
- Oct 9, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/KerberosClaw/kc_ai_skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from KerberosClaw
- 0.676score
align
KerberosClaw
Reconcile existing repository documentation with the current implementation, especially after verified hotfixes or after QA in an unattended task.
SkillAFreshness: A★ 79Claude Code +9 - 0.676score
goal-engineer
KerberosClaw
Author a self-contained unattended dispatch for a generate-and-select loop (generate candidates, grade, iterate, keep the best for human selection), or for a…
SkillAFreshness: A★ 79Claude Code +9 - 0.676score
ctf-kit
KerberosClaw
Use when the user is solving an authorized CTF / lab reverse-engineering challenge focused on Windows application authentication or license-check bypass.
SkillAFreshness: A★ 79Claude Code - 0.671score
adr
KerberosClaw
Use when a durable technical decision was just made in conversation and should be recorded, or when user asks to write/record an ADR (開 ADR / 記個決策 / 這要不要 ADR).
SkillAFreshness: A★ 79Claude Code +9 - 0.671score
workflow-router
KerberosClaw
Use when the user is unsure which kc_ai_skills workflow skill to use, or describes work involving PRD, SD/software design, FR, AC/acceptance criteria, ADR…
SkillAFreshness: A★ 79Claude Code +9 - 0.651score
spec
KerberosClaw
Use when the user wants a spec-driven development workflow for implementing a feature in the current codebase, from fuzzy idea or existing active spec through…
SkillAFreshness: A★ 79Claude Code +9
Cite this page
ios-resign skill. Agent Mart. https://agentmart.dev/skills/kerberosclaw-ios-resign (last updated 2026-10-24)