I’ve a .net8.0 maui utility that I’m making an attempt to add to testflight through github actions with xcode 16. I’ve created a brand new signing certificates and an Apple Retailer provisioning profile that makes use of that certificates. I am utilizing Steven Thewessen’s workflow from this information, however I am getting this error from my dotnet publish
step:
- identify: Construct iOS
run: dotnet publish ${{ inputs.project-file }} -c ${{ inputs.build-config }} -f ${{ inputs.dotnet-version-target}}-ios /p:ArchiveOnBuild=true --no-restore
/Customers/runner/.dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8319/instruments/msbuild/iOS/Xamarin.Shared.targets(1835,3): error : No legitimate iOS code signing keys present in keychain. You'll want to request a codesigning certificates from https://developer.apple.com. [/Users/runner/work/App/App/App/App.csproj::TargetFramework=net8.0-ios]
/Customers/runner/.dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8319/instruments/msbuild/iOS/Xamarin.Shared.targets(1835,3): error : [/Users/runner/work/App/App/App/App.csproj::TargetFramework=net8.0-ios]
That is my cd-ios.yml workflow (with out all of the inputs from my cd-build.yml):
identify: iOS Publish
jobs:
publish-ios:
runs-on: macos-latest
steps:
- makes use of: maxim-lobanov/setup-xcode@v1
identify: Set XCode model
with:
xcode-version: ${{ inputs.xcode-version }}
- identify: Import iOS Certs
makes use of: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets and techniques.dist-cert-p12 }}
p12-password: ${{ secrets and techniques.dist-cert-password }}
- identify: Obtain Provisioning Profiles
id: provisioning
makes use of: apple-actions/download-provisioning-profiles@v1
with:
bundle-id: ${{ inputs.package-name }}
profile-type: 'IOS_APP_STORE'
issuer-id: ${{ secrets and techniques.appstore-issuer }}
api-key-id: ${{ secrets and techniques.appstore-keyid }}
api-private-key: ${{ secrets and techniques.appstore-private-key }}
- identify: Checklist Certificates
run: safety find-identity -v -p codesigning
- identify: Checklist Downloaded Provisioning Profiles
run: ls -lah ~/Library/MobileDevice/Provisioning Profiles/
- identify: Checkout Repository
makes use of: actions/checkout@v4
- identify: Setup .NET ${{ inputs.dotnet-version }}
makes use of: actions/setup-dotnet@v3
with:
dotnet-version: ${{ inputs.dotnet-version }}
- identify: Set up MAUI Workloads
run: dotnet workload set up maui
- identify: Restore NuGet Packages
run: dotnet restore ${{ inputs.sln-file }} --configfile ${{ inputs.nuget-config }}
env:
TELERIK_NUGET_KEY: ${{ secrets and techniques.telerik-nuget-api-key }}
- identify: Model the app
makes use of: managedcode/MAUIAppVersion@v1
with:
csproj: ${{ inputs.project-file }}
model: ${{ github.run_number }}
displayVersion: ${{ inputs.build-version }}.${{ github.run_number }}
printFile: true
- identify: Construct iOS
run: dotnet publish ${{ inputs.project-file }} -c ${{ inputs.build-config }} -f ${{ inputs.dotnet-version-target}}-ios /p:ArchiveOnBuild=true --no-restore
- identify: Add app to TestFlight
makes use of: apple-actions/upload-testflight-build@v1
with:
app-path: ${{ github.workspace }}/${{ inputs.project-folder }}/bin/${{ inputs.build-config }}/${{ inputs.dotnet-version-target}}-ios/ios-arm64/publish/*.ipa
issuer-id: ${{ secrets and techniques.appstore-issuer }}
api-key-id: ${{ secrets and techniques.appstore-keyid }}
api-private-key: ${{ secrets and techniques.appstore-private-key }}
The step downloading my provisioning profiles returns this:
Run apple-actions/download-provisioning-profiles@v1
Wrote IOS_APP_STORE profile 'iOS Staff Retailer Provisioning Profile: com.myteam.myapp' to '/Customers/runner/Library/MobileDevice/Provisioning Profiles/.mobileprovision'.
Wrote IOS_APP_STORE profile 'GithubActionsMobileApp' to '/Customers/runner/Library/MobileDevice/Provisioning Profiles/.mobileprovision'.
The second profile listed is the proper profile I wish to use.
The Checklist Certificates part returns this:
Run safety find-identity -v -p codesigning
1) "Apple Distribution: My Staff Identify (TeamID)"
1 legitimate identities discovered
Which is the proper signing certificates, however I nonetheless get the error.
I’ve tried specifying within the publish step with /p:CodeSignProvision= to specify which of the 2 and I get the identical error.
I’ve tried downloading my profile, base64 encoding it and manually including it to my keychain with the steered code from github actions docs.
I’ve tried extracting the Provisioning Profile UUID and passing it on to the publish command with -p:CodesignProvision=$PROFILE_UUID
, however that additionally does nothing.
I’ve revoked the signing certificates and deleted the provisioning profile, and created new ones. My provisioning profile is a App Retailer Join Distribution profile, and my certificates is a Distribution kind with the identify of my Staff because the ‘Certificates Identify’. Nothing appears to have any impact.