简体   繁体   中英

How to build an IPA without signing in Xcode 8

I have searched around SO and other places. I have only found older versions of this answer that don't seem to work any more, and tons of other stuff that isn't even relevant in the latest version.

Long story short, we have a developer providing an IPA to us, who doesn't want to join our developer group. I told him to send us an unsigned IPA, but we couldn't get it figured out based on our old process.

Has anyone done this yet, and would you mind sharing your method with the world?

Thanks!

I ended up finding a working solution for xcode 8. Here is the step by step

  1. (Optional) Change build location

Xcode>preferences>locations>derived data>custom>your desktop

  1. Open Terminal and navigate to the project's folder
  2. Run manual build: xcodebuild -workspace (or -project) [workspacename.xcworkspace] -scheme [Schemename] -sdk iphoneos -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
  3. Open the location from Step 1 (derived data) and navigate to >your app>build>products>Release-iphoneOS
  4. Copy the .app file into a new subfolder named Payload (this folder name is case sensitive and much match verbatim)
  5. Compress Payload folder and rename it to app_name-version_number.ipa

Boom. Done.

Create Xarchieve file by using Xcode, click product->archive

first right click on xarchieve file-> show in finder

again right click on xarchieve file-> show package contents

Then open folder products->applications, here you get the your application file

Now, Drag and drop this one to itunes store's app directory(find apps drop down

menu at right top corner of itunes store). This will automatically converts

archieve file to ipa file. (Here, you can also do this -> drag and drop .app

file anywhere in itunestore, once it get processed, search it back from search box).

then again right click on it and ->show in finder, this will show your ipa file.

Now you can give this one to any user how ever it won't work now at 2021

To run the unsigned build (IPA) on the device: (In case if you don't have apple dev subscription)

1) you need unsigned IPA You can use these steps described above (xcodebuild...) OR you could use "Archive" option and then navigate to Organizer and right-click "Show in Finder" then open Terimnal and invoke:

xcodebuild -exportArchive -exportFormat ipa -archivePath <FILE_NAME>.xcarchive -exportPath ~/Desktop/<FILE_NAME>.ipa

2) you use open source tool iOS APP SIGNER (beware this is opensource but I would recommend to strip off the NimbusKit as it looks very suspicious and its not required to produce a signed IPA just remove the #import and one function call - fix all build errors and you'll get the clean tool)

http://dantheman827.github.io/ios-app-signer/

The idea is that XCode allows users to RUN their own apps on their own devices now without subscription (only with valid apple id) So its somehow fetches the profile based on app bundle ID that's how you can send your IPA to another user and he could re-sign it using some trickery to force XCode to fetch the provisioning profile from the Apple. Check the URL to full instructions how to setup DUMMY project with matching BUNDLE ID to do it

Without any provisioning profile ie signing you won't be able to run on the device. You can create IPA using payload method just build the project and go project navigator and search for the file project_name.app and select show in finder by right clicking. Then create a folder named PayLoad and then put that app file in it and create zip of that Payload folder and once zip is created rename that zip to your project_name.ipa

Steps to create unsigned IPA (Tested on Xcode 9.4.1)

Step 1: Open finder > Go to Folder.. as below screen

在此处输入图片说明

and then copy and past the below line:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS*.*.sdk/SDKSettings.plist

Open iPhoneOS.sdk as showing in below image: 在此处输入图片说明

Step 2: Copy the SDKSettings plist in another folder because you can't make changes here:

Step 3: Make change in duplicate

set CODE_SIGNING_REQUIRED to NO 在此处输入图片说明

Step 4: Now replace duplicate Plist with original one (Both name must be same). This will also ask admin permission to change.

Warning: Please make sure you have copied the original plist and save somewhere for future reference.

Step 5: Now set code signing identity to as below image: 在此处输入图片说明

and now you can create the Archive file在此处输入图片说明

**Step 6:**Right click on this test Archive file and show in finder:

Again right click and click on show package contents

then Products>Applications>and copy the .App file

Step 7:

  • Copy the .app file into a new subfolder named Payload (this folder name is case sensitive)
  • press Payload folder and rename it to app_name-version_number.ipa
  • Example- Test-version_1.1.ipa

And finally you have unsigned IPA file :)

Note: After done with your app changes replace the original plist again or set set CODE_SIGNING_REQUIRED to YES

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM