sensepost / objection

📱 objection - runtime mobile exploration
GNU General Public License v3.0
7.46k stars 854 forks source link

Is it true that creating IPA files requires a paid developer account? #417

Closed elbowdonkey closed 4 years ago

elbowdonkey commented 4 years ago

I've been hitting a roadblock when trying to run the patching step found in the Patching iOS Applications wiki page:

objection patchipa --source my-app.ipa --codesign-signature 0C2E8200Dxxxx

Namely, I need an ipa file first.

It seems that you used to be able to export an ipa file in Xcode by archiving a product, then exporting it as anything except for "App Store Connect".

However, in Xcode 12.0.1, it seems now you're only able to "Distrubute App", and when you pick any of the distribution options, Xcode will prevent an ipa from being built for any of the options, citing:

Distribution requires enrollment in the Apple Developer Program.

Am I just missing some silly Xcode UI thing, or did Apple make it impossible to make iOS apps without enrolling?

For what it's worth, I've just started exploring how to create an ipa file using CLI build tools. I suspect I'll hit a similar roadblock, but will update here if I find otherwise.

EDIT:

Nope - can't use xcodebuild to export an IPA either. All methods require a current paid developer account.

Which reminds me that I forgot to actually ask the one thing I created this issue for: is it possible to patch a built app? Because that works fine - I can build and deploy the app to a real device without issue.

leonjza commented 4 years ago

Had a quick look at this and it seems like Apple has made some changes that mean both the ad-hoc patching we do with objection and the way XCode lets you distribute ad-hoc IPA's requires a paid developer account now. :/

As far as adding the gadget to a project you have the source for goes, this wiki article should help: https://github.com/sensepost/objection/wiki/Patching-iOS-Application-Sources. I just tested the app I use this way and it still works.