Skip to content

Build iOS app

Build iOS app #15

Workflow file for this run

name: Build iOS app
on:
# push:
# branches: [ main ]
# pull_request:
# branches: [ main ]
workflow_dispatch:
env:
DOTNETVERSION: 7.0.203
MAUIFRAMEWORK: net7.0-ios
PROJECTNAME: Skolplattformen.ElevApp
APPLICATIONID: se.kolplattformen.elevapp
jobs:
buildIOS:
runs-on: macos-latest
env:
BUILDNUMBER: $(expr ${{ github.run_number }} + 16)
steps:
- uses: actions/checkout@v3
- name: Import Certificate
uses: apple-actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
- name: Download Provisioning Profile
id: provisioning
uses: apple-actions/download-provisioning-profiles@v1
with:
bundle-id: '${{env.APPLICATIONID}}'
profile-type: 'IOS_APP_STORE'
issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }}
api-key-id: ${{ secrets.APPSTORE_KEY_ID }}
api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }}
- name: Setup .NET SDK ${{env.DOTNETVERSION}}
uses: actions/setup-dotnet@v1
with:
dotnet-version: '${{env.DOTNETVERSION}}'
- name: List installed .NET info
shell: bash
run: dotnet --info
- name: Remove unused frameworks from project
run: |
sed -E -i .bak "s:<TargetFrameworks>[^<]+</TargetFrameworks>:<TargetFrameworks>${{env.MAUIFRAMEWORK}}</TargetFrameworks>:g" src/${{env.PROJECTNAME}}/${{env.PROJECTNAME}}.csproj
- name: Set build number
run: |
sed -E -i .bak "s:<ApplicationVersion>[^<]+</ApplicationVersion>:<ApplicationVersion>${{env.BUILDNUMBER}}</ApplicationVersion>:g" src/${{env.PROJECTNAME}}/${{env.PROJECTNAME}}.csproj
- name: Install .NET MAUI
shell: bash
run: |
dotnet nuget locals all --clear
dotnet workload install maui-ios
dotnet workload install ios
- name: Restore nuget packages
shell: bash
run: |
cd src
dotnet restore ${{env.PROJECTNAME}}.sln
- name : Build iOS App
shell: bash
run: |
cd src/${{env.PROJECTNAME}}
dotnet publish ${{env.PROJECTNAME}}.csproj -f:${{env.MAUIFRAMEWORK}} -c:Release "/p:BuildIpa=true" "/p:CodesignKey=Apple Distribution: Not Free Beer AB (76DV673YHX)" "/p:CodesignProvision=ElevAppSigning" "/p:RuntimeIdentifier=ios-arm64" "/p:EnableAssemblyILStripping=true" "/p:ApplicationId=${{env.APPLICATIONID}}"
- uses: actions/upload-artifact@v2
with:
name: artifacts-ios
path: |
src/${{env.PROJECTNAME}}/bin/Release/${{env.MAUIFRAMEWORK}}/ios-arm64/publish/*.*
- name: Upload to TestFlight
uses: apple-actions/upload-testflight-build@v1
with:
app-type: ios
app-path: ' src/${{env.PROJECTNAME}}/bin/Release/${{env.MAUIFRAMEWORK}}/ios-arm64/publish/${{env.PROJECTNAME}}.ipa'
issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }}
api-key-id: ${{ secrets.APPSTORE_KEY_ID }}
api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }}