Konverze app do dmg

Převod souboru APP do DMG

Zabalte macOS .app bundle jako komprimovaný DMG s funkcí drag-and-drop na Macu.

Vytvořte soubory DMG online

Soubory APP zatím číst neumíme, takže tenhle převod nenabízíme. Pokud dokážete svou práci uložit do některého z těchto formátů, DMG z něj vyrobíme:

Jak převést soubor app do formátu dmg

Aplikace pro macOS jsou často dodávány jako balíčky .app, zatímco ke stažení se běžně používá jediný obraz disku .dmg pro připojení a instalaci přetažením. Balení aplikace tímto způsobem zjednodušuje distribuci, aniž by se měnila samotná aplikace.

Co je formát APP

V systému macOS označuje „APP“ obvykle aplikační balíček .app. Jedná se o adresář obsahující spustitelný soubor, prostředky, metadata, frameworky a informace o podepisování kódu; Finder jej zobrazuje jako jednu aplikaci. Xcode a další vývojářské nástroje tyto balíčky vytvářejí. Ty se běžně nacházejí v /Applications, archivech ZIP nebo v adresářích sestavení, jako je build/Release/.

Tato operace představuje zabalení, nikoli převod kódu. Formát spustitelného souboru aplikace, architektura CPU, prostředky i data podepisování zůstávají beze změny; balíček je pouze umístěn do kontejneru obrazu disku.

Co je formát DMG

DMG je formát obrazu disku společnosti Apple pro macOS. Otevřením souboru .dmg se ve Finderu připojí jako virtuální svazek, ze kterého může uživatel zkopírovat aplikaci do /Applications, otevřít dokumentaci nebo spustit přiložený instalační balíček.

DMG může obsahovat kompresi, šifrování, kontrolní součty, vlastní název svazku a nastavení zobrazení ve Finderu. Komprimovaný obraz pouze pro čtení, obvykle vytvořený ve formátu UDZO, je běžnou volbou pro stahování aplikací, protože zmenšuje velikost přenosu a zabraňuje náhodným změnám distribuovaných souborů.

Jak vytvořit DMG pomocí hdiutil

Vestavěný příkaz hdiutil společnosti Apple je nejspolehlivější volbou pro opakovatelná sestavení. Spusťte tyto příkazy v aplikaci Terminal na Macu a nahraďte MyApp skutečným názvem aplikace:

  1. Vytvořte dočasný pracovní adresář, zkopírujte balíček pomocí ditto a přidejte zástupce Applications:
staging=$(mktemp -d "${TMPDIR:-/tmp}/MyApp.XXXXXX")
ditto "/Applications/MyApp.app" "$staging/MyApp.app"
ln -s /Applications "$staging/Applications"
  1. Vytvořte komprimovaný DMG na ploše:
hdiutil create \
  -volname "MyApp" \
  -srcfolder "$staging" \
  -format UDZO \
  -ov \
  "$HOME/Desktop/MyApp.dmg"
rm -rf "$staging"
  1. Otevřete MyApp.dmg, zkopírujte aplikaci na testovací Mac a spusťte ji. Po otestování odpojte připojený svazek pomocí:
hdiutil detach "/Volumes/MyApp"

Zdrojový balíček může pocházet z adresáře sestavení namísto /Applications. Kopírování pomocí ditto zachovává metadata aplikačního balíčku spolehlivěji než zacházení s balíčkem jako s běžnou kolekcí souborů.

Grafické nástroje a nástroje třetích stran

Pro příležitostný převod použijte Disk Utility: vyberte File → New Image → Image from Folder, zvolte pracovní adresář obsahující balíček .app a volitelný alias Applications, jako formát obrazu vyberte compressed a uložte jej s příponou .dmg.

DropDMG je renomovaná desktopová alternativa pro macOS, která dokáže automatizovat přípravu, rozvržení svazku, kompresi, podepisování a opakovatelná vydání. Jednoduchý nástroj, například App2Dmg, může také vytvořit obraz pro instalaci přetažením, jeho výstup však před distribucí zkontrolujte a připojený obraz otestujte. Nativní nástroje macOS jsou vhodnější, protože dokážou zachovat metadata balíčku a ověřit výsledek.

Online převodníky nejsou pro běžné balíčky .app vhodné. Nahráním aplikace zpřístupníte spustitelný kód a proprietární prostředky a webová služba nemusí zachovat symbolické odkazy, rozšířené atributy, oprávnění ani data podepisování. Použijte místní nástroj pro Mac; nástroje pro Windows sice mohou vytvořit kontejner, ale nedokážou spolehlivě ověřit spouštění, podepisování ani notářské ověření v macOS.

Omezení kompatibility a podepisování

Vytvoření DMG nezajistí multiplatformnost aplikace ani nezmění její architekturu. Aplikace určená pouze pro Intel stále vyžaduje podporu Intel nebo Rosetta 2 na zařízeních Apple silicon, aplikace určená pouze pro Apple silicon potřebuje kompatibilní Mac a univerzální aplikace obsahuje obě architektury. Obraz také neobchází kontroly Gatekeeper, karantény, podepisování kódu ani notářského ověření.

Pro veřejnou distribuci podepište aplikaci před vytvořením obrazu a poté podepište a nechte notářsky ověřit dokončený DMG. Po podepsání aplikaci neměňte. Příkaz pro ověření je:

codesign --verify --deep --strict --verbose=2 "/Applications/MyApp.app"

Formát obrazu s možností zápisu použijte pouze tehdy, když uživatelé musí upravovat soubory uvnitř připojeného obrazu. Pro běžné stažení aplikace je UDZO menší a určený pouze pro čtení; zkopírovanou aplikaci otestujte ve verzích macOS a na typech procesorů, které hodláte podporovat.