# App Icon & Screenshot Generator: iOS, Android & PWA (`digitalni.produkty.pro.zivot/app-icon-generator`) Actor

Generate every app icon size from one image: Xcode AppIcon.appiconset, Android adaptive and legacy launcher icons, Play Store 512, favicon.ico and PWA icons, plus App Store and Google Play screenshot sizes. One ready-to-use ZIP.

- **URL**: https://apify.com/digitalni.produkty.pro.zivot/app-icon-generator.md
- **Developed by:** [Digitální produkty pro život](https://apify.com/digitalni.produkty.pro.zivot) (community)
- **Categories:** Developer tools, For creators
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 icon pack generateds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## App Icon & Screenshot Generator: iOS, Android & PWA

Give it **one icon** and get **every app icon size** for iOS, Android and the web, plus your **screenshots resized for App Store Connect and Google Play**. Everything comes in **one ZIP** with the folder structure your project expects.

No Photoshop, no online generator that takes one file at a time, no guessing pixel sizes.

### What's in the ZIP

**iOS / iPadOS**: `ios/AppIcon.appiconset/` with all icon sizes and `Contents.json`. Drag it into `Assets.xcassets` in Xcode. Icons are flattened onto your background color, because Apple rejects transparent app icons. Includes the 1024 px App Store icon.

**Android**:

- `android/res/mipmap-*/ic_launcher.png` and `ic_launcher_round.png` for mdpi to xxxhdpi
- **Adaptive icon**: `ic_launcher_foreground.png` (108 dp layer, logo inside the safe zone), `mipmap-anydpi-v26/ic_launcher.xml` and the background color in `values/ic_launcher_background.xml`
- `android/play-store-icon-512.png` for the Google Play listing (opaque 512×512)

**Web / PWA**: `favicon.ico` (16, 32 and 48 px), PNG favicons, `apple-touch-icon.png` (180 px), Android Chrome 192/512 icons, a **maskable** PWA icon, `site.webmanifest` and a ready `<head>` snippet.

**Screenshots** (optional): each screenshot resized to the store sizes you choose:

| Size | Pixels (portrait) |
|---|---|
| App Store: iPhone 6.9" | 1320×2868 |
| App Store: iPhone 6.5" | 1284×2778 |
| App Store: iPad 13" | 2064×2752 |
| Google Play: phone 9:16 | 1080×1920 |
| Google Play: 7" tablet | 1200×1920 |
| Google Play: 10" tablet | 1600×2560 |

Landscape screenshots get the landscape version. **Fit** keeps the whole screenshot on a background (auto-detected color or yours), and **Fill** crops the edges. Screenshots are saved without an alpha channel, as App Store Connect requires.

### Input

- **App icon URL**: PNG with transparency, SVG, JPEG or WebP, ideally 1024×1024. Non-square images are centred.
- **Platforms**: iOS, Android, Web (all by default).
- **Background color**: used where transparency is not allowed and for the Android adaptive background.
- **Screenshot URLs** and **sizes** (optional).

### Output

- `app-assets.zip` in the run's key-value store (linked in the Output tab and the dataset)
- an **icon preview** (iOS rounded square, Android circle, adaptive shape, favicon)
- each resized screenshot as a separate PNG

### Pricing

You pay **per icon pack** (all platforms included) and **per resized screenshot**. Failed downloads are never charged.

### How to use it via API

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("digitalni.produkty.pro.zivot/app-icon-generator").call(run_input={
    "iconUrl": "https://example.com/my-logo-1024.png",
    "appName": "My App",
    "backgroundColor": "#1e66f5",
    "screenshotUrls": ["https://example.com/shot-1.png", "https://example.com/shot-2.png"],
    "screenshotTargets": ["iphone-6.9", "play-phone"],
})
print(client.key_value_store(run["defaultKeyValueStoreId"]).get_record("app-assets.zip") is not None)
```

### Good to know

- Store requirements change. Check the current App Store Connect and Google Play Console guidelines before submitting.
- The generator only resizes and pads. It does not add device frames or captions.
- Only use images you have the rights to use. The example icon is the Noto Emoji rocket (Apache-2.0, Google).

### More tools from the same developer

All tools with code examples: [github.com/Phenixik/apify-actors](https://github.com/Phenixik/apify-actors)

- [remove.bg API Alternative](https://apify.com/digitalni.produkty.pro.zivot/removebg-api-dropin): drop-in replacement for the remove.bg API, change one URL
- [AI Background Remover](https://apify.com/digitalni.produkty.pro.zivot/background-remover): bulk transparent PNGs, white backgrounds and masks
- [Product Photo Prep](https://apify.com/digitalni.produkty.pro.zivot/product-photo-prep): white-background, square photos for Shopify, Amazon and Etsy
- [AI Image Upscaler](https://apify.com/digitalni.produkty.pro.zivot/ai-image-upscaler): 2x / 4x Real-ESRGAN upscaling, no GPU
- [Website Screenshot](https://apify.com/digitalni.produkty.pro.zivot/website-screenshot): full-page, mobile and PDF screenshots
- [Sitemap URL Extractor](https://apify.com/digitalni.produkty.pro.zivot/sitemap-url-extractor): every URL from a website's sitemaps
- [Broken Link Checker](https://apify.com/digitalni.produkty.pro.zivot/broken-link-checker): find 404s and dead links on your site
- [PageSpeed & Lighthouse Audit](https://apify.com/digitalni.produkty.pro.zivot/pagespeed-audit): bulk Core Web Vitals and SEO scores
- [Domain WHOIS & DNS Lookup](https://apify.com/digitalni.produkty.pro.zivot/domain-whois-lookup): expiry, DNS, SPF/DMARC and SSL for many domains
- [PDF Text Extractor](https://apify.com/digitalni.produkty.pro.zivot/pdf-text-extractor): text, Markdown and RAG chunks from PDFs
- [E-book Converter](https://apify.com/digitalni.produkty.pro.zivot/ebook-converter): Word, Google Docs or Markdown to PDF and EPUB
- [RSS Feed Reader & Monitor](https://apify.com/digitalni.produkty.pro.zivot/rss-feed-reader): only-new-items feed monitoring
- [ATS Jobs](https://apify.com/digitalni.produkty.pro.zivot/ats-jobs): jobs from Greenhouse, Lever, Ashby & more
- [App Store Reviews](https://apify.com/digitalni.produkty.pro.zivot/app-store-reviews): iOS reviews from 50+ countries

### Questions or ideas?

Open an issue on the **Issues** tab. Feature requests (device frames, captions on screenshots, watchOS/macOS icons…) are welcome.

# Actor input Schema

## `iconUrl` (type: `string`):

Your app icon or logo as PNG (transparent background is fine), SVG, JPEG or WebP. Ideally square and at least 1024×1024 px.

## `appName` (type: `string`):

Used in the web app manifest (site.webmanifest).

## `platforms` (type: `array`):

Which icon sets to generate. All are included in the price.

## `backgroundColor` (type: `string`):

Hex color used where transparency is not allowed (iOS icons, Play Store icon, apple-touch-icon) and as the Android adaptive icon background, e.g. #ffffff.

## `adaptiveIconScalePercent` (type: `integer`):

Size of your logo inside the 108 dp adaptive icon layer. 61 % keeps it inside the safe zone that every launcher shape shows.

## `screenshotUrls` (type: `array`):

Optional: app screenshots (any size, portrait or landscape). Each one is resized to every store size selected below.

## `screenshotTargets` (type: `array`):

Store sizes to create. Landscape screenshots get the landscape version of each size.

## `screenshotMode` (type: `string`):

How to handle screenshots whose aspect ratio differs from the store size.

## `screenshotBackground` (type: `string`):

"auto" uses the dominant color of each screenshot, or a hex color like #000000.

## `maxFileSizeMb` (type: `integer`):

Larger files are skipped (not charged).

## Actor input object example

```json
{
  "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Emoji_u1f680.svg/1280px-Emoji_u1f680.svg.png",
  "appName": "My App",
  "platforms": [
    "ios",
    "android",
    "web"
  ],
  "backgroundColor": "#ffffff",
  "adaptiveIconScalePercent": 61,
  "screenshotTargets": [
    "iphone-6.9",
    "iphone-6.5",
    "play-phone"
  ],
  "screenshotMode": "fit",
  "screenshotBackground": "auto",
  "maxFileSizeMb": 30
}
```

# Actor output Schema

## `zip` (type: `string`):

iOS, Android and web icons plus screenshots in a ready-to-use folder structure.

## `assets` (type: `string`):

Icon pack preview and every resized screenshot.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Emoji_u1f680.svg/1280px-Emoji_u1f680.svg.png"
};

// Run the Actor and wait for it to finish
const run = await client.actor("digitalni.produkty.pro.zivot/app-icon-generator").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Emoji_u1f680.svg/1280px-Emoji_u1f680.svg.png" }

# Run the Actor and wait for it to finish
run = client.actor("digitalni.produkty.pro.zivot/app-icon-generator").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "iconUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Emoji_u1f680.svg/1280px-Emoji_u1f680.svg.png"
}' |
apify call digitalni.produkty.pro.zivot/app-icon-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,digitalni.produkty.pro.zivot/app-icon-generator"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/F2kbjr7a1ZxZ88yng/builds/SR74O3JRQo7aqogQT/openapi.json
