expo / turtle

Standalone app builder service
MIT License
385 stars 29 forks source link

Error using manifest file that was obtained with `expo export --merge-src-dir` #280

Open ak-paca opened 3 years ago

ak-paca commented 3 years ago

Turtle-cli is failing on a "reading manifest" phase with an "manifest must be an object" error. Manifest was created by merging several SDK versions using expo export --merge-src-dir sdk38 ...

mwiedemeyer commented 3 years ago

Any news here? How is it supposed to work? The docs says that I can merge multiple manifest SDKs in one during expo export, but I cannot use it during build from public url?

The command: turtle build:android --public-url https://myappstoragedomain***.com/android-index.json (...more args)

The manifest returns as an array instead of an object. Here is the exception:

turtle[2373] ERROR: Failed to build standalone app err: ValidationError: child "manifest" fails because ["manifest" must be an object] at Object.exports.process (/opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/node_modules/joi/lib/errors.js:196:19) at internals.Object._validateWithOptions (/opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/node_modules/joi/lib/types/any/index.js:675:31) at internals.Object.validate (/opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/node_modules/joi/lib/types/any/index.js:709:21) at Object.sanitizeJob (/opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/src/validator.ts:8:35) at /opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/src/bin/utils/builder.ts:86:25 at processTicksAndRejections (internal/process/task_queues.js:97:5) at Command. (/opt/hostedtoolcache/node/12.22.1/x64/lib/node_modules/turtle-cli/src/bin/index.ts:23:12) platform: "android"

Any idea how to solve this without using different storage locations for different SDKs? Thanks a lot!

ak-paca commented 3 years ago

@mwiedemeyer , as I remember, I simply refused to use --merge-src-dir. If is ok for you, just create separate directories for each of the sdk version. It turns out for me to be even a better solution (in terms of management simplicity later on)

mwiedemeyer commented 3 years ago

Yes, we now use a dedicated folder by sdk. It is a better solution to use in Azure Pipelines because I don't need to update the pipeline itself but now using variables to define the sdk folder.