Love actions for macOS AppStore
ActionsTags
(2)Github Action for building & deploying macOS .pkg
package of a LÖVE framework based game to the App Store.
This action would help you distribute your game THROUGH the App Store. If you want to distribute outside the App Store, please use love-actions-macos-portable
See related actions below:
Love actions for macOS portable
- name: Build macOS packages
id: build-packages
uses: love-actions/love-actions-macos-appstore@v1
with:
app-name: My Love Game
bundle-id: org.love2d.my-game
copyright: Copyright © 2020-2022 XXX Co. All Rights Reserved.
love-ref: "fc3f5ee6209a0aab9a4d381ed5cd99110f9ff2f2"
love-patch: "./love.patch"
icon-path: ./assets/macOS/icon.icns
love-package: ./game.love
libs-path: ./libs
extra-assets: ./README.md ./license.txt
product-name: my_game
version-string: 2.3.4
output-folder: ./dist
apple-development-base64: ${{ secrets.APPLE_CERT_APPLE_DEVELOPMENT_BASE64 }}
apple-development-password: ${{ secrets.APPLE_CERT_APPLE_DEVELOPMENT_PWD }}
api-key: ${{ secrets.APPLE_API_KEY }}
api-key-id: ${{ secrets.APPLE_API_KEY_ID }}
api-issuer-id: ${{ secrets.APPLE_API_ISSUER_ID }}
team-id: ${{ secrets.APPLE_DEVELOPER_TEAM_ID }}
apple-id: ${{ secrets.APPLE_APPLE_ID }}
env:
BUILD_TYPE: ${{ fromJSON('["dev", "release"]')[startsWith(github.ref, 'refs/tags/v')] }}
CORE_LOVE_PACKAGE_PATH: ./core.love
CORE_LOVE_ARTIFACT_NAME: core_love_package
PRODUCT_NAME: my_love_app
BUNDLE_ID: com.example.myloveapp
jobs:
build-core:
runs-on: ubuntu-latest
env:
OUTPUT_FOLDER: ./build
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build core love package
uses: love-actions/love-actions-core@v1
with:
build-list: ./media/ ./parts/ ./Zframework/ ./conf.lua ./main.lua ./version.lua
package-path: ${{ env.CORE_LOVE_PACKAGE_PATH }}
- name: Upload core love package
uses: actions/upload-artifact@v3
with:
name: ${{ env.CORE_LOVE_ARTIFACT_NAME }}
path: ${{ env.CORE_LOVE_PACKAGE_PATH }}
auto-test:
runs-on: ubuntu-latest
needs: build-core
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Love actions for testing
uses: love-actions/love-actions-test@v1
with:
font-path: ./parts/fonts/proportional.otf
language-folder: ./parts/language
build-macos-appstore:
runs-on: macos-latest
needs: [build-core, auto-test]
env:
OUTPUT_FOLDER: ./build
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
# Download your core love package here
- name: Download core love package
uses: actions/download-artifact@v3
with:
name: ${{ env.CORE_LOVE_ARTIFACT_NAME }}
# This is an example dynamic library
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
platform: macOS
dir: ./ColdClear
- name: Process ColdClear
shell: bash
run: |
rm ./ColdClear/universal/libcold_clear.a
- name: Build macOS packages
id: build-packages
uses: love-actions/love-actions-macos-appstore@v1
with:
app-name: ${{ env.PRODUCT_NAME }}
bundle-id: ${{ env.BUNDLE_ID }}
copyright: "Copyright © 2019-2022 26F-Studio. Some Rights Reserved."
icon-path: ./.github/build/macOS/${{ env.BUILD_TYPE }}/icon.icns
love-package: ${{ env.CORE_LOVE_PACKAGE_PATH }}
libs-path: ./ColdClear/universal/
product-name: ${{ env.PRODUCT_NAME }}
version-string: "1.0.0"
output-folder: ${{ env.OUTPUT_FOLDER }}
apple-development-base64: ${{ secrets.APPLE_CERT_APPLE_DEVELOPMENT_BASE64 }}
apple-development-password: ${{ secrets.APPLE_CERT_APPLE_DEVELOPMENT_PWD }}
api-key: ${{ secrets.APPLE_API_KEY }}
api-key-id: ${{ secrets.APPLE_API_KEY_ID }}
api-issuer-id: ${{ secrets.APPLE_API_ISSUER_ID }}
team-id: ${{ secrets.APPLE_DEVELOPER_TEAM_ID }}
apple-id: ${{ secrets.APPLE_APPLE_ID }}
external-test: ${{ startsWith(github.ref, 'refs/tags/pre') }}
store-release: ${{ startsWith(github.ref, 'refs/tags/v') }}
- name: Upload logs artifact
uses: actions/upload-artifact@v3
with:
name: ${{ needs.get-info.outputs.base-name }}_macOS_appstore_logs
path: |
${{ env.OUTPUT_FOLDER }}/DistributionSummary.plist
${{ env.OUTPUT_FOLDER }}/ExportOptions.plist
${{ env.OUTPUT_FOLDER }}/Packaging.log
- name: Upload pkg artifact
uses: actions/upload-artifact@v3
with:
name: ${{ needs.get-info.outputs.base-name }}_macOS_appstore_pkg
path: ${{ env.OUTPUT_FOLDER }}/${{ env.PRODUCT_NAME }}.pkg
Name | Required | Default | Description |
---|---|---|---|
app-name |
false |
"LÖVE for macOS" |
App display name. Used in platform/xcode/macosx/love-macosx.plist |
bundle-id |
false |
"org.love2d.macOS" |
App bundle id. Used in platform/xcode/love.xcodeproj/project.pbxproj |
copyright |
false |
"" |
App copyright info. Used in platform/xcode/macosx/love-macosx.plist |
icon-path |
false |
"./icon.icns" |
.icns format icon's path. Used in platform/xcode/Images.xcassets/OS X AppIcon.appiconset |
love-ref |
false |
"c35356c841976eb6f370347b81eec845d5520338" |
LÖVE git ref. Could be commit hash, tags or branch name |
love-patch |
false |
"" |
Git patch file path for the LÖVE repo. The patch must start from love-ref . You can use git diff -p <tag1> <tag2> to get the patch file |
love-package |
false |
"./game.love" |
.love game package file path |
libs-path |
false |
"" |
Path to the libraries folder. Would copy all contents to platform/xcode/ excluding top folder |
product-name |
false |
"love_app" |
Base name of the package. Used to rename products |
version-string |
false |
"fc3f5ee6209a0aab9a4d381ed5cd99110f9ff2f2" |
App version string no more than 3 numbers. Used in platform/xcode/love.xcodeproj/project.pbxproj |
output-folder |
false |
"./build" |
Built packages output folder |
apple-development-base64 |
true |
"" |
Apple Development certificate base64 content. Used to sign the app |
apple-development-password |
true |
"" |
Apple Development certificate password. Used to sign the app |
api-key |
true |
"" |
App Store Connect API key content. Used to automaticly update profiles, app IDs and certificates |
api-key-id |
true |
"" |
App Store Connect API key ID. Used to automaticly update profiles, app IDs and certificates |
api-issuer-id |
true |
"" |
App Store Connect API issuer ID. Used to automaticly update profiles, app IDs and certificates |
team-id |
true |
"" |
Developer team id. Used to sign the app |
apple-id |
true |
"" |
App Apple ID. Used to upload the package |
Name | Example | Description |
---|---|---|
package-paths |
./build/my_game.pkg |
Built packages' paths in a bash-style list relative to the repository root, separated by spaces |
Love actions for macOS AppStore is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.