12

After looking around, I think what I really want to do is generate an unsigned IPA file. I want a setup like pwn20wndstuff/Undecimus, where you can just download the IPA file and install it using Cydia Impactor. I read that with Ad Hoc distribution, you need to add user's UDIDs, which I don't want to do. Generating unsigned IPAs seems to be possible with each version of Xcode in different ways. But I could not find an answer for Xcode 12. Or a standard established guide/script that will work across all versions of Xcode.

An ideal answer would be a single command that I can run which will build my project and export an unsigned IPA to a specified directory that can be installed on any iPhone on all supported iOS versions. Maybe my sources below already have all the pieces needed to put this together. But I am not that good with xcodebuild so I will need help from someone here to put them together.

Things that I have seen in other answers:

1. Removing signature from Archive:

  1. Source: How can I export an unsigned ipa

Can create an unsigned .xcarchive easily enough with the following command:

xcodebuild archive -project myproj.xcodeproj -scheme 'the scheme' -archivePath unsigned.xcarchive -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

However, the exportOptionsPlist requires a 'method' and each method it accepts appears to sign the actual IPA.

I can manually remove the signature from the IPA after it is exported, but I was hoping there was a feature in xcodebuild that would allow me to do this out-of-the-box.

Is this possible? If so, how?

  1. Source: How to build an unsigned iOS app (ipa file) for JasperMobile

This seems to be a bit more methodical than the previous version. But has been tested on an older version of macOS.

$ sed -i -e 's/installer_representation.project./installer_representation.pods_project./' Podfile
$ pod install
$ export projectname="TIBCO JasperMobile" ; export schemename=$projectname
$ xcodebuild archive -workspace "$projectname".xcworkspace -scheme "$schemename" -archivePath "$projectname".xcarchive
CODE_SIGN_IDENTITY=""
CODE_SIGNING_REQUIRED=NO[...]
 
** ARCHIVE SUCCEEDED **
 
$ xcodebuild -exportArchive -exportFormat ipa -archivePath "$projectname".xcarchive -exportPath "$projectname".ipa[...]
Moving exported product to '/Users/user/Documents/Source/js-ios-app/TIBCO JasperMobile.ipa'
 
** EXPORT SUCCEEDED **

2. Resigning an IPA:

  1. Source: How to re-sign the ipa file?

This might be kind of want I want the final outcome to be like. This will still leave my developer account signature in the IPA which I don't like. But the answer to this question does not make it look easy. Can an application like Cydia Impactor be used to do the resigning?

3. Editing an Xcode info.plist file to disable code sign

  1. Source: How can I skip code signing for development builds in Xcode?

Again this is not ideal as I have to keep disabling and enabling code signing based on requirements. And the steps to do that are kind of lengthy.

  1. Source: How can I export an unsigned ipa

This method is outright destructive and not at all ideal! :/

I have created youtube video which is about creating an UnSigned .ipa file using Xcode 11.x.x version without Developer account.

Title of the video : How to make an unsigned IPA without iOS Developer Account/Certificate on Xcode 11

To Disable Code Signing: • GoTo /Applications then right click Xcode.app and click "Show Package Contents" • SDKSettings.plist is located at >/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.x.sdk

After modifying SDKSettings.plist file, restart your Xcode.

Note: Keep the backup of “SDKSettings.plist” in a different directory.

After generating unsigned .ipa file, replace SDKSettings.plist file with original SDKSettings.plist file and delete “CODESIGNINGALLOWED” key pair value under User-Defined settings.


Old question: How to safely distribute an iOS app's archive under Github releases so anyone can quickly ad-hoc install my iOS app

Like the title states, I was wondering if it was safe to zip and upload my app's archive folder to GitHub under a new release. I want to upload the archive as it can be used to generate an IPA file. This could be installed later on, especially for older app versions unavailable for install from the App Store.

Will this potentially expose some critical private app information? My app is firebase based and I have added GoogleService-Info.plist to gitignore. But I am not sure if the archive folder contains this file. Or any other super-private files for that matter.

If I shouldn't upload the entire archive, then how should I generate a generic IPA file that can be downloaded and installed by anyone using a sideloading software like Cydia Impactor for example. Can I just upload the .app file located at Archive > Products > Applications? I had read somewhere that the .app file could be copied to a Payload folder. Then zipping that folder and renaming it to *.ipa would give me .ipa from a .app file. Can this be sideloaded by anyone?

Or is How to create .ipa file using Xcode? my only option? Seems kind of inconvinent.

Parth
  • 2,682
  • 1
  • 20
  • 39

0 Answers0