apple-actions / upload-testflight-build Goto Github PK
View Code? Open in Web Editor NEWA GitHub Action that Uploads a build to Apple TestFlight
License: MIT License
A GitHub Action that Uploads a build to Apple TestFlight
License: MIT License
Is there a way to include input to show up as "Test Details" on Testflight?
The process is quite complicated. I'd like to have a guide (some of which might just be links to other guides in the flutter docs for example) that tells you how to build the Android and iOS apps from start to finish.
Hi good work you have on Apple-Actions
I try your Apple-Actions from:
And now I encounter issue with uploading to TestFlight:
Invalid AdamId: 1531537685
The organization zzz does not have permission to modify the application with the Apple ID 1531537685. Please try again, using an account for an organization with access to this application.
It seem AdamId is not match with App's Apple ID on AppStoreConnect which should be 1542524524
Currently it is just a substring match.
getting warning on Github Actions.
I know it doesn't break anything but would be good to have warning free workflow.
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: apple-actions/upload-testflight-build@v1Show less
ย
Look here: https://github.com/Apple-Actions/.
Once a video is loaded once, cache it forever.
We would need to make a settings page where users can drop the cache.
We are having the following warning:
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: apple-actions/upload-testflight-build@master. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
I guess it's time to bump to node 20 ๐
Thanks for this action, it makes uploading to testflight super easy.
One thing that would be handy is making the build UUID available in an output. This can be used e.g. to make the build available to additional test groups. Visible in the following build log under Delivery UUID
2022-08-09 16:09:45.621 INFO: Show Progress: Upload succeeded.
2022-08-09 16:09:45.621 INFO:
================
UPLOAD SUCCEEDED
Delivery UUID: bc5d4ee1-0ef2-416f-a7cb-cd1d0ba062a8
Transferred 55418663 bytes in 1.789 seconds (31.0MB/s)
================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>os-version</key>
<string>12.5.0</string>
<key>success-message</key>
<string>No errors uploading 'myApp.ipa'</string>
<key>tool-path</key>
<string>/Applications/Xcode_13.4.1.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
<key>tool-version</key>
<string>5.4211.13411</string>
</dict>
</plist>
Context
Github have seen no major issues reported and a minimal number of people opted out of the forced upgrade to Node16. Given this, Github will remove Node12 from the Actions runner on the 14th of August 2023
More info on:
https://github.blog/changelog/2023-07-17-github-actions-removal-of-node12-from-the-actions-runner/
What needs to be done
I noticed node 16
is already merged to master branch, but there's no tag for this. v1 tag still points to node 12
. Can someone create a new tag?
Hi!
I just recently found the work that you've put here in Apple-Actions, and it really simplified migrating one of the project workflows that I'm working on from Azure DevOps ๐ Thanks a bunch!
With that said, can I request that you tag a v1 of this action? It would really help us out ๐
My build pipeline has been working fine. Recently I started getting random authentication errors. Any ideas on how I can diagnose this?
/usr/bin/xcrun altool --output-format xml --upload-app --file release.ipa --type ios --apiKey *** --apiIssuer ***
*** status code 401, auth issue.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>os-version</key>
<string>11.6.1</string>
<key>product-errors</key>
<array>
<dict>
<key>code</key>
<integer>-19209</integer>
<key>message</key>
<string>Unable to authenticate.</string>
<key>userInfo</key>
<dict>
<key>NSLocalizedDescription</key>
<string>Unable to authenticate.</string>
<key>NSLocalizedFailureReason</key>
<string>Unable to authenticate.</string>
</dict>
</dict>
</array>
<key>tool-path</key>
<string>/Applications/Xcode_13.1.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
<key>tool-version</key>
<string>4.060.1220</string>
</dict>
</plist>
Error: The process '/usr/bin/xcrun' failed with exit code 1
Looking at the documentations, it seems that -f
and -t
should be used instead of --file
and --type
https://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126
Hello! Thank you for creating this Apple Action, it seems very easy to use.
I wanted to ask if you have (or plan to publish) resources on how to create the .ipa
file. I know the various xcodebuild
commands necessary to build one on my machine, but typically the size of the file is larger than 100MB (GitHub's file size limit). Also, having to create the .ipa
file locally is a hinderance to full automation.
I've been attempting to build the .ipa
file as a separate command via GitHub actions, but configuring all of the certs (mobile provisioning profiles & distribution certifications) remotely is something I can't seem to yet wrap my head around. I would appreciate any resources or direction!
They're there in some weird semi structured semi dynamic
format, it's just a matter of teasing the information out and displaying it.
Its been replaced with notarytool
See mitchellh/gon#45 for a similar issue.
Having read some more, it looks like notarytool does not have any functionality related to TestFlight uploads. The new tool is called Transporter:
Thanks for creating this github action.
Currently I am facing this issue while uploading ipa to test flight
Could not determine the package's bundle id. The package is missing an Info.plist or the CFBundlePackageType is not 'APPL' or 'FMWK'.
This is the command used:
Run apple-actions/upload-testflight-build@v1
with:
app-path: Skylark/.build/Artifacts/Skylark Stage.ipa
issuer-id: ***
api-key-id: ***
api-private-key: ***
app-type: ios
env:
BUILD_NUMBER: 21
When using this action I'm getting the warning: The set-output
command is deprecated and will be disabled soon. Please upgrade to using Environment Files.
I'm getting this error even though I can see my .p8 file in ~/private_keys
Is there something I need to change or do on my mac action runner machine?
Error message:
The file 'AuthKey_***.p8' could not be found in any of these locations: '~/actions-runner/_work/ProjectName/ProjectName/private_keys', '~/private_keys', '~/.private_keys', '~/.appstoreconnect/private_keys'.
Full output:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>os-version</key>
<string>12.0.1</string>
<key>product-errors</key>
<array>
<dict>
<key>code</key>
<integer>-1011</integer>
<key>message</key>
<string>Unable to upload archive.</string>
<key>userInfo</key>
<dict>
<key>NSLocalizedDescription</key>
<string>Unable to upload archive.</string>
<key>NSLocalizedFailureReason</key>
<string>Failed to authenticate with errors: (
"Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 \"Failed to generate JWT token: Error Domain=NSCocoaErrorDomain Code=-43 \"Failed to load AuthKey file.\" UserInfo={NSLocalizedDescription=Failed to load AuthKey file., NSLocalizedFailureReason=The file 'AuthKey_***.p8' could not be found in any of these locations: '~/actions-runner/_work/ProjectName/ProjectName/private_keys', '~/private_keys', '~/.private_keys', '~/.appstoreconnect/private_keys'.}\" UserInfo={NSLocalizedRecoverySuggestion=Failed to generate JWT token: Error Domain=NSCocoaErrorDomain Code=-43 \"Failed to load AuthKey file.\" UserInfo={NSLocalizedDescription=Failed to load AuthKey file., NSLocalizedFailureReason=The file 'AuthKey_***.p8' could not be found in any of these locations: '~/actions-runner/_work/ProjectName/ProjectName/private_keys', '~/private_keys', '~/.private_keys', '~/.appstoreconnect/private_keys'.}, NSLocalizedDescription=Failed to generate JWT token: Error Domain=NSCocoaErrorDomain Code=-43 \"Failed to load AuthKey file.\" UserInfo={NSLocalizedDescription=Failed to load AuthKey file., NSLocalizedFailureReason=The file 'AuthKey_***.p8' could not be found in any of these locations: '~/actions-runner/_work/ProjectName/ProjectName/private_keys', '~/private_keys', '~/.private_keys', '~/.appstoreconnect/private_keys'.}, NSLocalizedFailureReason=App Store operation failed.}"
)</string>
</dict>
</dict>
</array>
<key>tool-path</key>
<string>/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
<key>tool-version</key>
<string>4.060.1220</string>
</dict>
</plist>
EDIT: I managed to upload the IPA manually from my mac. The IPA was saved correctly and altool accepted the upload when I did it through the terminal. However, when I try to use my Github Action for this, it always fails with this same error message.
I have included my workflow file here for context:
on:
workflow_dispatch:
jobs:
iOS:
runs-on: macOS
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.x'
- uses: nuget/setup-nuget@v1
with:
nuget-version: 'latest'
- name: Import signing certificate
uses: Apple-Actions/import-codesign-certs@v1
with:
keychain: ${{ runner.temp }}/signing_temp
p12-file-base64: ${{ secrets.SIGNING_CERTIFICATE_DATA }}
p12-password: ${{ secrets.SIGNING_CERTIFICATE_PASSWORD }}
- name: Import provisioning profile
env:
PROVISIONING_PROFILE: ${{secrets.PROVISIONING_PROFILE_DATA}}
run: |
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
echo "$PROVISIONING_PROFILE" | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/profile.mobileprovision
- name: Build ipa
run: |
nuget restore ProjectName.sln
cd ProjectName
msbuild ProjectName.iOS/ProjectName.iOS.csproj \
/p:Configuration=Release /p:Platform=iPhone \
/p:BuildIpa=true \
/p:FirebaseCrashlyticsUploadSymbolsEnabled=true \
/p:IpaPackageDir=$GITHUB_WORKSPACE/ProjectName/ProjectName.iOS/bin/iPhone/Release \
"/p:Codesignkey=iPhone Distribution"
- name: Upload a Build Artifact
uses: actions/upload-artifact@v2
with:
path: ${{ github.workspace }}/ProjectName/ProjectName.iOS/bin/iPhone/Release/*ipa
- name: 'Upload app to TestFlight'
uses: apple-actions/upload-testflight-build@v1
with:
app-path: '${{ github.workspace }}/ProjectName/ProjectName.iOS/bin/iPhone/Release/ProjectName.ipa'
issuer-id: ${{ secrets.APP_KEY_ISSUER }}
api-key-id: ${{ secrets.APPLE_CONNECT_KEY_ID_APP_MANAGER }}
api-private-key: ${{ secrets.APPLE_CONNECT_API_PKCS8 }}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.