Unimplemented element
Destrocamil opened this issue · comments
Hello,
I um using Fastline with some Fastlane action, mainly Gym and Notarize to build and notarize some macOS applications.
Currently, I have 2 computer: both with same XCode versions, both with same macOS Ventura versions.
The installation of fastlane was made equally across the machines.
I have all the required env variables to perform notarization in place.
On one computer, it works like a charm.
On the other, notarization seems to finish with no errors (the notarization in its core) but then I got a Unimplemented element
error.
platform :mac do
desc "etc"
lane :staging do
# add actions here: https://docs.fastlane.tools/actions
update_code_signing_settings(
use_automatic_signing: false,
path: "../UI/appliation.xcodeproj",
team_id: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
bundle_identifier: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier),
code_sign_identity: "Developer ID Application: X",
sdk: "macosx*",
)
build_mac_app(
project:"../_egav/app1.xcodeproj",
scheme:"Scheme1",
configuration:"Release",
output_directory:"Output/something"
)
build_mac_app(
project:"../_egav/app2.xcodeproj",
scheme:"Scheme22",
configuration:"Release",
output_directory:"Output/something2"
)
build_mac_app(
project:"../_egav/app3.xcodeproj",
scheme:"scheme3",
configuration:"Release",
output_directory:"Output/something"3
)
#disable_automatic_code_signing(path: "../UI/application.xcodeproj")
build_mac_app(
project:"../UI/application.xcodeproj",
scheme:"SomeScheme",
configuration:"Release",
output_directory:"Output/application",
clean:true,
# xcargs: "-allowProvisioningUpdates", #Enable Xcode automatic Code signing
export_xcargs: 'OTHER_CODE_SIGN_FLAGS="--timestamp --options runtime"',
export_method: "mac-application"
)
# Notarize the application
notarize(
package:"Output/application/application.app",
use_notarytool:false, #this requires app specific password
try_early_stapling: true,
print_log:true,
verbose:true,
asc_provider: "SomeInc",
username: "someuser@email.com",
bundle_id: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier),
)
end
lane :main do
# add actions here: https://docs.fastlane.tools/actions
end
end
Here is part of the log
[11:13:56]: ▸ 2023-02-27 11:13:56.251 PROGRESS: Upload complete.
[11:13:56]: ▸ 2023-02-27 11:13:56.253 Waiting for 0 operations to complete
[11:13:56]: ▸ 2023-02-27 11:13:56.253 ITunesSoftwareServiceFileLogging cleaning up
[11:13:56]: ▸ <?xml version="1.0" encoding="UTF-8"?>
[11:13:56]: ▸ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
[11:13:56]: ▸ <plist version="1.0">
[11:13:56]: ▸ <dict>
[11:13:56]: ▸ <key>notarization-upload</key>
[11:13:56]: ▸ <dict>
[11:13:56]: ▸ <key>RequestUUID</key>
[11:13:56]: ▸ <string>998dcc63-1e04-44b9-a744-1d3e2ad0ed4b</string>
[11:13:56]: ▸ </dict>
[11:13:56]: ▸ <key>os-version</key>
[11:13:56]: ▸ <string>13.1.0</string>
[11:13:56]: ▸ <key>success-message</key>
[11:13:56]: ▸ <string>No errors uploading 'Output/application/application.app.zip'.</string>
[11:13:56]: ▸ <key>tool-path</key>
[11:13:56]: ▸ <string>/Applications/Xcode-14.2.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
[11:13:56]: ▸ <key>tool-version</key>
[11:13:56]: ▸ <string>6.043.14043</string>
[11:13:56]: ▸ <key>warnings</key>
[11:13:56]: ▸ <array>
[11:13:56]: ▸ <dict>
[11:13:56]: ▸ <key>code</key>
[11:13:56]: ▸ <integer>-1030</integer>
[11:13:56]: ▸ <key>message</key>
[11:13:56]: ▸ <string>altool has been deprecated for notarization and starting in late 2023 will no longer be supported by the Apple notary service. You should start using notarytool to notarize your software.</string>
[11:13:56]: ▸ <key>userInfo</key>
[11:13:56]: ▸ <dict>
[11:13:56]: ▸ <key>NSLocalizedDescription</key>
[11:13:56]: ▸ <string>altool has been deprecated for notarization and starting in late 2023 will no longer be supported by the Apple notary service. You should start using notarytool to notarize your software.</string>
[11:13:56]: ▸ </dict>
[11:13:56]: ▸ </dict>
[11:13:56]: ▸ </array>
[11:13:56]: ▸ </dict>
[11:13:56]: ▸ </plist>
+--------------------+--------------------------------------+
| Lane Context |
+--------------------+--------------------------------------+
| DEFAULT_PLATFORM | mac |
| PLATFORM_NAME | mac |
| LANE_NAME | mac staging |
| XCODEBUILD_ARCHIVE | /Users/user/Library/Developer/Xco |
| | de/Archives/2023-02-27/application |
| | 2023-02-27 |
| | 11.13.17.xcarchive |
+--------------------+--------------------------------------+
[11:13:56]: Unimplemented element. Consider reporting via https://github.com/patsplat/plist/issues
+------+------------------------+-------------+
| fastlane summary |
+------+------------------------+-------------+
| Step | Action | Time (in s) |
+------+------------------------+-------------+
| 1 | default_platform | 0 |
| 2 | xcode_select | 0 |
| 3 | update_code_signing_s | 0 |
| | ettings | |
| 4 | build_mac_app | 6 |
| 5 | build_mac_app | 74 |
| 6 | build_mac_app | 107 |
| 7 | build_mac_app | 15 |
| 💥 | notarize | 29 |
+------+------------------------+-------------+
[11:13:56]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run `fastlane env` to append the fastlane environment to your issue
Please update using `gem install fastlane`
/Users/user/.gem/ruby/3.1.3/gems/plist-3.7.0/lib/plist/parser.rb:128:in `parse': \e[31m[!] Unimplemented element. Consider reporting via https://github.com/patsplat/plist/issues\e[0m (Plist::UnimplementedElementError)
from /Users/user/.gem/ruby/3.1.3/gems/plist-3.7.0/lib/plist/parser.rb:38:in `parse_xml'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/actions/notarize.rb:127:in `block in altool'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/actions/notarize.rb:240:in `with_notarize_authenticator'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/actions/notarize.rb:117:in `altool'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/actions/notarize.rb:44:in `run'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
from Fastfile:78:in `block (2 levels) in parsing_binding'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/lane.rb:33:in `call'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run'
from /Users/user/.gem/ruby/3.1.3/gems/commander-4.6.0/lib/commander/command.rb:187:in `call'
from /Users/user/.gem/ruby/3.1.3/gems/commander-4.6.0/lib/commander/command.rb:157:in `run'
from /Users/user/.gem/ruby/3.1.3/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!'
from /Users/user/.gem/ruby/3.1.3/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/commands_generator.rb:354:in `run'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/commands_generator.rb:43:in `start'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off'
from /Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.0/bin/fastlane:23:in `<top (required)>'
from /Users/user/.gem/ruby/3.1.3/bin/fastlane:25:in `load'
from /Users/user/.gem/ruby/3.1.3/bin/fastlane:25:in `<main>'
I am out of ideas.
Thanks a lot for your help
Thanks for the report! I just tried running Plist.parse_xml
on the plist data in the log output that you provided, and it parsed fine without errors. So I am a bit stumped.
However, we did just release a new version of the plist gem, so there is a possibility it broke something in a non-obvious way.
Can you check the versions of Ruby, plist, and fastlane that are installed on each machine?
I think this will do it:
$ ruby -v
$ fastlane -v
$ ruby -e 'require "plist"; puts Plist::VERSION'
Thanks for your help!
On the computer that works:
<details><summary>🚫 fastlane environment 🚫</summary>
### Stack
| Key | Value |
| --------------------------- | ---------------------------------------------------------- |
| OS | 13.2 |
| Ruby | 3.1.3 |
| Bundler? | false |
| Git | git version 2.39.2 |
| Installation Source | /opt/homebrew/Cellar/fastlane/2.212.0/libexec/bin/fastlane |
| Host | macOS 13.2 (22D49) |
| Ruby Lib Dir | /opt/homebrew/Cellar/ruby@3.1/3.1.3_1/lib |
| OpenSSL Version | OpenSSL 3.0.7 1 Nov 2022 |
| Is contained | false |
| Is homebrew | true |
| Is installed via Fabric.app | false |
| Xcode Path | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version | 14.2 |
| Swift Version | 5.7.2 |
### System Locale
| Variable | Value | |
| -------- | ----------- | - |
| LANG | en_US.UTF-8 | ✅ |
| LC_ALL | | |
| LANGUAGE | | |
<details><summary>`./fastlane/Appfile`</summary>
### fastlane gems
| Gem | Version | Update-Status |
| -------- | ------- | ------------------ |
| fastlane | 2.212.0 | 🚫 Update available |
### Loaded fastlane plugins:
**No plugins Loaded**
<details><summary><b>Loaded gems</b></summary>
| Gem | Version |
| ------------------------------- | ------------ |
| error_highlight | 0.3.0 |
| did_you_mean | 1.6.1 |
| atomos | 0.1.3 |
| rexml | 3.2.5 |
| CFPropertyList | 3.0.6 |
| claide | 1.1.0 |
| colored2 | 3.1.2 |
| nanaimo | 0.3.0 |
| xcodeproj | 1.22.0 |
| rouge | 2.0.7 |
| xcpretty | 0.3.0 |
| terminal-notifier | 2.0.0 |
| unicode-display_width | 1.8.0 |
| terminal-table | 1.8.0 |
| plist | 3.6.0 |
| public_suffix | 5.0.1 |
| addressable | 2.8.1 |
| multipart-post | 2.0.0 |
| word_wrap | 1.0.0 |
| optparse | 0.1.1 |
| tty-screen | 0.8.1 |
| tty-cursor | 0.7.1 |
| tty-spinner | 0.9.3 |
| artifactory | 3.0.15 |
| babosa | 1.0.4 |
| colored | 1.2 |
| highline | 2.0.3 |
| commander | 4.6.0 |
| excon | 0.99.0 |
| faraday-em_http | 1.0.0 |
| faraday-em_synchrony | 1.0.0 |
| faraday-excon | 1.1.0 |
| faraday-httpclient | 1.0.1 |
| faraday-multipart | 1.0.4 |
| faraday-net_http | 1.0.1 |
| faraday-net_http_persistent | 1.2.0 |
| faraday-patron | 1.0.0 |
| faraday-rack | 1.0.0 |
| faraday-retry | 1.0.3 |
| ruby2_keywords | 0.0.5 |
| faraday | 1.10.3 |
| unf_ext | 0.0.8.2 |
| unf | 0.1.4 |
| domain_name | 0.5.20190701 |
| http-cookie | 1.0.5 |
| faraday-cookie_jar | 0.0.7 |
| faraday_middleware | 1.2.0 |
| fastimage | 2.2.6 |
| gh_inspector | 1.1.3 |
| json | 2.6.1 |
| mini_magick | 4.12.0 |
| naturally | 2.2.1 |
| rubyzip | 2.3.2 |
| security | 0.1.3 |
| xcpretty-travis-formatter | 1.0.1 |
| dotenv | 2.8.1 |
| bundler | 2.3.26 |
| simctl | 1.6.10 |
| jwt | 2.7.0 |
| uber | 0.1.0 |
| declarative | 0.0.20 |
| trailblazer-option | 0.1.2 |
| representable | 3.2.0 |
| retriable | 3.1.2 |
| mini_mime | 1.1.2 |
| memoist | 0.16.2 |
| multi_json | 1.15.0 |
| os | 1.1.4 |
| signet | 0.17.0 |
| googleauth | 1.3.0 |
| httpclient | 2.8.3 |
| webrick | 1.8.1 |
| google-apis-core | 0.11.0 |
| google-apis-playcustomapp_v1 | 0.12.0 |
| google-apis-androidpublisher_v3 | 0.34.0 |
| google-cloud-env | 1.6.0 |
| google-cloud-errors | 1.3.0 |
| google-cloud-core | 1.6.0 |
| google-apis-iamcredentials_v1 | 0.17.0 |
| google-apis-storage_v1 | 0.19.0 |
| rake | 13.0.6 |
| digest-crc | 0.6.4 |
| google-cloud-storage | 1.44.0 |
| emoji_regex | 3.2.3 |
| jmespath | 1.6.2 |
| aws-partitions | 1.714.0 |
| aws-eventstream | 1.2.0 |
| aws-sigv4 | 1.5.2 |
| aws-sdk-core | 3.170.0 |
| aws-sdk-kms | 1.62.0 |
| aws-sdk-s3 | 1.119.1 |
| set | 1.0.2 |
| forwardable | 1.3.2 |
| logger | 1.5.0 |
| pathname | 0.2.0 |
| shellwords | 0.1.0 |
| cgi | 0.3.5 |
| date | 3.2.2 |
| timeout | 0.2.0 |
| stringio | 3.0.1 |
| securerandom | 0.2.0 |
| uri | 0.11.0 |
| openssl | 3.0.1 |
| digest | 3.1.0 |
| io-nonblock | 0.1.0 |
| ipaddr | 1.2.4 |
| io-wait | 0.2.1 |
| zlib | 2.1.1 |
| resolv | 0.2.1 |
| time | 0.2.0 |
| open-uri | 0.2.0 |
| mutex_m | 0.1.1 |
| net-http | 0.3.0 |
| net-protocol | 0.1.2 |
| ostruct | 0.5.2 |
| english | 0.7.1 |
| erb | 2.2.3 |
| strscan | 3.0.1 |
| abbrev | 0.1.0 |
| io-console | 0.5.11 |
| tempfile | 0.1.2 |
| delegate | 0.2.0 |
| fileutils | 1.6.0 |
| tmpdir | 0.1.2 |
| base64 | 0.1.1 |
| singleton | 0.1.1 |
| open3 | 0.1.1 |
| nkf | 0.1.1 |
| prettyprint | 0.1.1 |
| pp | 0.3.0 |
| find | 0.1.1 |
| yaml | 0.2.0 |
| psych | 4.0.4 |
</details>
*generated on:* **2023-02-28**
</details>
- ruby -v
$ ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]
- fastlane -v
$ fastlane -v
fastlane installation at path:
/opt/homebrew/Cellar/fastlane/2.212.0/libexec/gems/fastlane-2.212.0/bin/fastlane
-----------------------------
[✔] 🚀
fastlane 2.212.0
- ruby -e
$ ruby -e 'require "plist"; puts Plist::VERSION'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- plist (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from -e:1:in `<main>'
On the computer where it does not work
- fastlane env
swift-driver version: 1.62.15 <details><summary>✅ fastlane environment ✅</summary>
### Stack
| Key | Value |
| --------------------------- | ------------------------------------------------ |
| OS | 13.1 |
| Ruby | 3.1.3 |
| Bundler? | false |
| Git | git version 2.37.1 (Apple Git-137.1) |
| Installation Source | ~/.gem/ruby/3.1.3/bin/fastlane |
| Host | macOS 13.1 (22C65) |
| Ruby Lib Dir | ~/.rubies/ruby-3.1.3/lib |
| OpenSSL Version | OpenSSL 1.1.1s 1 Nov 2022 |
| Is contained | false |
| Is homebrew | false |
| Is installed via Fabric.app | false |
| Xcode Path | /Applications/Xcode-14.2.app/Contents/Developer/ |
| Xcode Version | 14.2 |
| Swift Version | 5.7.2 |
### System Locale
| Variable | Value | |
| -------- | ----------- | - |
| LANG | en_US.UTF-8 | ✅ |
| LC_ALL | en_US.UTF-8 | ✅ |
| LANGUAGE | en_US.UTF-8 | ✅ |
### fastlane gems
| Gem | Version | Update-Status |
| -------- | ------- | ------------- |
| fastlane | 2.212.1 | ✅ Up-To-Date |
### Loaded fastlane plugins:
**No plugins Loaded**
<details><summary><b>Loaded gems</b></summary>
| Gem | Version |
| ------------------------------- | ------------ |
| error_highlight | 0.3.0 |
| did_you_mean | 1.6.1 |
| atomos | 0.1.3 |
| claide | 1.1.0 |
| colored2 | 3.1.2 |
| nanaimo | 0.3.0 |
| rexml | 3.2.5 |
| xcodeproj | 1.22.0 |
| rouge | 2.0.7 |
| xcpretty | 0.3.0 |
| terminal-notifier | 2.0.0 |
| unicode-display_width | 1.8.0 |
| terminal-table | 1.8.0 |
| addressable | 2.8.1 |
| multipart-post | 2.0.0 |
| word_wrap | 1.0.0 |
| optparse | 0.1.1 |
| tty-screen | 0.8.1 |
| tty-cursor | 0.7.1 |
| tty-spinner | 0.9.3 |
| artifactory | 3.0.15 |
| babosa | 1.0.4 |
| colored | 1.2 |
| highline | 2.0.3 |
| commander | 4.6.0 |
| unf_ext | 0.0.8.2 |
| unf | 0.1.4 |
| domain_name | 0.5.20190701 |
| http-cookie | 1.0.5 |
| faraday-cookie_jar | 0.0.7 |
| faraday_middleware | 1.2.0 |
| fastimage | 2.2.6 |
| gh_inspector | 1.1.3 |
| naturally | 2.2.1 |
| rubyzip | 2.3.2 |
| security | 0.1.3 |
| xcpretty-travis-formatter | 1.0.1 |
| dotenv | 2.8.1 |
| google-cloud-env | 1.6.0 |
| google-cloud-errors | 1.3.0 |
| google-cloud-core | 1.6.0 |
| google-apis-storage_v1 | 0.19.0 |
| memoist | 0.16.2 |
| multi_json | 1.15.0 |
| os | 1.1.4 |
| signet | 0.17.0 |
| googleauth | 1.3.0 |
| rake | 13.0.6 |
| digest-crc | 0.6.4 |
| mini_mime | 1.1.2 |
| google-cloud-storage | 1.44.0 |
| emoji_regex | 3.2.3 |
| set | 1.0.2 |
| CFPropertyList | 3.0.6 |
| plist | 3.7.0 |
| public_suffix | 5.0.1 |
| excon | 0.99.0 |
| ruby2_keywords | 0.0.5 |
| faraday-retry | 1.0.3 |
| faraday-rack | 1.0.0 |
| faraday-patron | 1.0.0 |
| faraday-net_http_persistent | 1.2.0 |
| faraday-net_http | 1.0.1 |
| faraday-multipart | 1.0.4 |
| faraday-httpclient | 1.0.1 |
| faraday-excon | 1.1.0 |
| faraday-em_synchrony | 1.0.0 |
| faraday-em_http | 1.0.0 |
| faraday | 1.10.3 |
| json | 2.6.3 |
| mini_magick | 4.12.0 |
| bundler | 2.4.7 |
| simctl | 1.6.10 |
| jwt | 2.7.0 |
| webrick | 1.8.1 |
| httpclient | 2.8.3 |
| retriable | 3.1.2 |
| trailblazer-option | 0.1.2 |
| declarative | 0.0.20 |
| uber | 0.1.0 |
| representable | 3.2.0 |
| google-apis-core | 0.11.0 |
| google-apis-playcustomapp_v1 | 0.13.0 |
| google-apis-androidpublisher_v3 | 0.34.0 |
| google-apis-iamcredentials_v1 | 0.17.0 |
| aws-eventstream | 1.2.0 |
| aws-sigv4 | 1.5.2 |
| aws-partitions | 1.716.0 |
| jmespath | 1.6.2 |
| aws-sdk-core | 3.170.0 |
| aws-sdk-kms | 1.62.0 |
| aws-sdk-s3 | 1.119.1 |
| forwardable | 1.3.2 |
| logger | 1.5.0 |
| pathname | 0.2.0 |
| shellwords | 0.1.0 |
| cgi | 0.3.5 |
| date | 3.2.2 |
| timeout | 0.2.0 |
| stringio | 3.0.1 |
| securerandom | 0.2.0 |
| uri | 0.11.0 |
| openssl | 3.0.1 |
| digest | 3.1.0 |
| io-nonblock | 0.1.0 |
| ipaddr | 1.2.4 |
| io-wait | 0.2.1 |
| zlib | 2.1.1 |
| resolv | 0.2.1 |
| time | 0.2.0 |
| open-uri | 0.2.0 |
| mutex_m | 0.1.1 |
| net-http | 0.3.0 |
| net-protocol | 0.1.2 |
| ostruct | 0.5.2 |
| english | 0.7.1 |
| erb | 2.2.3 |
| strscan | 3.0.1 |
| abbrev | 0.1.0 |
| io-console | 0.5.11 |
| tempfile | 0.1.2 |
| delegate | 0.2.0 |
| fileutils | 1.6.0 |
| tmpdir | 0.1.2 |
| base64 | 0.1.1 |
| singleton | 0.1.1 |
| open3 | 0.1.1 |
| nkf | 0.1.1 |
| prettyprint | 0.1.1 |
| pp | 0.3.0 |
| find | 0.1.1 |
| yaml | 0.2.0 |
| psych | 4.0.4 |
</details>
- ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin22]
- fastlane -v
fastlane installation at path:
/Users/user/.gem/ruby/3.1.3/gems/fastlane-2.212.1/bin/fastlane
-----------------------------
[✔] 🚀
fastlane 2.212.1
- ruby -e
% ruby -e 'require "plist"; puts Plist::VERSION' ruby -e 'require "plist"; puts Plist::VERSION'
3.7.0
Actually now I see that the ruby version is way more updated on one machine than the other BUT the fastlane env
command tells me they are the same :/
One thing to notice is on the machine that works, fastlane was installed using brew. On the machine that does not work, I guess it was installed via some gem thing.
We are too many machines with different configs and then this happens and I have no control of changes.
Thankss <3
OK, it looks like a different version of the plist gem is installed on the two machines.
On the machine where it is not working, can you try the following:
$ gem uninstall -aI plist
$ gem install plist:3.6.0
Then see if you can still reproduce the error.
If that doesn't change anything, then the next thing you could try is updating fastlane itself. I see that the machine that is working is using an older version of fastlane. Could you verify that it still works after updating to fastlane 2.212.1?
Finally: after digging into how fastlane and altool
work for notarizing, it seems like altool
might be outputting verbose logs that are getting mixed in with the XML output and causing the parse error.
On the machine where it is not working, do you have any environment variable set that could be causing Xcode tools to emit verbose logs? Try running this command:
$ env
And scan through the output to see if anything looks like it could be related to Xcode that is different between the two machines.
Also, can you share the xcrun altool --notarize-app
command that is being used on both machines? It should be in the fastlane log output. You can redact any credentials or identifiers.
Hey @mattbrictson !
So, let's breakdown:
- Uninstalling and installing the 3.6.0 does not fix the issue
- Updating the fastlane version in the machine that is working does not change anything, it builds anyway.
- There are no
env
variables that can cause such issue. The only thing regarding verbosity is part of thefastlane
actionnotarize
. I will try to set theprint_log
andverbose
params to false and will let you know the outcome. - The
xcrun altool --notarize-app
is exactly the same, but I will send the full command in a few.- On the computer where it works
xcrun altool --notarize-app -t osx -f "Output/App/App.app.zip" --primary-bundle-id com.company.App--output-format xml --asc-provider "SomethingInc" -u some@email.com -p @env:FL_NOTARIZE_PASSWORD
- On the computer where it does not work ``
- On the computer where it works
One thing I noticed - and seems to be the only difference between the output of both machines - is that on the machine that does not work, I get some log about Trying to find transporter at (...) Unable to find transporter, using REST APIs
.
Thing is that I don't have transporter on the computer it works also x)
Also, on the computer that works, I can clearly see the steps:
[10:39:23]: Uploading package to notarization service, might take a while
[10:39:23]: $ xcrun altool --notarize-app -t osx -f (...) @env:FL_NOTARIZE_PASSWORD
(...)
Querying request status
[10:40:47]: $ xcrun altool --notarization-info *** --output-format xml -u some@email.com -p @env:FL_NOTARIZE_PASSWORD
While on the other it's just a bunch of steps mixed up.
I would say that this is nothing related to your project so, if you don't have clue or any hint, I would say to close this issue.
Sorry for the trouble!
Thanks once again!
@Destrocamil thanks for the additional info.
Based on your logs and my analysis of the fastlane source code, I think this is ultimately a fastlane problem and not something that can or should be dealt with in the plist gem.
Here's what I found:
- fastlane is executing
xcrun altool
to perform the notarization (ref) - fastlane uses
Open3.open2e
to capture the output of thexcrun altool
command (ref) - If everything goes well, altool will output an XML plist
- fastlane passes that XML plist output into
Plist.parse_xml
(ref)
The problem (in my opinion) is that fastlane uses open2e
. This combines stdout and stderr output from the altool process into a single string.
If altool prints debug messages, progress messages, or other text on stderr (e.g. "Unable to find transporter..."), this gets combined with the XML plist into a single string. That combination of log messages and plist data is not valid XML.
When invalid XML is passed to Plist.parse_xml
, we get the Unimplemented element
error (which admittedly is not a great error message).
I think you should open a bug report in the fastlane repository. Feel free to link to or copy the contents of this comment.
As a workaround, you could continue troubleshooting why altool one machine is outputting different log messages. If you can somehow figure out how to suppress those messages, that may fix the XML parsing.
This is my first encounter with fastlane and altool, so I probably can't offer much insight.