Bypass Code Signature & Published Your Application on Cydia

First of all, I am not working on tool chain or jail-break applications. But I do respect for them!

[update 15 May 2009: I have written a video tutorial to explain all the steps in this tutorial. Video Tutorial: Bypassing Code Signature in Xcode & Installing jail-break application to iPhone]

I am iPhone SDK developer but I got a tricky task to published one application on Cydia as Apple will not accept Video Sharing application on App Store. It was really tricky stuff for me as I was submitting application on apple store once a week and its less then an hour work. But to submit your application on Cydia took 3 days of continuous efforts and at last I was jumping when I submit the application on Cydia. I got lot of help from different websites but none of them are used as complete reference. So I thought, I should write a complete article for this. So let just start.

There are two things you should follow to submit your application on Cydia:

1. You should build your application such a way that it can run on any iPhone. For that, you have to bypass the “Code Signatures”.

2. You have to follow a lengthy process to make your application package, So that it can easily be submitted to Cydia.

So Lets start from 1st point and then moves to 2nd one.

Build Your Application for Jail Break:

As I said earlier, you just need to bypass the Code Signatures in Xcode. You can easily achieve this by following 5 steps:

  1. You will need a certificate on your mac machine (Keychain Access), so that when Xcode build an application it wont give you any error. So to make a certificate on your mac machine, you follow the steps mentions on apple website. Obtaining a Signing Identity(http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-SW1). Once you created the Certificate it will appear on your KeyChain access tool.
  2. Make a backup of the file /Developer/Platforms/iPhoneOS.platform/Info.plist then edit it to include the bit in red:
    <key>PLIST_FILE_OUTPUT_FORMAT</key>
    <string>binary</string>
    <key>PROVISIONING_PROFILE_ALLOWED</key>
    <string>NO</string>
    <key>PROVISIONING_PROFILE_REQUIRED</key>
    <string>NO</string>
    <key>SDKROOT</key>
    <string>iphoneos2.2</string>
  3. in Xcode – > project – > edit project setting -> Add User – Defined Setting
    PROVISIONING_PROFILE_ALLOWED : NO
    PROVISIONING_PROFILE_REQUIRED : NO
  4. Open your project and go to (menu) Project > Edit Project Settings. In the list of properties, find “Code Signing Identity” > “Any iPhone OS Device” and click in the empty box. Assuming there are no entries in the menu, click “Other” and type in the same name you used to generate the certificate (code signing certificate) above in step (1). Hit OK and close that settings window.
  5. Add the following to the Info.plist for your project:
    <key>SignerIdentity</key>
    <string>Apple iPhone OS Application Signing</string>

Set up your Xcode like this in upper left corner : “Device | Release”. Build your project in Xcode like normal (Not ‘Build and Go’, just ‘Build’). After build is successful, go to your ‘Products” folder on left side of Xcode screen. highlight the ‘.app’ product (‘YourAppName.app’). Control-click and select ‘Reveal in Finder’.
Take that resulting directory in Finder (should be in YourProjectDirectory -> build -> Device-iphoneos folder) and ssh that into /Applications folder on iPhone.

Now go into Cydia and install the ‘Link Identity Editor’ (if you type ‘ldid’ into search field, it’s the only package that pops up).
After that’s installed and your app is ssh’d into ur phone, open up Terminal on ur mac. Run these:

$ ssh root@ip address
(ip address is address of ur iphone. Password is alpine).
$ ldid -S /Applications/YourApp.app/YourApp
$ killall SpringBoard

Your app should run on your jail-break iPhone. If it runs successfully then it will run on all other iPhone as well.

Make Package for jail break application (Cydia repository):

This is a lengthy process and I think I don’t need to write all the way down when someone already put lot of efforts on this.

Simply go to http://www.hackthatphone.com/20/creating_a_cydia_repository.html and follow the steps icon smile Bypass Code Signature & Published Your Application on Cydia

The purpose of this tutorial was to make everything available under one post! So that no one waste his/her 3 days in searching for a simple thing.

If you have any question regarding this, please feel free to post in comments.

Thanks to HackThatPhone.com, iphone.cazisoft.com, arrix.blogspot.com & ipodtouchfans.com which helps me to publish application on Cydia.

Popularity: 21% [?]

My name is Adeem M Basraa. I am a software engineer from Lahore, PK. I’ve been involved in software development for nearly 4 years, with the last 1 year focused on application development for mobile devices (iPhone & Android).

50 Comments on "Bypass Code Signature & Published Your Application on Cydia"

  1. Oliver says:

    thanks for the good tutorial. It was working for be till the step
    $ ldid -S /Applications/YourApp.app/YourApp
    $ killall SpringBoard

    ldid shows no output. So this seems to be successful. The SpringBoard restarted, but afterwards I cannot see the icon of my application. What can be the reason? Maybe that I’m using a iPhone with 2.2.1 ?

  2. Oliver says:

    ok I think I found the trick by my self.
    I just installed an application from App Store and afterward on Cydia. Suddenly my app icon appeared. That’s a good feeling :-)

  3. admin says:

    @Oliver
    thanks for the trick ;)

  4. Shoko says:

    Thanks Oliver.

    Had the same problem, and it was resolved in the same manner.
    although i dont think you need to install from the app store, but only from the cydia.

  5. th3_v0ice says:

    Hi , nice tutorial, was very clear ! But i have a problem, when i try to build i got error : unrecognized option –entitlements. How can i correct this ? Thanks in advance

  6. admin says:

    @th3_voice,
    Can you please give me little more details about your issue?

  7. th3_v0ice says:

    I made some application few buttons nothing more. When i try to debug it on simulator works like a charm, but when i try to debug it or release it for device i got error : unrecognized option –entitlements. I read somewhere that i should add entitlements.plist in my project but it didnt helped. Here is the link to the picture to show my problem http://www.mediafire.com/?0dnmvklx43t .Thanks for reply

  8. admin says:

    btw you have to un-check that combo box. If you create entitlements.plist then you should uncheck the combo box in value column( Looked at your picture and see that combo box.)

  9. th3_v0ice says:

    Yes i tried that too, unchecked, and still making problems… Any other solution ? Can u add me on msn, so we can talk, mine is the_voice_of_a_drake@live.co.uk . Thanks again

  10. admin says:

    I added you on my msn, I will chat you at night.

  11. th3_v0ice says:

    Ok, but i didn’t get a confirmation request ?

    the_voice_of_a_drake@live.co.uk

    or give me yours via email…. Great thanks for your effort !

  12. th3_v0ice says:

    Afther folowing admins video, problems still exists, i dont know what is causing it. If anyone found a solution please contact me. I will post a solution if i found it on http://www.the-voice.eu.tc

  13. mperovic says:

    I’m following your instructions, but when I’m trying do build my app XCode gives me next error:
    “Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourcompany.myApp’ could not be found”

  14. Adeem Basraa says:

    I think you are not creating the valid signature!
    can you please follow this video tutorial and see what going wrong:
    http://adeem.me/blog/2009/05/15/video-tutorial-bypassing-code-signature-in-xcode-installing-jail-break-application-to-iphone/

  15. mperovic says:

    I think I’m created the valid signature, but maybe it’s problem in XCode. I’m using version 3.1.3 (prerelease) – iPhone OS 3.0 beta 3.

  16. th3_v0ice says:

    hey mperovic where are you coming from ?

  17. mperovic says:

    XCode for iPhone OS 3.0 beta 3 was a problem. I’m instaled again XCode for OS 2.2 and everythin is perfect :)

    th3_voice: I’m from Belgrade, Serbia

  18. Adeem Basraa says:

    @mperovic
    I also try doing that on iphone sdk 3 and it was not working for me. I guess something change in iphone sdk 3.0.

  19. th3_v0ice says:

    mperovic : contact me on msn, i am from montenegro :D . My msn is the_voice_of_a_drake@live.co.uk

  20. writeit_dev says:

    This all worked for me.My app now appears on spring board.But when i tapped it, the Default.png (Splashscreen) appears and then the app crashes.My app worked fine on the simulator, no problems, I checked if I ticked “Release” and iPhone OS 2.2.1, which I did. Tried again, same crash.

    Can anyone please tell me how to resolve this issue?

  21. Adeem Basraa says:

    I got the same error, Its code sign issues with the build. Can you check this for make sure your steps are right!
    http://adeem.me/blog/2009/05/15/video-tutorial-bypassing-code-signature-in-xcode-installing-jail-break-application-to-iphone/

  22. writeit_dev says:

    Tried it again, crashed again…

  23. mo says:

    Thank you very much for the efford, the instructions worked after I installed an app with cydia (as Oliver suggested). The videos are a little fast paced, but they helped too.

    Thanks!

  24. eakgun says:

    Thank you very much :) It worked very well.

  25. scott says:

    I follow the steps. My app can show on the SpringBoard. But when I try to run it. It show a msg can’t open the application ‘myappname’. Anybody can give some suggestion how to solve this problem.

    My develop environment is SDK 3.1.2, iphone os is 2.2.1.

  26. Adeem Basraa says:

    can you change your environment to sdk 2.2 or less?
    bcoz i try that on 3 and it didnt work out for me as well. I didnt search on this yet!

  27. iPhoneyGuy says:

    Hi All,

    I did exactly what’s mentioned in this link http://www.hackthatphone.com/2x/crea…epository.html

    but my package does not show up in cydia, why ? Please advise where am I going wrong !

    1. which .app file should I use for packaging ? I used device 2.0 release, 2.2 and 2.2.1 also, none worked. [I built using the procedure outlined here http://adeem.me/blog/2009/03/29/bypa…ion-on-cydia/. I was able to load it into my device, but it does not show up when I make the package.

    2. There are 3 places we create text file. In first occurence, it is specified that we should have a must blank line at the end. Does that apply to other text files also ? other 2 cases it is not written but I gave blank lines as in the first step.

    3. should I put my files in cydiarepo in my website like ….

    assume my website’s root is root.
    i will create a folder debs in it and put .debfile in it. i will upload the .gz, Packages and release files in the root folder . is it how i should do it ?
    http://jagatnibas.byethost13.com/cydia/

    4. I did all these processes in a leopard system. Should I have done it from a linux system ?

    5. Does cydia takes time in approving my app and thats why it is not displaying currently ? I did it yesterday.

    Please help me in publishing my app in cydia

    thanks and regards
    Jagat

  28. raziiq says:

    I have done as u told but my app is crashing in iPhone. It works fine in simulator but crashes in real iPhone. I m using SDK 3.0 and my iPhone OS is 3.0

    Please help !!!

  29. andy says:

    hey :)
    cool tutorial!
    does this still work for os 3.0? i’ve made your steps, but i’ve still the error in xcode with the certifcate.
    any idea?

    greets

  30. Jonathan says:

    Come on man… I can’t switch back to 2.2 because my app requires 3.0 features… There has to be a way around this because other developers have 3.0 apps on Cydia.

  31. Adeem Basraa says:

    Hi Jonathan,
    I didnt try this bcoz i didnt have found much time to update my blog, Btw meanwhile you can check this link. this might be helpful for you
    http://iphonesdkdev.blogspot.com/2009/06/use-xcode-312-to-build-sdk-30-app-to-30.html

  32. AN says:

    Hey,

    I am stuck at the last two steps. I am trying to establish connection with my iPhone using “CyberDuck” but i always get the “Connection timed out” error. I have tried increasing the time for time out but it doesn’t helps even though I do have openSSH installed on my iPhone. What could be the possible reason? As an alternative I used iPhoneTunnel to establish connection with my iPhone and it did that using the ip address and port as “127.0.0.1:22″ but then again on the last step my terminal fails to establish connection with my iPhone. How should i go about it?

  33. Bk says:

    the application “YOUR APPLICATION” can not be opened???
    WHAT SHALL I DO???

  34. Bk says:

    ON ldid i get util/ldid.cpp(418): _assert(0:arch != NULL) thing then when i try to open z application from my phone it says
    the application “YOUR APPLICATION” can not be opened???
    WHAT SHALL I DO???

  35. Bk says:

    when ldid error util/ldid.cpp(418): _assert(0:arch != NULL) appears when u ldid more than once AND
    the application “YOUR APPLICATION” can not be opened??? appears when you changed your application name. now my application crash when i try to open it
    WHAT SHALL I DO???

  36. WiiKey says:

    Nice looking website, can I ask you what template you are running and how much it costs? I’ve been using free ones but can’t find one that I actually like.

  37. chat says:

    Hey, I found your blog via Bing while searching for something else but your post / blog looks very interesting for me.

  38. Mattlawer says:

    Hi everyone !
    Does it works with xcode 3.2.1 on snowleopard ?
    I’ve an error “a valid provisioning profile matching the application’s Identifier..”
    :(

  39. Abdul jaleel says:

    it is very useful article.

  40. genddy says:

    hello! i try all your steps and is just not working for me, i try it like 5 time already and nothing… i keep getting a message saying “Code sign error: a valid provisioning profile matching the application’s identifier ‘com.yourcompany.test’ could not be found.

    i really need this app for my school, can i send you the xcode project and you do it for me? i dont wan to do any more apps i just need this one for my school…my email is, genddymusic@gmail.com thanks.

  41. SomniusX says:

    Anything about the 3.1.2 SDK, cause i can’t build properly any more with it.. i’m getting

    Code Sign error: The identity ‘iPhone Developer’ doesn’t match any valid certificate/private key pair in the default keychain

    and i’ve got “iphoneCodeSign” as the guide and video, like old days when i was ok.. now with 3.1.2 device i needed the new xcode to send the app to it.. but now i’ve got a biiiig “0″..

    Help? plz :’(

  42. Bill says:

    This worked for me except I needed to also make the installed app executable. Did this with chmod and ssh.

    Also, I used netatalk (found on cydia) to simplify coping files to the phone.

    Very nice.

  43. Tanner says:

    when i ry to sing with ldid i get (unknown load command 4) util/ldid.cpp(582):

  44. Properly the situation was initially a superior run whilst it lasted but yet possibly not a jolt to discover Usa Soccer shed at this specific state. We could try out once additional in 4 years.

  45. text18 says:

    Amazing stuff.

  46. Mike says:

    Thanks For this. On Xcode 4 the signatures you have generated appear when you click the Up/Down Arrows next to the Code Signing Identity section of the Build Options.

    I ended up hosting my packages on myRepoSpace.com – i just had to convert them to .deb’s first. They make it too easy :P

    Thanks again.

Trackbacks for this post

  1. List/Guideline for submitting iPhone Application to Apple Store | iPhone Diary
  2. links for 2009-05-02 | 水蘸李子
  3. Video Tutorial: Bypassing Code Signature in Xcode & Installing jail-break application to iPhone | iPhone Diary
  4. Testing on the device without a Dev Certificate. (Requires Jailbreak) - Page 3 - iDevKit

Got something to say? Go for it!