13

I'm trying to develop iphone apps on my jailbroken iphone, and I can't seem to get the process down, for whenever I deploy my app, set all file permissions to 777, and respring, the application closes immediately when I try to launch it. Furthermore, it does not have the auto-gloss xcode shows in the iphone simulator, so what gives?

I've generated the cert via keychain access and added the two keys for REQUIREPROVISIONING and ALLOWPROVISIONING (both values no), and then set the appropriate cert in xcode, but the application still closes immediately when I attempt to run it on my phone.

What gives?

Stefan Kendall
  • 66,414
  • 68
  • 253
  • 406
  • If your interested in this question why not support the Area 51 proposal for a [jail-breaking Stack Exchange site](http://area51.stackexchange.com/proposals/18154/ios-jailbreaking-development?referrer=EuWVi6IpN0_KzzEhC7I-Qw2) – Richard Stelling Jan 02 '12 at 14:23
  • jailbreak apps don't get the automatic gloss effect, or rounded corners. you'd need to add it yourself to the actual PNG (photoshop, or whatever). on the plus side, you can have transparent backgrounds on jailbreak app icons. – Nate May 17 '12 at 22:45

2 Answers2

14

I had the same issue, ldid did not work for me at all. Here's my solution:

  1. Open Keychain Access on the Mac
  2. In the menu, go to "Keychain Access -> Certificate Assistant -> Create a Certification"
  3. Name it "Cydia Developer" or whatever, type is "self-signed root" and check "let me override defaults".
  4. The only option you need to set in the wizard is to change Certificate Type to "Code Signing". Click continue or enter your desired info for the rest.
  5. Once it's created, find it in Keychain Access's Certificates list and right click -> Get Info, under Trust change "When Using This Cert" to "Always Trust".
  6. Write an iPhone app in XCode. Change "Project->Project Settings->Build->Code Signing Ident->Any iPhone Device" to "Don't Code Sign".
  7. Compile the program with the Active SDK set for "iPhone Device" instead of "Simulator". Ignore the errors about provisioning or signing.
  8. Under "Executables", drag the newly compiled app to somewhere that is easy to get to from the terminal.
  9. In a terminal, run 'codesign -fs "Cydia Developer" /path/appname.app/appname'
  10. Somehow get your app to the phone (ssh, cydia, teleportation, whatever) and viola! Working app.

To deploy with an Apple devel key, just set your project build code sign identity to the name of the Apple dev key name instead of "Don't code sign".

GregH
  • 792
  • 5
  • 4
  • 1
    How do I ignore the errors about signing? Xcode claims that I MUST codesign for type "Application" in SDK 'Device-... Help? – Stefan Kendall Aug 18 '09 at 22:41
  • For me with XCode 3.1.3, when I build it, it builds and then displays the errors. I'll check to see if it was something else I did. – GregH Aug 20 '09 at 03:27
  • One of the other things I did beforehand was to apply this patch to XCode to try to get it to deploy to the device directly from XCode, but I'm not sure if it's related. I've tried reverting all other changes I made and I'm still able to build. http://www.iphonedevsdk.com/forum/iphone-sdk-tools-utilities/20983-sdk-3-0-xcode-3-1-3-build-go-jailbroken-device-2.html – GregH Aug 20 '09 at 03:43
  • 1
    Here's how to silence "must codesign" error in latest XCode: http://thebigboss.org/hosting-repository/submit-your-app/compile-for-cydia-submission – DenNukem Oct 22 '10 at 01:54
  • 1
    This answer worked for me on XCode 3.2.3 and iOS 3.1.2. I had to use the bigboss link above to remove the signing requirement from XCode. Kudos to fonik. – DenNukem Oct 22 '10 at 05:20
  • This answer worked for me as well: iOS SDK 4.2, Xcode 3.2.5 and iOS 3.1.2. I used the bigboss link for removing the signing requirement from Xcode. In this answer http://stackoverflow.com/questions/37464/iphone-app-minus-app-store/37522#37522 you can find instructions for copying the app to the device using scp. – Florin Jan 25 '11 at 07:20
3

Did you sign your app? I'm not sure if this is needed for Xcode apps, but to run Jailbreak-toolchain compiled apps you have to run ldid -S (as root) on the app executable (ex. MyApp.app/MyApp). This Thread may help: Thread

kersny
  • 2,759
  • 23
  • 15