fastlane: Deliver fails to upload binary
New Issue Checklist
- Updated fastlane to the latest version
- I read the Contribution Guidelines
- I read docs.fastlane.tools
- I searched for existing GitHub issues
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_outputas 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)
It looks like this PR is what introduced the issue: https://github.com/fastlane/fastlane/commit/d15b3fdbe4b6c39aa2dd3a8d9533a1c4eedaf600
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