nowsecure / node-applesign

NodeJS module and commandline utility for re-signing iOS applications (IPA files).
https://www.nowsecure.com
MIT License
420 stars 77 forks source link

TypeError: rimraf is not a function #149

Closed RQQDawg closed 1 year ago

RQQDawg commented 1 year ago

Hello,

I moved from using version 3.9 of applesign to version 4.1.3, and I'm experiencing a type error r when I attempt to resign IPAs. There seems to be an issue with the rimraf function in the tools.js file.

I have also installed the required modules.

File: /Dir/Name/name.ipa Outdir: /Dir/Name/name.ipa.d5bce0c8-cdec-4de7-9de9-03033ff1d1ef Cleaning up /Dir/Name/name.ipa.d5bce0c8-cdec-4de7-9de9-03033ff1d1ef Cleaning up /Dir/Name/name.ipa.d5bce0c8-cdec-4de7-9de9-03033ff1d1ef TypeError: rimraf is not a function at /Dir/Name/node-applesign/lib/tools.js:308:5 at new Promise () at Object.asyncRimraf (/Dir/Name/node-applesign/lib/tools.js:304:10) at Applesign.cleanup (/Dir/Name/node-applesign/index.js:745:18) at Applesign.signIPA (/Dir/Name/node-applesign/index.js:117:18) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async main (/Dir/Name/node-applesign/bin/applesign.js:49:7) Cleaning up temp dir /var/folders/yf/ybfjs9_n75g2lh6clhrqdblw0000gp/T/applesign/ffd56f70-ee95-40ec-91f6-5a17f29108ca TypeError: rimraf is not a function at /Dir/Name/node-applesign/lib/tools.js:308:5 at new Promise () at Object.asyncRimraf (/Dir/Name/node-applesign/lib/tools.js:304:10) at Applesign.cleanupTmp (/Dir/Name/node-applesign/index.js:750:17) at main (/Dir/Name/node-applesign/bin/applesign.js:58:18) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

radare commented 1 year ago

uhm applesign is using rimraf 3.0.2. its pinned in the package.json. and this method exists for me :? can you try doing a clean npm i like this:

git clean -xdf
git checkout master
rm -rf node_modules
mkdir node_modules
npm i

you can also try with:

$ node
Welcome to Node.js v16.20.0.
Type ".help" for more information.
> const rimraf = require('rimraf');
undefined
> rimraf
[Function: rimraf] { sync: [Function: rimrafSync] }

also, which version of node are you using?

RQQDawg commented 1 year ago

I'm using v18.0 of node

trufae commented 1 year ago

Can you paste the output of npm ls?

$ npm ls
applesign@4.1.3 /Users/pancake/ns/node-applesign
├── colors@1.4.0
├── fatmacho@0.1.2
├── fs-extra@10.1.0
├── fs-walk@0.0.2 (git+ssh://git@github.com/trufae/fs-walk.git#e8309d406e6c48a37e96b7cc2218381a1ff279c0)
├── macho-entitlements@0.2.3
├── macho-is-encrypted@0.1.2
├── macho@1.4.0
├── minimist@1.2.6
├── mocha@9.2.2
├── npm@8.16.0
├── pkg@5.6.0
├── plist@3.0.5 overridden (git+ssh://git@github.com/TooTallNate/plist.js.git#e17373ef96510a606b62553bd28845842133ba12)
├── rimraf@3.0.2
├── semistandard@16.0.1
├── simple-plist@1.3.1
├── uniq@1.0.1
├── uuid@8.2.0
└── which@2.0.2
RQQDawg commented 1 year ago

After installing the proper version of rimraf I was able to get it to work.

If anyone else runs into this issue, use npm i rimraf@3.0.2 to install the specific version needed. Thanks everyone for commenting.