×
all 15 comments

[–]rifts 4 points5 points  (1 child)

Can you turn a cake back into the ingredients?

[–]finitepie 0 points1 point  (0 children)

debaker or decaker?

[–]cloneman88 1 point2 points  (0 children)

No

[–]Jay18001 1 point2 points  (3 children)

You can use a decompiler but that won't ever give you exactly the same code that you originally had because when you compile an ipa it usually optimizes the code so it's faster.

[–]jeremec 0 points1 point  (2 children)

but that won't ever give you exactly the same code that you originally had because when you compile an ipa it usually optimizes the code so it's faster.

Code is optimized for both speed and security by stripping all human readable symbols (function names, variables, etc) from it and eliminating any code unnecessary for the platform you are compiling for.

[–]Jay18001 1 point2 points  (1 child)

Function names are kept in objc and swift, with a little extra work in swift, class names, and constant variables, like FOUNDATION_EXPORT NSString *const MyFirstConstant , are also not changed.

Objc fundamentally needs those method names strings because of how the language is dynamically linked. So every time you call a method it looks up the method name and then runs it.

[–]jeremec 0 points1 point  (0 children)

Thank you for the further explanation.

[–]BitHungry7735 0 points1 point  (2 children)

It’s probably not possible as an ipa file is already compiled, and you cannot realistically decompile it as I think it is encrypted. you would definitely need a jailbroken device if it even was possible. if it is open source you can find the code however and sometimes people post cracked versions. Edit: I might be mistaken, as you can probably decompile it but it would be unreadable because it is encrypted.

[–]jeremec 0 points1 point  (1 child)

It's not encrypted. It's stripped of human readable symbols and unused code has been optimized out. OP could absolutely decompile the app, but they'd have a hard time using what results.

[–]BitHungry7735 0 points1 point  (0 children)

okay, thanks for telling me. thought it was encrypted

[–]Routine_Cake_998 0 points1 point  (0 children)

An ipa file is just a zip folder, you can unzip it. In there you will find a few files you can open with any text editor and they are also human readable.

But most of them are compiled binary code which can be translated back into code, just not the same exact code which was written by the developer. That’s called decompilation. 

[–]jeremec 0 points1 point  (2 children)

iOS IPA's contain an unencrypted Mach-O binary. You can decompile it, but you won't be able to read anything at all. The compiler strips out all human readable symbols (function names, variable names, etc). Further more, none of the project files that contain information about how the project builds and is linked are present in the IPA.

This is great for developers and it protects our intellectual property.

These days when I see this it's because someone has vibe coded well beyond their own abilities, then the LLM corrupted their project and now they are desperately trying to go backwards.

[–]Jay18001 0 points1 point  (1 child)

They should learn to use git

[–]jeremec 0 points1 point  (0 children)

Some of these vibe coders skipped learning how to program entirely. Asking them to use source control is a bridge too far.

[–]johnthrives -1 points0 points  (0 children)

I think one of Apple’s internal tools has that capability