Mac OS X - iOS App Signer - Install Kodi without Jailbreak (iOS and tvOS)

  Thread Rating:
  • 7 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
DanTheMan827 Offline
Moderator
Posts: 488
Joined: Jul 2012
Reputation: 24
Information  iOS App Signer - Install Kodi without Jailbreak (iOS and tvOS)
Post: #1
Starting with Xcode 7 it's now possible to install apps onto iOS devices without a paid developer account.

But until now, in order to install Kodi on your device you had to compile Kodi from scratch which was somewhat difficult and could take quite a bit of time depending on your computer.

Well, here's an app I made to simply re-sign and package the deb files that Cydia uses for jailbroken devices

A note about tvOS

This program is perfectly able to sign tvOS applications but you cannot use the same provisioning profile as an iOS device

However, if you follow the instructions... in step one you'll have to choose tvOS application rather than iOS, everything else is the same

Kodi Deb Files

Stable (iOS)
Nightlies (iOS)
tvOS Test Builds

Application

iOS App Signer (Source Code)

Feeling generous? Donations for this app gratefully accepted.
[Image: screenshot.png]

If you prefer to get your hands dirty with the Terminal and know what you're doing, there's also a shell script

Video

How to install Kodi on the Apple TV 4 with working top shelf

FAQ

Q: Can I do this with Windows?
A: Sort of...

Q: Is this permanent?
A: No, the code signing expires when either the provisioning file or signing certificate expires. For free accounts this is 7 days, paid accounts get 1 year.

Q: What happens after it expires?
A: Kodi will simply refuse to launch until you re-sign and re-install

Q: How do I update or resign?
A: Follow the guide starting from step 3.

Q: Will I lose my Kodi settings?
A: No, as long as you use the same identifier and don't remove the old app the settings will stay.

Q: Can I modify the userdata folder?
A: Yes, for iOS use iFunbox or another similar app. For Apple TV you can use iExplorer or use Xcode to backup the application container, modify, and then restore.

Q: I'm getting the error message "This App contains an app extension with an illegal bundle identifier"
A: Update iOS App Signer

Q: I'm getting a message saying that I don't have any signing certificates
A: This is caused by the system not trusting your developer certificate, make sure that you have this certificate installed. If that still doesnt work you can go into Keychain, login, certificates, and trust your developer certificate manually.

Prerequisites
Mac OS X (on a virtual or physical machine)
Xcode 7
Apple TV: USB-A to USB-C or USB-C to USB-C cable depending on your computer (newer MacBooks have USB-C connectors)
iPhone/iPad: a lightning or 30-pin cable (depending on your device)

Directions

Unless you already have a signing certificate and provisioning profile, you need Xcode 7 or newer which you can get on the Mac App Store

If you have a paid developer account or a signing certificate and provisioning profile, you can skip to step 7 and just use your signing certificate and the profile.

  1. Open Xcode and create a new iOS/tvOS application, it's not a bad idea to keep this around for when you need to renew the provisioning profile
    [Image: howto-1.png]
  2. Type in a name and identifier (choose something unique, something like com.yourname.kodi)
    [Image: howto-2.png]
  3. Xcode will complain about the provisioning profile, click fix issue
    [Image: howto-3.png]
  4. Xcode may have you sign into an Apple ID, click Add...
    [Image: howto-4.png]
  5. Then you'll see something like this, select your ID and click Choose
    [Image: howto-5.png]
    If you have additional devices
    • Plug in the device
    • Go to the Product Menu
    • Under Destination, select your device
    • Repeat from step 3
  6. Xcode should no longer be complaining
    [Image: howto-6.png]

    If you want a working tvOS top shelf follow these additional steps otherwise just continue to step 10
  7. Go to the Capabilities tab and turn on App Groups
    [Image: howto-6.1.png]
  8. Add a new group with the format of group.* where * is the full app id entered earlier (in this case group.com.DanTheMan827.Kodi)
    [Image: howto-6.2.png]
  9. Click fix issue
  10. Open App Signer, select the deb, your signing certificate, and the provisioning profile
    [Image: howto-7.png]
  11. Click start and select an output filename
  12. To install the app onto your device go back into Xcode, select the Window menu and then click devices
    [Image: howto-8.png]

    Then click the + and select the file generated by iOS App Signer
    [Image: howto-9.png]

Troubleshooting

Kodi crashes or I get a grey screen
This is usually caused by a certificate error.
  • Open Keychain Access which is located in the Utilities folder inside Applications.
  • Select ‘Show Expired Certificates’ in the View menu.
  • Delete the Apple Worldwide Developer Relations Certificate Authority Intermediate certificates from both the login and system keychains.
  • Download and install the latest Apple WWDR certificate.

Then re-sign and re-install...

If it still does not work try completely resetting the Xcode certificates

Go into Xcode > preferences > accounts and remove your account from Xcode

Then go into keychain and then login and then certificates, delete anything that says iPhone Developer

Add your account back into Xcode it should complain about having to reset the certificates

Open finder and then go to the folder ~/Library/MobileDevice/Provisioning Profiles and delete everything inside there (Use command shift g for go to)

Then start follow the guide from step one since Xcode was completely reset
(This post was last modified: 2016-05-03 19:49 by DanTheMan827.)
find quote
DanTheMan827 Offline
Moderator
Posts: 488
Joined: Jul 2012
Reputation: 24
Post: #2
Okay, so... it appears that while the script runs and supposedly signs everything there must be something I'm missing because if I install the IPA my script generates directly it crashes on launch but if I then sign that IPA using iResign it launches just fine.

Anybody have any ideas?


Edit: Fixed the script and updated github
(This post was last modified: 2015-11-02 07:25 by DanTheMan827.)
find quote
MrMC Offline
Posting Freak
Posts: 758
Joined: Jun 2014
Reputation: 30
Post: #3
pull the crash log using xcode and see where it is crashing. beats guessing.
find quote
jdanyorozco Offline
Junior Member
Posts: 8
Joined: Nov 2015
Reputation: 0
Post: #4
Can this process be done on the New Apple TV? I currently have Kodi on my Fire TV Stick and waiting for my preordered Apple TV to deliver so I'm really hoping I can get Kodi on it as well. Thanks guys.
find quote
MrMC Offline
Posting Freak
Posts: 758
Joined: Jun 2014
Reputation: 30
Post: #5
(2015-11-02 06:13)jdanyorozco Wrote:  Can this process be done on the New Apple TV? I currently have Kodi on my Fire TV Stick and waiting for my preordered Apple TV to deliver so I'm really hoping I can get Kodi on it as well. Thanks guys.

yes, but that won't run on the new AppleTV, it runs TVOS, not iOS.
find quote
DanTheMan827 Offline
Moderator
Posts: 488
Joined: Jul 2012
Reputation: 24
Post: #6
Ok, I've figured it out and updated the script on github.

It all comes down to the fact that I was writing entitlements as a binary plist and apparently the iPhone doesn't like those...

Now the script runs perfectly well and can download the deb, extract, sign, and repack an installable IPA file

(2015-11-02 05:31)MrMC Wrote:  pull the crash log using xcode and see where it is crashing. beats guessing.

The app wasn't even generating a crash log, I checked...
(This post was last modified: 2015-11-02 07:23 by DanTheMan827.)
find quote
Steverae Offline
Senior Member
Posts: 162
Joined: Feb 2012
Reputation: 2
Post: #7
This is perfect as I have just downloaded and installed xcode 7.1.

I'll wipe my ipad tonight and update to 9.1 then test this script and see how it goes......
find quote
kendof Offline
Junior Member
Posts: 2
Joined: Nov 2015
Reputation: 0
Post: #8
Excellent.
Installed on iPhone 6 and iPad.
find quote
Steverae Offline
Senior Member
Posts: 162
Joined: Feb 2012
Reputation: 2
Post: #9
Hi everyone

A big thank you to DanTheMan827 for his superb script - worked like a charm.

I have now liberated my iPad form jailbreak nightmares and have the only app that i jailbroke it for installed.


Thanks again for your help on this one and a big thank you also to Memphis for his iOS 9.x update to Kodi 15.2
find quote
dr_n Offline
Junior Member
Posts: 3
Joined: Jul 2009
Reputation: 0
Post: #10
Thanks for doing this. However I'm having several issue with this latest version. First off, there are a number of bash failures:

Code:
./app-sign.sh: line 64: [: missing `]'
./app-sign.sh: line 69: [: missing `]'
2015-11-02 21:29:59.005 defaults[46326:1304106]
Domain (/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.VjN1La6x/out/Payload/Kodi.app/Info.plist) not found.
Defaults have not been changed.
security: unable to open "/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.VjN1La6x/out/Payload/Kodi.app/embedded.mobileprovision" for reading: No such file or directory
Cannot parse a NULL or zero-length data
./app-sign.sh: line 100: syntax error near unexpected token `then'
./app-sign.sh: line 100: `    if[ -e "$EntitlementsPlist"]; then'

If I fix the bash errors, I get:

Code:
2015-11-02 21:33:49.111 defaults[46357:1305139]
Domain (/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.Z1Ejcqh4/out/Payload/Kodi.app/Info.plist) not found.
Defaults have not been changed.
security: unable to open "/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.Z1Ejcqh4/out/Payload/Kodi.app/embedded.mobileprovision" for reading: No such file or directory
Cannot parse a NULL or zero-length data
/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.Z1Ejcqh4/out/entitlements.plist: unrecognized blob type (accepting blindly)
/var/folders/6_/xvgxg70d41sbt_v9rj45d5yh0000gn/T/tmp.Z1Ejcqh4/out/entitlements.plist: invalid length in entitlement blob

After which, I get an IPA file. But it won't install, giving me a:

Code:
App installation failed
No code signature found

I'm using OSX El Capitan, Xcode 7.1 and an iPad4

Any thoughts?
(This post was last modified: 2015-11-02 23:53 by dr_n.)
find quote
dr_n Offline
Junior Member
Posts: 3
Joined: Jul 2009
Reputation: 0
Post: #11
OK - after some further bash fixes, I now get an installable API. Once I've trusted it in the devices, it's launching OK.

Thanks
(This post was last modified: 2015-11-03 00:29 by dr_n.)
find quote
onemico Online
Junior Member
Posts: 2
Joined: Nov 2015
Reputation: 0
Post: #12
(2015-11-03 00:17)dr_n Wrote:  OK - after some further bash fixes, I now get an installable API. Once I've trusted it in the devices, it's launching OK.

Thanks

How did you fix? I'm having very similar issues. Not really a coding expert, but know a little hence why this method suited me.
find quote
DanTheMan827 Offline
Moderator
Posts: 488
Joined: Jul 2012
Reputation: 24
Post: #13
So, this is what happens when I make major changes without testing Undecided

Here's the latest tested revision that I know worked https://gist.github.com/DanTheMan827/158...1b89dec7ee
find quote
MrMC Offline
Posting Freak
Posts: 758
Joined: Jun 2014
Reputation: 30
Post: #14
HAHAH, welcome to dev world @DanTheMan827
find quote
DanTheMan827 Offline
Moderator
Posts: 488
Joined: Jul 2012
Reputation: 24
Post: #15
ok, the current version on github works, I added some error checking and fixed a few bugs.
find quote
Post Reply