[sword-devel] Older iOS devices and future PocketSword releases?

Manfred Bergmann manfred.bergmann at me.com
Tue Oct 25 01:54:51 MST 2016


I believe that Apple ships multiple versions of the runtime (or parts of it which are bridged to the latest) in iOS and the app is executed in the highest version possible.
That depends on which SDK version is was compiled against.
They are always introducing a lot of stuff in new runtime/SDK versions. One of which, as you mentioned, is the restriction to not allow UI updates from the main thread.
Then they changed the way how this is to handled by introducing GCD (Grand Central Dispatch). Now, since apps that were compiled against a SDK version that doesn’t support GCD it must be run in a different runtime.
It seems that the older runtimes or the bridge code is not always totally accurate, or at least older apps may run into problems when new devices.
That’s possibly the reason why Apple is eager to reduce the maintenance for all this and to enforce re-compiling apps against newer SDKs.

Xcode 8 will only allow a deployment target of >= iOS 8.0.
If you want to still be able to deploy to iOS 7.1 then you shouldn’t use Xcode 8.


Manfred


> Am 25.10.2016 um 09:22 schrieb TS <outofthecube at icloud.com>:
> 
> Regarding the API compatibility, I’m still not sure if I fully understand it. My current understanding is that each iPhone/iPad will interpret the app’s code based on the iOS it’s running. So, if a lot of code is completely deprecated and replaced in a new SDK (or API) release, you still need to keep the old code so that the iPhone/iPad’s still running on the older iOS’s will still work correctly. I think that when things like that happen the code should be commented or explained or etc. so that the code is organized and not confusing or hard to follow or etc. 
>      On a related note though, updated API’s seem to also allow for changes to functions (methods) behind the scenes. I think that the current iTunes version of PocketSword can’t download certain search indices due to an issue like this. The methods for downloading data from the internet were completely reworked and somewhere along the line, it was no longer allowed to block the main thread which I think may be at least part of the reason why it stopped working.
> 
> Here’s some results of some experiments I did running PocketSword 1.4.7 on an older version of Xcode:
> With Xcode 6.2 using iPhone 5s as the model to simulate on and using a base SDK of iOS 8.2 for every test.
> Simulating on an iPhone running iOS 7.1  YES - search index downloads
> Simulating on an iPhone running iOS 8.1  NO - will not download search index
> Simulating on an iPhone running iOS 8.2  NO - will not download search index
> 
> Also, on a related note, I saw some articles online which say that Apple allows developers to offer older versions of their app through the store so that devices running an older iOS can download those versions which are still compatible. Here’s a stack overflow link which has some pictures:
> http://stackoverflow.com/questions/19147885/app-store-managing-availability-of-your-apps-previous-versions
> 
> Hope this helps,
> TS
> 
> 
> 
>> On Oct 22, 2016, at 3:50 AM, Manfred Bergmann <manfred.bergmann at me.com> wrote:
>> 
>> 32 + 64 bit is not a problem.
>> Xcode will usually build multiple architectures and combine them in one app.
>> 
>> The issue is API compatibility.
>> When building with the latest Xcode the oldest iOS target version is iOS 8.
>> That means any new build of PocketSword will probably not be able to target anything below that.
>> 
>> 
>> Manfred
>> 
>>> Am 22.10.2016 um 12:29 schrieb David Haslam <dfhmch at googlemail.com>:
>>> 
>>> Assuming that the programmers eventually succeed in getting the 64bit version
>>> of PocketSword compiled without errors, may I remind developers that there
>>> are still many users who, like me, have older iOS devices that are only
>>> 32bit. 
>>> 
>>> We don't want to abandon PocketSword users that have older machines. It's
>>> impossible to install a 64bit app into a 32bit device.
>>> 
>>> Some app developers therefore have two editions of each app, one for 64bit
>>> devices and one for 32bit devices. For example, the iOS app called VPN
>>> Unlimited from KeepSolid.
>>> 
>>> Not being an iOS app developer, I don't know if there is an alternative way
>>> to resolve this, other than having two separate apps. 
>>> 
>>> (I've seen Windows apps that detect whether the processor is 32bit or 64bit,
>>> and which proceed with the installation accordingly. There are further
>>> complications in 64bit PCs, as the updater ideally needs to detect any
>>> previous 32bit version of the program, and offer to first delete that before
>>> installing the 64bit version.)
>>> 
>>> Please remember this as the project proceeds. Thanks.
>>> 
>>> 
>>> Best regards,
>>> 
>>> David
>>> 
>>> 
>>> 
>>> --
>>> View this message in context: http://sword-dev.350566.n4.nabble.com/Older-iOS-devices-and-future-PocketSword-releases-tp4656505.html
>>> Sent from the SWORD Dev mailing list archive at Nabble.com.
>>> 
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>> 
>> 
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
> 
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page




More information about the sword-devel mailing list