Also published on Medium.

Merhaba sevgili flutter geliştiriciler ,

Bugün sizlere yazmış olduğunuz Flutter uygulamasının nasıl kolayca dmg çıktısını alacağınızı göstereceğim , hiçbir Appstore-Xcode işlemi de gerekmeyecek .

Öncelikle npm kurmanız gerekmektedir , NodeJS kendi sitesi üzerinden kurabilirsiniz :

Node.js - Run JavaScript Everywhere

Npm kurduktan sonra ihtiyacımız olan paketi kuruyoruz :

npm install -g appdmg

Paketin linki bu eğer detaylı incelemek isterseniz :

appdmg

Paketi kurduktan sonra Flutter projemizin bulunduğu dosyanın içerisine geliyoruz , ve içerisine şu şekilde dosyalarımızı oluşturalım :

Herhangi bir dosyanın içerisinde olmasına gerek yok sadece flutter proje dosyasının içerisinde olması yeterli kolay bulmak açısından.

Icon’un ismi size kalmış ve dilerseniz bu siteden yapabilirsiniz, ben buradan yapmıştım :

CloudConvert

Sonrasında config.json dosyamızı yapılandıralım :

{
"title": "Uygulamanızın İsmi",
"icon": "./favicon.icns",
"contents": [
{
"x": 448,
"y": 344,
"type": "link",
"path": "/Applications"
},
{
"x": 192,
"y": 344,
"type": "file",
"path": "../../build/macos/Build/Products/Release/uygulamamız.app"
}
]
}

Bu şekilde yapılandıralım.

Sonrasında terminal’e gelip

flutter build macos

Komutunu çalıştıralım ve çıktımızı alalım.

Uygulamız flutter projemiz içerisinde bu dosya yolunda olacaktır.

Sonrasında terminal’den cd komutunu kullanarak dmg_creator dosyasına kadar girelim.

Sonrasında terminal’e gelip

appdmg ./config.json ./fluttermacos.dmg 

Komutunu çalıştıralım ve çıktımızı alalım , çıktımız aynı dosya içerisinde oluşacaktır. Fluttermacos.dmg yazmanıza gerek yok isterseniz oraya yusuf.dmg de yazabilirsiniz :D

Sonrasında dmg yi finderdan bularak veya direk bir yere sürükleyerek , sonrasında tıklayarak kurabilirsiniz :

Kurduktan sonra normal tıklayarak denediğiniz de güvenlik hatası verebilir , böyle yaparsa sağ tıklayarak open demeniz gerekmektedir.

Evet , yazımı okuduğunuz için çok teşekkür ederim .

Bonus olarak da eğer uygulamanızda izin gereken şeyler varsa örneğin en yaygını API Request , örneğin bunun için DebugProfile.entitlements dosyası içerisinde :

 <key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>

yazarak izin almanız gerekmektedir .

Tekrardan teşekkür ederim , hoşçakalın :)