I need to run “tuist install” on one machine (due to certain dependencies that are not available elsewhere) and then zip everything and perform the build on a second machine where I run “tuist generate” and the rest of the build, but all that is done in a different folder (path) that changes every time.
I get “There is no XCFramework found at …” error during xcodebuild. It is looking for the framework in the path/location it was on the “tuist install” machine.
It works if I match the folder structure on the second machine to match the path of the “tuist install.”
Does Tuist support such portability? Is there a way to clean/update that path?
Thanks!
Hey @realnanga
tuist install
is mostly executing swift package resolve
in the directory where your Package.swift
is located (either the root or in the Tuist
directory). The absolute paths that you’re seeing are coming from SwiftPM – they are encoded in the .build/workspace-state.json
file, which is the file that we use to convert the SwiftPM graph into Xcode projects.
Unfortunately, there’s no option for SwiftPM to product relative paths in that file. What I’d recommend is running tuist install
before triggering xcodebuild
on the other machine.
1 Like
Hello Maret,
Thanks for your reply. Would it be reasonable to update the absolute path in workspace-state.json file before “tuist generate” and Xcode build commands? Or, am I running some risk with that approach? I can’t do “tuist install” on the second machine since certain dependencies’ URLs are not reachable there.
Yes, I believe you can try that and it should work. If you do end up trying that, can you report back here with your findings for future reference?
1 Like
Great. I confirm that after manually changing the path in workspace-state.json, I can build the workspace fully on the second machine and export the archive as IPA.
2 Likes