fastlane: Deliver fails to upload binary

New Issue Checklist

Issue Description

Upload runs fine if one uses Application Launcher while logged in on the associated account.

Fails silently (aka doesn’t do anything) while running on a fastlane script.

This was working fine a couple of versions ago.

Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

Captured Output

Command Used: ios upload --env store

Output/Log

Successfully loaded Appfile at path '/Users/dev-name/dev/sub-project/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/dev-name/dev/sub-project/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/dev-name/dev/sub-project/fastlane/Appfile'
- apple_id: 'dev-name@example.com'
- team_id: '#TEAMTOKEN#'
- app_identifier: 'com.example.project'
-------
Looking for iTunes Connect Team with ID #TEAMID#

+--------------------------------------+-----------------------------------+
|                          deliver 2.56.0 Summary                          |
+--------------------------------------+-----------------------------------+
| skip_metadata                        | true                              |
| skip_screenshots                     | true                              |
| submit_for_review                    | false                             |
| force                                | true                              |
| run_precheck_before_submit           | false                             |
| username                             | itunes-connect@example.com |
| screenshots_path                     | ./fastlane/screenshots            |
| metadata_path                        | ./fastlane/metadata               |
| app_identifier                       | com.example.project               |
| edit_live                            | false                             |
| platform                             | ios                               |
| skip_binary_upload                   | false                             |
| skip_app_version_update              | false                             |
| automatic_release                    | false                             |
| dev_portal_team_id                   | #TEAMTOKEN#                        |
| overwrite_screenshots                | false                             |
| precheck_default_rule_level          | warn                              |
| ignore_language_directory_validatio  | false                             |
| n                                    |                                   |
+--------------------------------------+-----------------------------------+


+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 2    | deliver          | 5           |
+------+------------------+-------------+



✅ fastlane environment ✅

Stack

Key Value
OS 10.12.6
Ruby 2.3.3
Bundler? false
Git git version 2.14.1
Installation Source ~/.rbenv/versions/2.3.3/bin/fastlane
Host Mac OS X 10.12.6 (16G29)
Ruby Lib Dir ~/.rbenv/versions/2.3.3/lib
OpenSSL Version OpenSSL 1.0.2j 26 Sep 2016
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 8.3.3

System Locale

Variable Value
LANG en_GB.UTF-8
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

default_platform :ios

platform :ios do

  desc 'Cocoapods'
  lane :pods do
    cocoapods
  end

  desc 'Testing'
  lane :test do
    scan(
        scheme: ENV['SCAN_SCHEME'],
        workspace: ENV['FASTLANE_WORKSPACE'],
        clean: true,
        code_coverage: true,
        configuration: 'Alpha',
        device: 'iPhone 7 Plus',
        xcargs: '-sdk iphonesimulator ONLY_ACTIVE_ARCH=YES VALID_ARCHS=x86_64'
    )
    slather(
        cobertura_xml: true,
        output_directory: 'fastlane/test_output',
        workspace: ENV['FASTLANE_WORKSPACE'],
        proj: ENV['PROJECT_COVERAGE'],
        scheme: ENV['SCAN_SCHEME'],
        verbose: true,
        # ignore:['../../*']
    )
  end

  desc 'Provisioning'
  lane :provision do
    match(
        type: ENV['BUILD_TYPE'],
        team_id: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
        team_name: ENV['TEAM_NAME'],
        app_identifier: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier),
        shallow_clone: false,
        force: true,
        force_for_new_devices: true
    )
  end

  desc 'Building the code'
  lane :Building do
    gym(
        scheme: ENV['SCHEME'],
        export_method: ENV['EXPORT_METHOD'],
        configuration: ENV['CONFIGURATION'],
        output_directory: './build',
        output_name: ENV['OUTPUT_NAME'],
        include_symbols: true,
        include_bitcode: false,
        silent: true
    )
  end

  lane :hockeyapp do
    hockey(
        api_token: ENV['HOCKEY_API_TOKEN'],
        public_identifier: ENV['HOCKEY_APP_ID'],
        ipa: 'build/' + ENV['OUTPUT_NAME'],
        notify: '1',
        status: '2',
        release_type: ENV['RELEASE_TYPE'],
        teams: ENV['TEAM'],
        tags: 'developer,tester',
        strategy: 'replace'
    )
  end

  lane :upload do
    deliver(
        skip_metadata: true,
        skip_screenshots: true,
        submit_for_review: false,
        force: true,
        run_precheck_before_submit: false,
        username: ENV['USERNAME']
    )
  end

  error do |lane, exception|
    puts 'Error: ' + exception.message
  end

end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer

`./fastlane/Appfile`
apple_id ENV['APPLE_ID']        # Your Apple email address
team_id ENV['TEAM_ID']          # Developer Portal Team ID
app_identifier ENV['BUNDLE_ID'] # App Bundle ID

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md

fastlane gems

Gem Version Update-Status
fastlane 2.56.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
slack-notifier 1.5.1
CFPropertyList 2.3.5
claide 1.0.2
colored2 3.1.2
nanaimo 0.2.3
xcodeproj 1.5.1
rouge 2.0.7
xcpretty 0.2.8
terminal-notifier 1.8.0
plist 3.3.0
multipart-post 2.0.0
word_wrap 1.0.0
public_suffix 2.0.5
tty-screen 0.5.0
babosa 1.0.2
colored 1.2
highline 1.7.8
commander-fastlane 4.4.5
faraday 0.13.1
unf_ext 0.0.7.4
unf 0.1.4
domain_name 0.5.20170404
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
fastimage 2.1.0
gh_inspector 1.0.3
mini_magick 4.5.1
multi_xml 0.6.0
rubyzip 1.2.1
security 0.1.3
xcpretty-travis-formatter 0.0.4
dotenv 2.2.1
bundler 1.15.4
faraday_middleware 0.12.2
json 2.1.0
io-console 0.4.6
excon 0.59.0
unicode-display_width 1.3.0
terminal-table 1.8.0
bigdecimal 1.3.2
psych 2.2.4

generated on: 2017-09-14

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 1
  • Comments: 18 (9 by maintainers)

Most upvoted comments

Thanks for reporting this, this should be fixed with the most recent release, sorry about that

I’m not sure if it’s relevant, but if I look at ipa_upload_package_builder.rb, there is following code: def copy_ipa(ipa_path) ipa_file_name = "#{File.basename(ipa_path, '.ipa')}(#{Digest::SHA256.file(ipa_path).hexdigest}).ipa" This actually appends SHA256 digest to the original ipa name and copies it to transporter package. The resulting name of the file will be “ORIGINAL_IPA_NAME(SHA256).ipa”. However, looking at transporter out it seems that parentheses are not allowed in the filename: [22:04:49]: The filename da(79a6c24a88310adf91490fa32eaa7e15dd91ee2d9d8139dfe86ac76320d04eac).ipa in the package contains an invalid character(s). The valid characters are: A-Z, a-z, 0-9, dash, period, underscore, but the name cannot start with a dash, period, or underscore