Git Product home page Git Product logo

fastlane-plugin-appcenter's Introduction

App Center fastlane plugin

fastlane Plugin Badge Gem Version Build Status

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-appcenter, add it to your project by running:

fastlane add_plugin appcenter

fastlane v2.96.0 or higher is required for all plugin-actions to function properly.

About App Center

With App Center you can continuously build, test, release, and monitor your apps. This plugin provides a set of actions to interact with App Center.

appcenter_fetch_devices allows you to obtain the list of iOS devices to distribute an app to (useful for automatic provisioning of testers' devices).

appcenter_upload allows you to upload and distribute apps to your testers on App Center as well as to upload .dSYM files to collect detailed crash reports in App Center.

appcenter_fetch_version_number allows you to obtain the latest version number (short or full) for an app. This is useful for tasks such as getting the latest version of an app so that an increment action can take place on CI, or checking that an upload has been successful.

appcenter_codepush_release_react allows you to deploy app updates via CodePush.

Usage

To get started, first, obtain an API token in App Center. The API Token is used to authenticate with the App Center API in each call.

appcenter_fetch_devices(
  api_token: "<appcenter token>",
  owner_name: "<appcenter account name of the owner of the app (username or organization URL name)>",
  app_name: "<appcenter app name>",
  destinations: "*", # Default is 'Collaborators', use '*' for all distribution groups
  devices_file: "devices.txt" # Default. If you customize, the extension must be .txt
)
appcenter_upload(
  api_token: "<appcenter token>",
  owner_name: "<appcenter account name of the owner of the app (username or organization URL name)>",
  owner_type: "user", # Default is user - set to organization for appcenter organizations
  app_name: "<appcenter app name (as seen in app URL)>",
  file: "<path to android build binary>",
  notify_testers: true # Set to false if you don't want to notify testers of your new release (default: `false`)
)
appcenter_fetch_version_number(
  api_token: "<appcenter token>",
  owner_name: "<appcenter account name of the owner of the app (username or organization URL name)>",
  app_name: "<appcenter app name (as seen in app URL)>",
  version: "a specific version to get the last release for" # optional, don't set this value to get the last upload of all versions
)

The appcenter_fetch_version_number returns a hash that contains the id, the version number, and the build number. The version corresponds to the short_version and the build number to the version known by App Center for a given release:

{"id"=>1, "version"=>"1.0.0", "build_number"=>"1.0.0.1234"} # iOS apps contain the full version plus build number due to the way that Apple use CFBundleVersion for this value
{"id"=>588, "version"=>"1.2.0", "build_number"=>"1615"}
appcenter_codepush_release_react(
  api_token: "<appcenter token>",
  owner_name: "<appcenter account name of the owner of the app (username or organization URL name)>",
  app_name: "<appcenter app name (as seen in app URL)>",
  deployment: "Staging"
)

Help

Once installed, information and help for an action can be printed out with this command:

fastlane action appcenter_upload # or any action included with this plugin

A note on App Name

The app_name and owner_name as set in the Fastfile come from the app's URL in App Center, in the below form:

https://appcenter.ms/users/{owner_name}/apps/{app_name}

They should not be confused with the displayed name on App Center pages, which is called app_display_name instead.

Parameters

The action parameters api_token, owner_name, app_name, and others can also be omitted when their values are set as environment variables. By default, appcenter_upload will use the same api_token, owner_name, and app_name you used in appcenter_fetch_devices.

Here is the list of all existing parameters:

appcenter_fetch_devices

Key & Env Var Description
api_token
APPCENTER_API_TOKEN
API Token for App Center
owner_name
APPCENTER_OWNER_NAME
Owner name, as found in the App's URL in App Center
destinations
APPCENTER_DISTRIBUTE_DESTINATIONS
Comma separated list of distribution group names. Default is 'Collaborators', use '*' for all distribution groups
devices_file
FL_REGISTER_DEVICES_FILE
File to save the devices list to. Same environment variable as fastlane's register_devices action

appcenter_upload

Key & Env Var Description
api_token
APPCENTER_API_TOKEN
API Token for App Center
owner_type
APPCENTER_OWNER_TYPE
Owner type, either 'user' or 'organization' (default: user)
owner_name
APPCENTER_OWNER_NAME
Owner name as found in the App's URL in App Center
app_name
APPCENTER_APP_NAME
App name as found in the App's URL in App Center. If there is no app with such name, you will be prompted to create one
app_display_name
APPCENTER_APP_DISPLAY_NAME
App display name to use when creating a new app
app_os
APPCENTER_APP_OS
App OS can be Android, iOS, macOS, Windows, Custom. Used for new app creation, if app 'app_name' was not found
app_platform
APPCENTER_APP_PLATFORM
App Platform. Used for new app creation, if app 'app_name' was not found
file
APPCENTER_DISTRIBUTE_FILE
File path to the release build to publish
upload_build_only
APPCENTER_DISTRIBUTE_UPLOAD_BUILD_ONLY
Flag to upload only the build to App Center. Skips uploading symbols or mapping (default: false)
dsym
APPCENTER_DISTRIBUTE_DSYM
Path to your symbols file. For iOS provide path to app.dSYM.zip
upload_dsym_only
APPCENTER_DISTRIBUTE_UPLOAD_DSYM_ONLY
Flag to upload only the dSYM file to App Center (default: false)
mapping
APPCENTER_DISTRIBUTE_ANDROID_MAPPING
Path to your Android mapping.txt
upload_mapping_only
APPCENTER_DISTRIBUTE_UPLOAD_ANDROID_MAPPING_ONLY
Flag to upload only the mapping.txt file to App Center (default: false)
destinations
APPCENTER_DISTRIBUTE_DESTINATIONS
Comma separated list of destination names, use '*' for all distribution groups if destination type is 'group'. Both distribution groups and stores are supported. All names are required to be of the same destination type (default: Collaborators)
destination_type
APPCENTER_DISTRIBUTE_DESTINATION_TYPE
Destination type of distribution destination. 'group' and 'store' are supported (default: group)
mandatory_update
APPCENTER_DISTRIBUTE_MANDATORY_UPDATE
Require users to update to this release. Ignored if destination type is 'store' (default: false)
notify_testers
APPCENTER_DISTRIBUTE_NOTIFY_TESTERS
Send email notification about release. Ignored if destination type is 'store' (default: false)
release_notes
APPCENTER_DISTRIBUTE_RELEASE_NOTES
Release notes (default: No changelog given)
should_clip
APPCENTER_DISTRIBUTE_RELEASE_NOTES_CLIPPING
Clip release notes if its length is more then 5000, true by default (default: true)
release_notes_link
APPCENTER_DISTRIBUTE_RELEASE_NOTES_LINK
Additional release notes link
build_number
APPCENTER_DISTRIBUTE_BUILD_NUMBER
The build number, required for macOS .pkg and .dmg builds, as well as Android ProGuard mapping.txt when using upload_mapping_only
version
APPCENTER_DISTRIBUTE_VERSION
The build version, required for .pkg, .dmg, .zip and .msi builds, as well as Android ProGuard mapping.txt when using upload_mapping_only
timeout
APPCENTER_DISTRIBUTE_TIMEOUT
Request timeout in seconds applied to individual HTTP requests. Some commands use multiple HTTP requests, large file uploads are also split in multiple HTTP requests
dsa_signature
APPCENTER_DISTRIBUTE_DSA_SIGNATURE
DSA signature of the macOS or Windows release for Sparkle update feed
ed_signature
APPCENTER_DISTRIBUTE_ED_SIGNATURE
EdDSA signature of the macOS or Windows release for Sparkle update feed
strict
APPCENTER_STRICT_MODE
Strict mode, set to 'true' to fail early in case a potential error was detected

appcenter_fetch_version_number

Key & Env Var Description
api_token
APPCENTER_API_TOKEN
API Token for App Center
owner_name
APPCENTER_OWNER_NAME
Owner name, as found in the App's URL in App Center
app_name
APPCENTER_APP_NAME
App name as found in the App's URL in App Center. If there is no app with such name, you will be prompted to create one
version
APPCENTER_APP_VERSION
App version to get the last release for instead of the last release of all versions

appcenter_codepush_release_react

Key & Env Var Description
api_token
APPCENTER_API_TOKEN
API Token for App Center
owner_name
APPCENTER_OWNER_NAME
Owner name, as found in the App's URL in App Center
app_name
APPCENTER_APP_NAME
App name as found in the App's URL in App Center. If there is no app with such name, you will be prompted to create one
deployment
APPCENTER_CODEPUSH_DEPLOYMENT
Name of deployment track (default: Staging)
target_version
APPCENTER_CODEPUSH_TARGET_VERSION
Target binary app version
mandatory
APPCENTER_CODEPUSH_MANDATORY
Specifies whether the update should be mandatory (default: true)
description
APPCENTER_CODEPUSH_DESCRIPTION
Description of CodePush release
dry_run
APPCENTER_CODEPUSH_DRY_RUN
Print command that would be run, don't run it (default: false)
disabled
APPCENTER_CODEPUSH_DISABLED
Specifies whether this release should not be immediately available for download (default: false)
no_duplicate_release_error
APPCENTER_CODEPUSH_NO_DUPLICATE_ERROR
Specifies whether to ignore errors if bundle is identical to the latest codepush release (default: false)
bundle_name
APPCENTER_CODEPUSH_BUNDLE_NAME
Specifies the name of the bundle file
output_dir
APPCENTER_CODEPUSH_OUTPUT
Specifies path to where the bundle and sourcemap should be written
sourcemap_output
APPCENTER_CODEPUSH_SOURCEMAP_OUTPUT
Specifies path to write sourcemaps to
development
APPCENTER_CODEPUSH_DEVELOPMENT
Specifies whether to generate dev or release build (default: false)
private_key_path
APPCENTER_CODEPUSH_PRIVATE_KEY_PATH
Specifies path to private key that will be used for signing bundles
extra_bundler_options
APPCENTER_CODEPUSH_EXTRA_BUNDLER_OPTIONS
A list of extra options that get passed to the react-native bundler

Example

Check out this example Fastfile to see how to use the appcenter_upload action. Try it by cloning the repo, running fastlane install_plugins and bundle exec fastlane test.

Sample uses .env for setting private variables like API token, owner name, .etc. You need to replace it in Fastfile by your own values.

There are three examples in test lane:

  • upload release for android with minimum required parameters
  • upload release for ios with all set parameters
  • upload only dSYM file for ios

Check out this example Fastfile for a full example of fetching devices, registering them with Apple, provisioning the devices, and signing an app.

Run tests for this plugin

To run both the tests, and code style validation, run

rake

To automatically fix many of the styling issues, use

rubocop -a

Issues and Feedback

For any other issues and feedback about this plugin, please open a GitHub issue.

Troubleshooting

If you have trouble using plugins, check out the Plugins Troubleshooting guide.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About fastlane

fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Security

Check out SECURITY.md for any security concern with this project.

Contact

We're on Twitter as @vsappcenter. Additionally you can reach out to us on the App Center portal. Open the "?" menu on the top right corner of screen, then use "Contact support" to file a support ticket. Our support team is there to answer your questions and help you solve your problems.

fastlane-plugin-appcenter's People

Contributors

adingler6 avatar ajaykn avatar alisoftware avatar anatolypristensky avatar dipree avatar dmitriykirakosyan avatar driemecker avatar erde33 avatar evkhramkov avatar export-mike avatar guperrot avatar hanstad avatar janpio avatar jp-andre avatar keatongreve avatar leomehlig avatar louiskraemer avatar lumaxis avatar matthiaswenz avatar microsoftopensource avatar msftgits avatar n2waf avatar noroxs avatar oklimberg avatar phu-tang avatar quinlanjager avatar qutaibah avatar radko93 avatar rimarsh avatar sergei-fedorov avatar

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

fastlane-plugin-appcenter's Issues

Add optional parameters app OS, platform & display name

According to user feedback the app slug alone isn't helpful to identify the app and obviously any prompt breaks CI.

Proposal:

  • Add optional parameters app_os, app_platform, app_display_name which will be used if the app slug not found
  • If all parameters provided, there will be no prompts, so it will be possible to use the action in CI

References:
#17 #19 #52

Option to upload a mac app

Hi,

It seems it's impossible to use this plugin (yet) to upload mac apps.
(e.g. zip file with the .app).
I know it's possible to use the website to upload and distribute the app, but seemingly not through the plugin.

version problen in ipa

Hi,

i have some kind of version problem. The error in fastlane-appcenter-plugin is:

Error uploading binary 422: {"status"=>"error", "message"=>"Version could not be created from build. Please make sure that your .ipa file has the correct format."}

How can i check what the real problem is. Normally the flutter build pipeline should add the current version into the Info.plist file of the resulting image. Or does appcenter look into a different file for the version?

lane_context is wrongly filled

Hi,

Thanks for this plugin! ๐Ÿ‘

I've found a bug, due to this patch HTTP request. In release = response.body is always just "distribution_group_name", "release_notes" which is probably unwanted because I would expect the whole release object.

I'm willing to open pull request, just don't know if my solution is good enough. jukben@95f6375

Step failure is incorrectly marked as a success

This is technically two separate issues:

  • Server error for unknown reasons (no explanation anywhere as to why)
  • Validation doesn't catch the error, marking the step as a success
[04:36:14]: ----------------------------------
[04:36:14]: --- Step: mobile_center_upload ---
[04:36:14]: ----------------------------------
[04:36:14]: Starting release upload...
[04:36:15]: Uploading release binary...
[04:36:27]: Binary uploaded
[04:36:28]: Release committed
[04:36:29]: Error adding to group 500: {"code"=>"internal_server_error", "message"=>"<UID>: internal error"}
[04:36:29]: Starting dSYM upload...
[04:36:29]: Uploading dSYM...
[04:36:31]: dSYM uploaded

Figure out OS and Platform automatically

When you try to upload an app with an unknown app_name you get these prompts:

[20:14:25]: App with name FastlaneExample not found, create one? (y/n)
y
[20:14:30]: Select OS
1. Android
2. iOS
?  1
[20:14:49]: Select Platform
1. Java
2. React-Native
3. Xamarin
?  1
  • OS: Android or iOS could be selected by my choice of apk or ipa file to upload. Or am I missing complexity here?
  • Platform is not defined by any of the params, but maybe can also be deduced from the app file?

Shared values defined in non-default module

The default usage of lane_context, according to the documentation, is lane_context[SharedValues::BUILD_NUMBER].
Applying the format to this plugin lane_context[SharedValues::APPCENTER_DOWNLOAD_LINK] results in the following error:
NameError: [!] uninitialized constant Fastlane::Actions::SharedValues::APPCENTER_DOWNLOAD_LINK

Instead, the user is required to type lane_context[Fastlane::Helper::SharedValues::APPCENTER_DOWNLOAD_LINK] which is not mentioned in the docs and only becomes clear when looking into the source code.

The SharedValues module should be moved to Fastlane::Actions where all other shared values are defined.

Could not retrieve response as fastlane runs in non-interactive mode

I'm getting the following error when trying to upload an app, when the app_name isn't already created. This use case works fine in Hockey, but seems to be a problem with App Center. We generate new build names for each of our feature branches which is why we need this.

In the log I see that it tries to prompt to create the app name. Can we have an option that automatically creates the app without user input based on what we entered as the app_name?

appcenter_upload(
      api_token: ENV["APP_CENTER_API_KEY"],
      owner_name: ENV["APP_CENTER_OWNER_NAME"],
      app_name: build_name,
      ipa: "./App.ipa"
    )

Option `group` is deprecated. Use `destinations` and `destination_type`

Previously used version is 0.22.

If "APPCENTER_DISTRIBUTE_GROUP" is defined as an environment variable.
Before it can be omitted, and all works well.

But now got the error message:

Option `group` is deprecated. Use `destinations` and `destination_type`

So the two lines were added below the apk line:

       appcenter_upload(
           apk: "xxx/yyy/zzz.apk",
           destinations: ENV["APPCENTER_DISTRIBUTE_GROUP"],
           destination_type: "group"
        )

Still same error:

Option `group` is deprecated. Use `destinations` and `destination_type`

Finally found a fix: rename the environment variable to something else other than APPCENTER_DISTRIBUTE_GROUP, problem solved.

I think the readme needs to be updated to show the right way.

Upload times out

It would be great to have a timeout parameter for uploading the app files just as fastlane hockey has (https://docs.fastlane.tools/actions/hockey/#parameters).

Recently my CI server had issues uploading a build to AppCenter as for some reason the upload took longer than 60 seconds. (The app is only 7MB large.)

This is my output from fastlane:

[08:09:07]: Net::ReadTimeout

+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | default_platform                    | 0           |
| 3    | ensure_git_status_clean             | 0           |
| 4    | setup_circle_ci                     | 0           |
| 5    | get_version_number                  | 2           |
| 6    | get_build_number                    | 0           |
| 7    | add_badge                           | 14          |
| 8    | git_branch                          | 0           |
| 9    | Switch to ios match_and_gym lane    | 0           |
| 10   | match                               | 6           |
| 11   | match                               | 3           |
| 12   | get_build_number                    | 1           |
| 13   | increment_build_number              | 2           |
| 14   | gym                                 | 168         |
| ๐Ÿ’ฅ   | appcenter_upload                    | 61          |
| 16   | clean_build_artifacts               | 0           |
| 17   | reset_git_repo                      | 0           |
+------+-------------------------------------+-------------+

There are very similar issues for fastlane hockey, having exactly the same issue and for them adjusting the parameter seemed to work like a charm: fastlane/fastlane#11156

So it would be great to have that parameter for appcenter_upload aswell.

Create app for organization

Hi, Is there a way to add or create an app to an organization?, It would be great if there was a way to do this.
Cheers!

Support some 'dry-run' option

On my project, I have a really big Fastfile ~1000, and very often it becomes broken

Recently I did upgrade to 1.0.0 version but unfortunately didn't check API changes...

It will be nice it appcenter_upload will support some dry_run option which will do as much validation as possible but will not upload artifacts to appcenter

invalid distribution group name

I recently updated to 0.2.1 . Everything seemed to be working fine until I tried distributing my app to the Testflight and Beta testers in Google play. Now I only get this error over and over:

Not found, invalid distribution group name
Group 'Alpha' was not found

This is th relevant code in my Fastfile:

# upload to appcenter
appcenter_upload(
      api_token: "<TOKEN>",
      owner_name: "<OWNER>",
      app_name: "<APPNAME>",
      notify_testers: true,
      group: "Alpha",
      release_notes: "<NOTES>",
      apk: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
)

Which makes me think something changed in the way appcenter retrieves the group id. Can you confirm this is the case? If so, how should I modify my Fastfile to reflect this change?

Upload to organisation- apps not supported

Unable to upload the app to the organization-app.

I don't see any information related to the organisation in the documentation or in the code.
upload url I see in the code, req.url("/v0.1/apps/#{owner_name}/#{app_name}/release_uploads/#{upload_id}")

Need the support to upload the .ipa to the organisaiton-app.

Uploading index.ios.map

I'm not seeing the index.ios.map file being uploaded to the Symbols when using this plugin. According to these instructions, it should include a source maps file.

https://docs.microsoft.com/en-us/appcenter/crashes/react-native

Create a ZIP file with the dSYM package on your Mac and the JavaScript source map of your app. The source map should named "index.ios.map"

When I download my Uploaded Symbol, the index.ios.map is not there. Does anyone know how to make make sure the source map files are uploaded?

Thanks

Code push support

Do you support updates thought code push service? Have you any plans on this?

No symbols after upload (iOS)

Hello,

I am using latest fastlane (2.114) and appcenter plugin. During the build I see this in the log:

Binary uploaded
..
dSYM uploaded

I do not know how to verify if dSYM is actually uploaded to App Center, but in the Hockeyapp I do see the build, but do not see dSYM. Instead I see Symbols none.

Why? How can I fix this?

I use plugin like this:

appcenter_upload(
    api_token: "my_token",
    owner_name: "my_company",
    group: "Collaborators,some-other-group",
    app_name: "app-name",
    ipa: "ipa-path",
    dsym: "dsym-path"
)

Is this project alive?

Is this project still alive? The last merge is from a year ago and there are pending PR that no one is merging.
Judging by the state of this plugin maintaining, choosing Appcenter.ms was not a good idea :(

No symbols founds in zip after appcenter_upload

I run the following command

 appcenter_upload(
            api_token: "...",
            owner_name: "...",
            app_name: "...",
            upload_dsym_only: true,
            dsym: "dSYM path",
        )

A zip file is correctly uploaded on app center and I see it in the list of uploaded file but it says "No symbols found" with a size of 0B. I tried to download the zip file and the file correctly contains the symboles apart the fact that the dSym file is present a two places (at root and in a path that sounds like the complete path of the original location of the symbole file (e.g. ../bin/.../...dSym)

When repackaging the zip file with only the dSym file at root and then uploading again in appcenter, the symbols are found and everything works well.

Option notify_testers also disabled Slack notifications

I'm not sure if this is intended behavior, but since notify_testers is now false by default, this will disable both email and Slack notifications for new distributions.

It took me a while to figure this one out, because the notifications just magically stopped working, which makes me wonder if notify_testers being false by default is the intended/best option here?

Appcenter codepush support

Since those plugins that were mentioned in another issue #26 (comment)
dont support appcenter code-push, I was wondering if this plugin will support appcenter codepush ?
Seems to be quite reasonable since this is an official fastlane plugin to support appcenter, makes sense to include codepush feature.

Show summary of params before starting

It would be very handy if appcenter_upload would show a summary of all the params submitted before starting to work. This would make debugging problems and failures much easier.

Example:
Ran a android lane. Selected Android as OS. Upload failed with "Platform does not match. Expected value: Android. Actual value: iOS". Turns out I had copied over the lane from ios and forgot to change ipa to apk and was also upload an .ipa file. Seeing this output on the command line would have sped up finding this quite a lot.

Error 403: {"message"=>"Forbidden", "code"=>"Forbidden"}

Hi,

I am facing this issue while uploading ipa file for ios from fastlane, also even when i have already created app on app center still it could not find it and shows the same message. please let me know if anything could fix this.

--- Step: appcenter_upload ---

Error 403: {"message"=>"Forbidden", "code"=>"Forbidden"}

Unable to upload Android APK after uploading iOS IPA

I'm working with a React Native project and what we're trying to achieve is building iOS and Android in the same build. However I'm unable to upload the Android APK after uploading the iOS IPA with the following error:

ERROR [2018-01-08 11:49:38.79]: Couldn't find dSYM file at path '/Users/vagrant/git/App.app.dSYM.zip'
ERROR [2018-01-08 11:49:38.79]: You passed invalid parameters to 'appcenter_upload'.
ERROR [2018-01-08 11:49:38.79]: Check out the error below and available options by running `fastlane action appcenter_upload`

I can't share my entire Fastfile without some editing but in the ios lane we run

appcenter_upload(
  api_token: "token",
  owner_name: "Owner",
  app_name: "App",
  ipa: binary_path
)

Followed by uploading dsyms after they're downloaded:

dsyms = lane_context[SharedValues::DSYM_PATHS]
dsyms.each do |dsym|
  appcenter_upload(
    api_token: "token",
    owner_name: "Owner",
    app_name: "App",
    upload_dsym_only: true,
    dsym: dsym
  )
end

After this completes we build Android and in that lane run:

appcenter_upload(
  api_token: "Token",
  owner_name: "Owner",
  app_name: "App",
  apk: "./android/app/build/outputs/apk/app-releaseStaging.apk"
)

:APPCENTER_BUILD_INFORMATION at the point of Android is set to the iOS project unsure if it helps, but thought that it might. Thanks!

Error uploading binary: 500

Hello everyone,

when I try to upload a binary via fastlane, I get the following error:

Error uploading binary 500:

<title>Server Error</title>

Ooopsโ€ฆ

We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly. If you want to provide more information, please file a support ticket.

Home Support

<script src="/assets/application-default.js" type="text/javascript"></script>

My build is still labeled as success though.
Is this App Center related?

fastlane action appcenter_upload not found

After installing the plugin in fastlane, the actions list contains mobile_center_upload but not appcenter_upload. I can see there was a renaming taking place in the past, so i am not sure if this did not propagate to the latest release, or something is wrong with my fastlane environment.

unable to upload app

I keep getting this error when I try using appcenter. Please advise

ERROR [2017-12-20 16:47:49.92]: fastlane finished with errors
ERROR [2017-12-20 16:47:49.92]: -----------------------------------------------------------------------
ERROR [2017-12-20 16:47:49.92]: SSL_connect returned=1 errno=0 state=error: certificate verify failed
ERROR [2017-12-20 16:47:49.92]: 
ERROR [2017-12-20 16:47:49.92]: SSL errors can be caused by various components on your local machine.
ERROR [2017-12-20 16:47:49.92]: 
ERROR [2017-12-20 16:47:49.92]: The best solution is to use the self-contained fastlane version.
ERROR [2017-12-20 16:47:49.92]: Which ships with a bundled OpenSSL,ruby and all gems - so you don't depend on system libraries
ERROR [2017-12-20 16:47:49.92]:  - Use Homebrew
ERROR [2017-12-20 16:47:49.92]:     - update brew with `brew update`
ERROR [2017-12-20 16:47:49.92]:     - install fastlane using:
ERROR [2017-12-20 16:47:49.92]:       - `brew cask install fastlane`
ERROR [2017-12-20 16:47:49.92]:  - Use One-Click-Installer:
ERROR [2017-12-20 16:47:49.92]:     - download fastlane at https://download.fastlane.tools
ERROR [2017-12-20 16:47:49.92]:     - extract the archive and double click the `install`
ERROR [2017-12-20 16:47:49.92]: -----------------------------------------------------------
ERROR [2017-12-20 16:47:49.92]: for more details on ways to install fastlane please refer the documentation:
ERROR [2017-12-20 16:47:49.92]: -----------------------------------------------------------
ERROR [2017-12-20 16:47:49.92]:         ๐Ÿš€       https://docs.fastlane.tools          ๐Ÿš€   
ERROR [2017-12-20 16:47:49.92]: -----------------------------------------------------------
ERROR [2017-12-20 16:47:49.92]: 
ERROR [2017-12-20 16:47:49.92]: You can also install a new version of Ruby
ERROR [2017-12-20 16:47:49.92]: 
ERROR [2017-12-20 16:47:49.92]: - Make sure OpenSSL is installed with Homebrew: `brew update && brew upgrade openssl`
ERROR [2017-12-20 16:47:49.92]: - If you use system Ruby:
ERROR [2017-12-20 16:47:49.92]:   - Run `brew update && brew install ruby`
ERROR [2017-12-20 16:47:49.92]: - If you use rbenv with ruby-build:
ERROR [2017-12-20 16:47:49.92]:   - Run `brew update && brew upgrade ruby-build && rbenv install 2.3.1`
ERROR [2017-12-20 16:47:49.92]:   - Run `rbenv global 2.3.1` to make it the new global default Ruby version
ERROR [2017-12-20 16:47:49.92]: - If you use rvm:
ERROR [2017-12-20 16:47:49.92]:   - First run `rvm osx-ssl-certs update all`
ERROR [2017-12-20 16:47:49.92]:   - Then run `rvm reinstall ruby-2.3.1 --with-openssl-dir=/usr/local`
ERROR [2017-12-20 16:47:49.92]: 
ERROR [2017-12-20 16:47:49.92]: If that doesn't fix your issue, please google for the following error message:
ERROR [2017-12-20 16:47:49.92]:   'SSL_connect returned=1 errno=0 state=error: certificate verify failed'
ERROR [2017-12-20 16:47:49.92]: -----------------------------------------------------------------------

I have done all what is stated in the error message but error still persist

app_name required?

With HockeyApp it was enough to upload an apk or ipa and the app figured out the name by itself by extracting it from the app. From reading the params of this plugin, this doesn't seem to be possible with AppCenter. Is this correct?

Why `owner_name`?

It is unexpected that owner_name is needed additionally to api_token (in comparison to the hockey action for HockeyApp for example).

What is the reason behind this requirement?
Only for the API path?

`app_name` is actually more `app_slug`?

Seems what I supply as app_name is actually used in the URL directly:

[21:03:08]: bad URI(is not URI?): /v0.1/apps/piotrowski/FastlaneExample (iOS)

(note the space in the app name)

On the other hand later in the process (if I replace the with - to make it work) the value seems to be used as a kind of "name":

[21:08:43]: App with name FastlaneExample-(iOS) not found, create one?
(y/n)
y

The app is actually created with this slug as name then as well, which makes for awkward names in the UI everywhere (as renaming in the web UI also seems to be broken).

[React Native / Android] Update Release doesn't upload releases when `destination_type` is `store`

On android apps (built in react native) appcenter_helper is not uploading a new release when destination_type is store.

Steps to reproduce:

  • call appcenter_upload to upload a new release making sure destination_type is set to store
  • everything works as expected until the plugin calls update_release
  • update_release finishes as expected but no release was uploaded (can be checked by going to the releases dashboard for the app)
  • the plugin will error on add_to_destination as no release will be found because it was never uploaded

Screenshot 2019-06-04 at 16 22 41

Feature request: support app names with spaces

I'm currently facing the issue that it seems like this plugin does not support spaces in the app name.

If I try to upload the app with a space in the name I get the following error message from fastlane:

bad URI(is not URI?): /v0.1/apps/CompanyName/My Awesome App

If I go ahead and URI encode all the spaces I end up with the message

App with name My%20Awesome%20App not found, create one? (y/n)

However in Mobile Center we already have set up the app "My Awesome App". It seems like the plugin does not URI decode the %20s back to spaces when neccessary.

Would love to have this supported :)

Existing app name not found

Even though I enter the correct app name in my fastfile, when I run fastlane beta I see:

[15:18:32]: App with name myappname not found, create one? (y/n)
y
[15:18:36]: Select OS
1. Android
2. iOS
?  2
[15:18:39]: Select Platform
1. Objective-C-Swift
2. React-Native
3. Xamarin
?  2
[15:18:42]: Error creating app 409: {"error"=>{"code"=>"Conflict", "message"=>"Validation error"}}

Does the conflict error suggest that the app is not created by an app by that name already exists?

Android Mapping.txt

Hello,

in the HockeyApp action we used the "dysm" property to upload the mapping.txt.
This does not work with the AppCenter-Plugin.. See the screenshot.
mapping_files

What is the right way, to upload it?

Thanks
Michael

Attempting to create an app that already exists

When trying to upload an app from my CI, I am getting the following error:
The app belongs to an organization that I am a part of.
The app is still a part of HockeyApp.
I see the app QA-dev in the list of apps.

Is there something I am missing?

Error 403: {"message"=>"Forbidden", "code"=>"Forbidden"}
App with name QA-dev not found, create one?

Feature Request: disable email notifications

Hello.

In the HockeyApp Fastlane action, we had access to a "notify" parameter, with which it was possible to disable automatic email notifications when uploading a new release. See https://docs.fastlane.tools/actions/hockey/

This parameter seems to be missing from the new appcenter_upload action, and emails are being sent to everyone for each release. I can't seem to find a way to have any control over this.

Could it be possible to add this parameter for appcenter_upload as well?
Thanks.

Error adding to store 500

I keep getting a 500 error when uploading a new version to google play.

This is what I'm getting in the console:

[10:20:30]: ------------------------------
[10:20:30]: --- Step: appcenter_upload ---
[10:20:30]: ------------------------------
[10:20:30]: Starting release upload...
[10:20:31]: Uploading release binary...
[10:20:36]: Binary uploaded
[10:20:37]: Release '45' committed
[10:20:39]: Release 1.3.0 was successfully updated
[10:20:44]: Error adding to store 500: {"code"=>"internal_server_error", "message"=>"internal error (Support ID: 02755a51-c741-4956-9b42-d753e20fef85)"}
[10:20:44]: Release '45' was not found

I tracked it down to this line:

UI.error("Error adding to #{destination_type} #{response.status}: #{response.body}")

It looks like the backend keeps responding with a 500. Any idea on what's going on?

macOS (.app.zip) support

Trying to get this working for a macOS application we have, not much luck since I was getting an error related to acceptable file formats.

I have a naive solution here. If anyone has any feedback on this, I'm more than willing to open a PR for it.

edit: I'm just passing the path to the app.zip to the :ipa option since based on the source, it works the same. we probably should have a differently named option for consistency (though if anyone's ever used the hockey fastlane action, the option works the same way. source).

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.