patsplat / plist

All-purpose Property List manipulation library

Home Page:http://www.rubydoc.info/gems/plist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 the fastlane action notarize. I will try to set the print_log and verbose 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 ``

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 the xcrun 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.