在 Mac 上,dmg 文件是一種磁盤(pán)映像文件,可以將多個(gè)文件打包成一個(gè)可讀寫(xiě)的磁盤(pán)映像。用戶可以將 dmg 文件掛載到系統(tǒng)上,就像掛載一個(gè)硬盤(pán)驅(qū)動(dòng)器一樣。這使得 dmg 文件成為 Mac 應(yīng)用發(fā)布的常見(jiàn)格式。

在 Github 上,我們可以使用 Github Actions 來(lái)自動(dòng)化打包 dmg 文件。Github Actions 是 Github 的一項(xiàng) CI/CD 服務(wù),可以讓我們?cè)诖a提交時(shí)自動(dòng)運(yùn)行一些任務(wù),例如打包應(yīng)用程序。

## 詳細(xì)介紹

下面我們將介紹如何使用 Github Actions 打包 dmg 文件。

### 步驟 1:創(chuàng)建 Github Actions 工作流文件

首先,我們需要在我們的 Github 倉(cāng)庫(kù)中創(chuàng)建一個(gè) `.github/workflows` 目錄,并在其中創(chuàng)建一個(gè) YAML 文件,例如 `build.yml`。該文件將定義我們的 Github Actions 工作流。

“`yaml

name: Build

on:

push:

branches:

– master

jobs:

build:

runs-on: macos-latest

steps:

– name: Checkout code

uses: actions/checkout@v2

– name: Install dependencies

run: |

sudo gem install cocoapods

pod install

– name: Build app

run: xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -configuration Release -archivePath $PWD/build/MyApp.xcarchive archive

– name: Create DMG

uses: jbtule/codesign-dmg@v1.1.0

with:

app: MyApp.app

volume-name: MyApp

dmg-name: MyApp.dmg

codesign-identity: ${{ secrets.CERTIFICATE }}

“`

在這個(gè)工作流中,我們定義了一個(gè) `build` 作業(yè),它將在 `master` 分支的推送事件觸發(fā)時(shí)運(yùn)行。該作業(yè)將在最新版本的 macOS 上運(yùn)行,并執(zhí)行以下步驟:

1. 檢出代碼庫(kù)

2. 安裝依賴項(xiàng)

3. 構(gòu)建應(yīng)用程序

4. 創(chuàng)建 dmg 文件

### 步驟 2:安裝依賴項(xiàng)

在上面的工作流中,我們使用了 cocoapods 和 xcodebuild 工具來(lái)構(gòu)建應(yīng)用程序。

在 macOS 上,我們可以使用 Homebrew 安裝這些工具:

“`bash

brew install cocoapods

“`

### 步驟 3:構(gòu)建應(yīng)用程序

在工作流中,我們使用 xcodebuild 工具來(lái)構(gòu)建應(yīng)用程序。我們需要指定應(yīng)用程序的 workspace、scheme、configuration 和 archivePath。例如:

“`bash

xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -configuration Release -archivePath $PWD/build/MyApp.xcarchive archive

“`

這將生成一個(gè)名為 `MyApp.xcarchive` 的檔案文件,其中包含我們的應(yīng)用程序。

### 步驟 4:創(chuàng)建 dmg 文件

最后,我們需要使用 jbtule/codesign-dmg 工具來(lái)創(chuàng)建 dmg 文件。該工具將對(duì)應(yīng)用程序進(jìn)行簽名,并創(chuàng)建一個(gè)可讀寫(xiě)的 dmg 文件。

“`yaml

– name: Create DMG

uses: jbtule/codesign-dmg@v1.1.0

with:

app: MyApp.app

volume-name: MyApp

dmg-name: MyApp.dmg

codesign-identity: ${{ secrets.CERTIFICATE }}

“`

在這個(gè)步驟中,我們指定了應(yīng)用程序的網(wǎng)站程序打包路徑、卷名和 dmg 文件名,并使用 secrets.CERTIFICATE 密鑰來(lái)指定簽名證書(shū)。

## 結(jié)論

本文介紹了如何使用 Github Actions 自動(dòng)化打包 dmg 文件。我們可以使用 xcodebuild 工具來(lái)構(gòu)建應(yīng)用程序,并使用 jbtule/codesign-dmg 工具來(lái)創(chuàng)建 dmg 文件。這個(gè)過(guò)程可以自動(dòng)化,使我們能夠更輕松地發(fā)布我們的 Mac 應(yīng)用程序。

未經(jīng)允許不得轉(zhuǎn)載:智電網(wǎng)絡(luò) CN » github工程打包dmg步驟介紹

相關(guān)推薦