# Send iOS to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ios",
    "name": "iOS",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/ios",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/ios",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/ios",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ios",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "ios",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T04:13:02.933Z",
      "expiresAt": "2026-05-19T04:13:02.933Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ios",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ios",
        "contentDisposition": "attachment; filename=\"ios-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "ios"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ios"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ios",
    "downloadUrl": "https://openagent3.xyz/downloads/ios",
    "agentUrl": "https://openagent3.xyz/skills/ios/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ios/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ios/agent.md"
  }
}
```
## Documentation

### Xcode & Build

Clean build folder (Cmd+Shift+K) fixes most "impossible" build errors — derived data gets corrupted regularly
Simulator reset (Device > Erase All Content and Settings) clears cached app state that survives reinstalls
Archive builds use Release config — bugs that only appear in production often stem from optimization differences
xcodebuild -showsdks lists available SDKs — useful when builds fail with "SDK not found"
Parallel builds can cause race conditions in script phases — add input/output file lists to enforce ordering

### Code Signing

"No signing certificate" usually means certificate is expired or revoked — check in Keychain Access, not just Xcode
Provisioning profiles embed device UDIDs — new test device requires profile regeneration and reinstall
Automatic signing fails in CI — always use manual signing with exported credentials for builds
Distribution certificates are limited to 3 per account — don't create new ones, export and share the existing one
After renewing a certificate, update ALL provisioning profiles that used the old one

### SwiftUI Patterns

@State for view-local data, @StateObject for owned ObservableObjects, @ObservedObject for passed-in objects — mixing them wrong causes crashes or lost state
List with id: \\.self on non-Hashable types causes silent failures — always use explicit id parameter with stable identifiers
task modifier cancels automatically on view disappear — no manual cancellation needed, but check Task.isCancelled in loops
Previews crash silently with real network calls — use mock data or dependency injection for previews
@Environment values are nil in previews unless explicitly provided — wrap previews in container with environment set

### App Store Rules

Apps must work offline or show clear offline state — silent failures cause rejection
Login must be skippable if app has non-account features — reviewers reject mandatory login for content browsing
"Sign in with Apple" is required if you offer any third-party social login — no exceptions
Privacy labels must match actual data collection — Apple verifies and rejects mismatches
In-app purchases must use StoreKit for digital goods — external payment links get rejected

### Info.plist Requirements

ITSAppUsesNonExemptEncryption = NO avoids export compliance questions for most apps — add it to skip the daily annoyance
Camera/microphone/location usage descriptions are mandatory — missing them crashes the app on access attempt
LSApplicationQueriesSchemes must list URL schemes before canOpenURL works — iOS 9+ security requirement
UIRequiresFullScreen = YES on iPad opts out of multitasking — use only if your app truly can't support split view

### Performance

Instruments > Time Profiler reveals actual bottlenecks — don't guess, measure
Images in Assets.xcassets get optimized automatically — loose files in bundle don't
@MainActor annotation ensures UI updates happen on main thread — missing it causes random crashes under load
Memory leaks often hide in closures — use [weak self] in escaping closures that reference self
List with thousands of items is fast, ForEach in ScrollView is not — List uses cell reuse, ScrollView loads everything

### Debugging

po in LLDB prints object description, p prints raw value — use po for most debugging
Purple warnings in Console indicate main thread violations — fix these, they cause jank
-com.apple.CoreData.SQLDebug 1 in launch arguments shows all Core Data queries — essential for debugging fetch performance
Crash logs without symbols are useless — keep dSYM files for every release build
TestFlight crashes appear in Xcode Organizer — check there, not just in App Store Connect
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-12T04:13:02.933Z
- Expires at: 2026-05-19T04:13:02.933Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/ios)
- [Send to Agent page](https://openagent3.xyz/skills/ios/agent)
- [JSON manifest](https://openagent3.xyz/skills/ios/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/ios/agent.md)
- [Download page](https://openagent3.xyz/downloads/ios)