Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iTMS Transporter not found on this machine - Transporter is no longer bundled with xcode 14 #5704

Closed
3 tasks done
BjornGameDev opened this issue Nov 1, 2022 · 5 comments · Fixed by #5718
Closed
3 tasks done

Comments

@BjornGameDev
Copy link

Issue Description

When you try to publish a ios app on Xcode 14 it throws the following error:

iTMS Transporter not found on this machine - make sure your Xcode installation is not damaged.

The transporter app is no longer bundled with Xcode 14? One fix I found is to install the Transporter.app separately from the App store and hard code getITMSTransporterPath function in itmtransporter-service.js to '/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter'.

Reproduction

With xcode 14 and MacOs Ventura

  1. Run ns publish ios
  2. Throws error iTMS Transporter not found on this machine - make sure your Xcode installation is not damaged.

Relevant log output (if applicable)

No response

Environment

OS: macOS 13.0
CPU: (6) x64 Intel(R) Core(TM) i5-8500B CPU @ 3.00GHz
Shell: /bin/zsh
node: 12.9.1
npm: 6.10.2
nativescript: 8.3.3

# android
java: 11.0.14.1
ndk: Not Found
apis: Not Found
build_tools: Not Found
system_images: Not Found

# ios
xcode: 14.0.1/14A400
cocoapods: 1.11.2
python: 2.7.18
python3: 3.8.6
ruby: 2.6.10
platforms:
  - DriverKit 21.4
  - iOS 16.0
  - macOS 12.3
  - tvOS 16.0
  - watchOS 9.0

Please accept these terms

@BjornGameDev BjornGameDev added the bug-pending-triage Reported bug, pending triage to confirm. label Nov 1, 2022
@BjornGameDev
Copy link
Author

If nativescript uses the iTMSTransporter in future then the Transporter app needs to be installed separately and ns doctor needs to check it is installed. Another option I've heard is to do it through altool?

@copperford
Copy link

Having the same issue. Similar workaround after looking at the itmtransporter-service.js. file was to copy the ITMSTransporter binary into the expected location under /Applications/XCode/Contents/SharedFrameworks/ContentDeliveryService.frameworks/Versions/A/itms/bin directory. Ugly, but got me past this step.

@BjornGameDev
Copy link
Author

BjornGameDev commented Nov 3, 2022

Yep, both solutions make it work. There might be a risk that when there is a update of Xcode, the binary gets removed again, also you won't get any updates to the Transporter. Of course my temporary solution also gets removed if I update nativescript.

Pick your poison until official patch is here.

@rigor789
Copy link
Member

I'm curious to learn how you usually publish new versions. I've been mostly doing it through XCode directly (ns prepare --release... then open in XCode -> Archive -> Upload) or in many cases through CI and fastlane, so have not really relied on the NativeScript CLI's publish commands. Given apple changes things with their API and tooling every so often, it's a bit of a maintenance overhead for the cli to keep up, and I'd consider dropping those commands in the future in favor of direct XCode, fastlane or direct Transporter uploads separate from the {N} cli, but of course need to gather more information about the current use cases before making any decisions...

@BjornGameDev
Copy link
Author

I use the ns publish ios. It is handy as no extra steps are required to upload. Having to use Transporter manually or xcode wouldn't be a big issue. Yet as this is a option currently in the framework it would be cool if it worked. Also would be good to give people time to move over if it was deprecated (don't be Apple). Only benefit could be if someone had some kind of build automation in use.

The current nativescript cli is just using Transporter, it think? It just isn't bundled with xcode anymore. It used to be in the '/Applications/XCode/Contents/SharedFrameworks/ContentDeliveryService.frameworks/Versions/A/itms/bin' folder.

Maybe a good way would be to add a place to save the Transporter location and make it a optional param. That way you can still use it, and less hassle for the cli to check if it is installed and where.

Fastlane has the same bug as nativescript cli, currently. Don't know if they fixed it yet.

@rigor789 rigor789 transferred this issue from NativeScript/NativeScript Nov 28, 2022
@rigor789 rigor789 added bug breaking-change and removed bug-pending-triage Reported bug, pending triage to confirm. labels Nov 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants