GithubHelp home page GithubHelp logo

apple-actions / upload-testflight-build Goto Github PK

View Code? Open in Web Editor NEW
163.0 10.0 37.0 1.22 MB

A GitHub Action that Uploads a build to Apple TestFlight

License: MIT License

TypeScript 91.79% JavaScript 8.21%

upload-testflight-build's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

upload-testflight-build's Issues

Release Notes

Is there a way to include input to show up as "Test Details" on Testflight?

Add better development instructions to the README

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.

Invalid AdamID

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
Screen Shot 2020-12-05 at 14 24 35

Cache videos

Once a video is loaded once, cache it forever.

We would need to make a settings page where users can drop the cache.

Node.js 16 actions are deprecated

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 ๐Ÿ˜„

Add a new output with the build id

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>

Create new tag for node 16 (v1 tag points to node 12)

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?

Tag a first release

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 ๐Ÿ™‚

Authentication error uploading build

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

Information for generating the .ipa file

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!

Add definitions

They're there in some weird semi structured semi dynamic format, it's just a matter of teasing the information out and displaying it.

altool is deprecated and no longer available in xcode 13 - replaced with notarytool

Its been replaced with notarytool

https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow

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:

Upload issue

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

Error uploading after updating to XCode 13

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 }}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.