Warning Kodi is not running on iOS9 - This is for developers only!
#1
This is a superseed of the old information thread.

This is the current status.

1. iOS9 is released and there is no jailbreak for it atm. This means most users are not able to install Kodi on it.

2. Newest apple development tools (Xcode7) allow developers to compile and deploy apps to their devices without paying the ios Developer membership and without using the related certificate.

3. Current master branch of the Kodi code supports compilation with Xcode7 already

4. Current master branch is setup in a way to be compatible with all our supported ios versions. As of today - it doesn't matter if you compile with Xcode7 - the resulting app will NOT RUN on iOS9 devices because of major changes apple did in the way dynamic libraries are loaded on iOS9.

5. I have worked out needed changes to workaround those for now. This changes are not the final solution because it would mean that we would need to drop support for all devices which run iOS versions lower then 8.0. There are some ideas to make the resulting app compatible for all supported iOS versions but at this point we need to wait a bit more and think a bit more on how to achieve this.

6. Because of 5. there is only one way atm to let Kodi run on iOS9 and i am serious when i say - this is meant to be done by developers only which don't piss their pants just because of some errors during the build process.

7. I am not willing to support any newbies which just think they need to compile on their own just for being able to run Kodi on iOS9. If i have a feeling someone is just not up to the task and spamming this thread with support questions i will remove those posts.

Ok here we go. This is the code which should be compiled when trying to run Kodi on iOS9:

https://github.com/Memphiz/xbmc/commits/ios9_workaround

As of now it does the following:
a. It sets the deploymeant target to ios 8.0 to fix Point 4. of the upper list (and also leads to the broken backward compatibility for older ios versions)

b. It doesn't diddle the VideoToolBox.framework path in the binary (VTB framwork was private up till ios8 and real privat up to ios6). This change in addition breaks VTB support for ios5.1 runtime (instant crash)

c. Fixes switching to external screen when running on iOS9 (and the orientation mess continues...). Its
a known bug that switching back from external to internal screen will result in unusable UI (wrong orientation and wrong size).

d. Apple changed their sandboxing mechanism since iOS8. I fixed the sandbox detection so that addons and stuff like that is saved in the Documents folder of the apps sandbox. This should allow adding addons and configuration files via iTunes file deployment again.

To get my branch checkout mainline code first:

$ git clone https://github.com/xbmc/xbmc.git
$ cd xbmc

Then add my repository as remote

$ git remote add memphiz https://github.com/Memphiz/xbmc.git -f

Checkout the ios9 workaround branch:

$ git checkout ios9_workaround

Continue with the usual build steps from the readme.

Ensure that you have really selected Xcode7 for the cmdline environment (xcode-select -s /Applications/<path to xcode7.app>/Contents/Developer

Also ensure that once you are done on the cmdline you really open Xcode7 when building (a simple open Kodi.xcodeproj might open an older Xcode version even if you selected the right one via xcode-select. Better directly start Xcode7 from the Applications folder and open the project then).

Once again - newbies stay out of this thread or at least stay quiet.

Future goal is of course to get something working for all our supported ios versions so that we can make mainline code compatible with iOS9.
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
#2
Current state of iOS9 support.

Update from 19.10.2015:

Found a way to keep ios5.1 support with our builds. Also pushed Isengard 15.2-1 to cydia which has iOS9 support. For nightlies i want to wait another day before merging the iOS9 support. Only known issue is that on ios9 at least on my 64bit device the nfs support is not working anymore. (can't say if this is 64bit only - but it works on my other devices which are all 32bit and iOS6).

---------snip for reference -------
Update from 18.10.2015:

We will regain iOS9 support for jailbroken devices in the next couple of days ... just monitor this pull request. As you can see i had to drop ios5.1 (ipad1) support sadly. But at least i was able to retain ios6,7 and 8 support.

https://github.com/xbmc/xbmc/pull/8250

Test build:

http://mirrors.kodi.tv/test-builds/darwi...s9-ios.deb

You should remove the appcake version before trying it out.

Official Statement: Currently there is no support for running the iOS Versions of Kodi which we (Team Kodi) provide on iOS9. The people which report having it work might run a device with 32bit CPU (which might make it work - didn't verify this).

The reason it doesn't work is described here (very technically):

https://forums.developer.apple.com/thread/7524 (last post from "skrawczuk")

This basically tells us: If Kodi in the current state should be able to run on iOS9 i would need to compile it with Xcode7 and minimum iOS Version 8 as target. On the other hand such a Kodi version would only run on devices which at least have iOS8 installed. (we loose instantly support for ios5,6 and 7 - some of those versions are the latest available for some devices). Thats not acceptable and i don't want to see anyone of those tiny ios app developers question this decision. (we are not in the business of Apple AppStore app development, nor do we follow the best practice to always screw users with outdated hardware - until there is really really no other way).

1. Either the jailbreak would need to loosen those dylib restrictions (by patching the dyld binary) - obviously it doesn't.
2. Or someone would need to figure out a way to change all our dylibs so that they pass the sanity check (e.x. we need a tool or a way to add this extra padding in the dylib headers without recompiling Kodi).

Currently i have no internet at home at all (someone cracked a cable in the neighbor street). Also i am still not finished with making my new flat complete.

So its not lazyness. I am aware of the problem since iOS9 was released. But its exactly that time that my real life took me back and it will need me for quiet some more time until i really settled in the new city.
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
#3
here, here for 6)

might want to add;

do not set min higher than 8, the build system will s**t the bed.
do not try arm64, the build system will s**t the bed.
#4
Nice! I checked out your branch and was able to build it in Xcode, un-fortuntelely I don't have a cable at work to install it on my phone to confirm everything is working. Will do this tonight. I have also been digging into the External screen issue and might have found some interesting tidbits that I will play with later.

Also, of note is that Apple announced today that iOS 9 is now installed on 50% of all iOS devices (less than a week). Crazy!
#5
hm....
dyld: Library not loaded: @executable_path/Frameworks/libsmbclient.dylib
Referenced from: /var/mobile/Containers/Bundle/Application/B14FF6A1-2295-49D7-A7B9-27926C2017D1/Kodi.app/Kodi
Reason: no suitable image found. Did find:
/var/mobile/Containers/Bundle/Application/B14FF6A1-2295-49D7-A7B9-27926C2017D1/Kodi.app/Frameworks/libsmbclient.dylib: mmap() error 1 at address=0x04AE8000, size=0x003C4000 segment=__TEXT in Segment::map() mapping /var/mobile/Containers/Bundle/Application/B14FF6A1-2295-49D7-A7B9-27926C2017D1/Kodi.app/Frameworks/libsmbclient.dylib
/private/var/mobile/Containers/Bundle/Application/B14FF6A1-2295-49D7-A7B9-27926C2017D1/Kodi.app/Frameworks/libsmbclient.dylib: mmap() error 1 at address=0x05058000, size=0x003C4000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/B14FF6A1-2295-49D7-A7B9-27926C2017D1/Kodi.app/Frameworks/libsmbclient.dylib

seems not to work out of the box with the described steps...
cheers,
bigcheese

update: ok, found this: http://forum.kodi.tv/showthread.php?tid=...pid1817250 ... will try to update the depends again

update2: ok, it was the code signing... now working Smile great!!
#6
ok, I had a question as a non developer... but I withdrew it here... not that "I piss my pants" ;-)

maybe someone is willing to help me get it to work in skype or sth. I am a journalist and really need Kodi to run on my ios9 device... help would be much appreciated and don't erase that, please.

PS: would ask someone who already managed via PM but get that I don't have the permission to use pm system... maybe because my account is pretty new.
#7
how can we get it running untethered?

edit: ok found it, will test tomorrow..
#8
Got everything working except now I'm getting the same issue that runnerr reported where it only works while its tethered to the Mac and while Xcode is open. What's causing this issue?
#9
I opened the copyframeworks-ios.command file in Xcode and copied in the code from your file source on your git then rebuilt in Kodi but still got the same issue with the tethered crashing. Which file do I need to change and how do I properly apply the change. Thanks in advance for the support.
#10
c) I can confirm that external display rotation is working properly
b) I am still prevented from running Kodi without being attached to Xcode. I don't know if you meant to have "!=" instead of "=" on this line:
https://github.com/Memphiz/xbmc/blob/ac2...ommand#L78
it was working detached from Xcode if I prevented that code block from executing
d)This does not fix the ability to install add-ons, however I now see all the Kodi files under Documents which this has now fixed. Couldn't see any noticeable errors when attempting to install add on so not even sure where to look. I will try and dig deeper.
#11
Compiled fine. Would crash until I manually commented out the following line in xbmc/tools/darwin/Support/copyframeworks-ios.command:

install_name_tool -change "$VTB_SDK6" "$VTB_SDK5" "$TARGET_BINARY"

(Discussed in http://forum.kodi.tv/showthread.php?tid=...pid2111373).

I’m not having the “tether” issue others have mentioned. Perhaps this is because I chose the “Build for Profile” option rather than debug?

Some issues and workarounds:

1. When in File Manager, clicking “Add source” does not render a dialogue. Also, I cannot leave the File Manager screen when clicking the back arrow or Home icon. The workaround I used was to enable the Web GUI which is able to initiate the dialogue for adding sources and is able to return to the home screen.

2. Installing plugins from remote repository (via “Install from zip” to a web source created earlier) not working. I found manually downloading, unzipping and copying addon folders to the addons directory worked. To copy both the Kodi.ipa and addons, I used iFunbox but regular iTunes should probably work as well.

Thanks to Memphiz and the Kodi Team. It’s great to have Kodi back while running iOS 9—especially so soon after this disruptive OS switch.
#12
I got it working untethered. Just had to put a "#" in front of the line mentioned in the copyframeworks file. Question now is how can I archive? I build and post a package for family that's abroad but with these changes I'm not sure if the archiving method is still supported. Normally I would select the codesigning entries to the iPhone Distribution "My Name" and the provisioning profile to one I linked to the iPhone Distribution "My Name" certificates. Haven't tried it yet but was wondering if it'll even work.
#13
runnerr is right - it should read != in the install_name_tool branch.

I have added a commit to my repo

issue:
$ git pull
to get the change.

@txprestige - any chance you can double check this on an older ios version (different device?) i mean that bug you described via 1.?

@belltechdave as long as you only have one developer identity its ok to select "iOS Developer" because it will use your developer certificate. Changing the provisionimng profile doesn't influence the signing. You see if the full sign step is done if you look into the after build phase output in Xcode - it will show multiple outputs for signing. If i n doubt you always can alter this if condition so that it also does a full sign with your set identity (even if it is different from "iOS Developer"):

https://github.com/Memphiz/xbmc/blob/ios...ommand#L31
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
#14
Memphiz: installed on iPad 2 running iOS 8 and the same problem occurred when entering File Manager. Add source fails to display a dialogue, clicking either the back arrow or home icon do not allow one to leave File Manager.
#15
@txprestige: There is a workaround for the issue where you cannot leave file manager. 2 finger swipe to the left will allow you to get out of File Manager.. Not sure why that works but it does.. But yes add source is not working properly in the confluence skin (I can't even find file manager in re-touched skin, I don't think it ever existed ?? )

Logout Mark Read Team Forum Stats Members Help
Warning Kodi is not running on iOS9 - This is for developers only!1