본문으로 건너뛰기
cccskills
무료GitHub에 공개

ios-signing-doctor

Diagnose and fix iOS code-signing, provisioning, and entitlement failures — the "no signing certificate / no profiles / doesn't match / get-task-allow" family, using codesign/security to inspect what's actually signed. Use when an archive, upload, or CI build fails on signing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

iOS Signing Doctor

Diagnose the code-signing / provisioning failure family — the single most common iOS release blocker — and fix it, rather than guessing. Belongs to the ios-release-engineer discipline.

Arguments

  • error-message-or-log-path — paste the signing error or point at the build log (optional).

The mental model (why signing fails)

A build installs/runs only if four things agree: signing certificate (identity; private key in Keychain, .p12 = cert+key) + App ID (bundle ID + capabilities) + provisioning profile (ties cert + App ID + devices + entitlements, Apple-signed) + entitlements (must be a subset the App ID/profile authorize). Most failures are a mismatch among these.

Steps

1. Inspect what is actually signed (don't guess)

security find-identity -v -p codesigning          # usable signing identities
security cms -D -i embedded.mobileprovision        # dump the profile plist
codesign -dv --entitlements :- MyApp.app           # embedded entitlements (incl. get-task-allow, aps-environment)
codesign --verify --deep --strict MyApp.app        # verify the signature

2. Match the symptom to the cause

Symptom / errorLikely causeFix
"No signing certificate 'Apple Distribution' found"Cert/private key not in keychain, or wrong teamImport the .p12; verify with security find-identity
"No profiles for 'com.acme.MyApp' were found"No profile for that bundle ID + certRegenerate the profile (or fastlane match); check the exact bundle ID
"Provisioning profile doesn't include signing certificate"Profile built against a different certRegenerate the profile with the current cert
"doesn't support the … capability" / "entitlements don't match"Entitlement in the binary not enabled on the App ID / not in the profileEnable the capability on the App ID, regenerate the profile — or remove the stray entitlement you don't actually use
"Provisioning profile has expired"Dev/Ad Hoc profile past expiryRegenerate
errSecInternalComponent on CI codesignKeychain locked / partition list not setsecurity set-key-partition-list -S apple-tool:,apple: -s -k <pw> <keychain>
Upload rejected: "Invalid Provisioning Profile … get-task-allow"Debug entitlement in a store buildArchive with Release config + distribution profile (see below)
Bundle ID mismatchInfo.plist CFBundleIdentifier ≠ App IDAlign exactly (case-sensitive)

3. Common root fixes

  • get-task-allow=true in a store build (the #1 upload rejection): it's set implicitly by the profile type — archive with the Release configuration and an App Store distribution profile, not a development profile. Verify it's gone with the codesign -dv --entitlements command.
  • Only enable capabilities you use: a stray capability (Push, iCloud, App Groups, Background Modes) adds an entitlement that needs matching App ID/profile support, or the archive fails. Remove what you don't use.
  • Push works in debug but not TestFlight: aps-environment must be production for App Store / TestFlight builds (they always use production APNs).
  • CI: prefer manual signing (or fastlane match --readonly) for reproducibility; set up a temporary keychain, import the .p12, run set-key-partition-list, install the profile. Auth to Apple via an App Store Connect API key (.p8), not Apple-ID/password.
  • Build-script sandboxing: a build-phase script that reads git/the environment may need ENABLE_USER_SCRIPT_SANDBOXING = NO on that target (leave YES elsewhere), or the archive fails.

4. Report

State the identified cause, the exact fix applied, and the verification command output proving it's resolved (e.g. get-task-allow now absent). Re-run the archive/upload to confirm.

Notes

  • Automatic signing is fine for solo/local work but non-deterministic for teams/CI — prefer manual or match there.
  • For a full pre-submission audit (privacy surfaces, guidelines), use ios-appstore-submit; for the TestFlight flow, ios-testflight-release.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Generate a GitHub Actions workflow for Android — JDK + Gradle caching, build, unit + instrumented tests, Android Lint, run the Android pre-flight checks, and (optionally) sign + upload a signed app bundle to a Play track. Use when setting up CI for an Android app.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

Validated Google Play release — runs the pre-flight checks and clears the Play policy gates, builds a signed app bundle with a git-stamped versionCode, uploads to a track, and walks staged rollout (with halt/roll-forward). Use when releasing an Android app to Play.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

Scaffold a new Android app with SDLC and Play-safe defaults — Kotlin/Compose Gradle project with version catalog, convention plugins, module layout, a targetSdk that meets the Play mandate, R8 on release, and git-ignored signing so it passes the pre-flight checker from day one. Use when starting a new Android project.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

Set up Android app signing safely — generate an upload keystore, enroll in Play App Signing, and wire a Gradle release signingConfig that reads secrets from a git-ignored keystore.properties / CI (never committed). Use when configuring signing for a Play release.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

Pick an existing workflow for a task or author a new one — recommends workflow + team formation, or generates a fresh workflow YAML with command prompts and team validation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

Guide the team through writing a change-impact record for IEC 62304 / FDA / ISO 26262 ASIL C+ projects. Surfaces the affected REQ/DES/TEST/CODE artefacts and captures human-attested verification approach.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SteveGJones/ai-first-sdlc-practices412026년 10월 5일 업데이트

SteveGJones의 스킬 모두 보기

이 스킬의 문제 신고