Does Version 7.0.4 work with Xcode 6.3.1?

Peter M. Brigham pmbrig at gmail.com
Sat Apr 25 18:54:13 EDT 2015


Again, let me say that your presence on this list is greatly appreciated. This kind of look behind the scenes at what you are doing and the problems you are tackling is enormously helpful to all of us. In the absence of this kind of information it is easy to assume that our error reports and complaints are being ignored. Obviously they are not. Thank you for shepherding the growth our favorite RAD environment.

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig


On Apr 25, 2015, at 3:02 PM, Mark Waddingham wrote:

> On 2015-04-25 18:20, Richard Gaskin wrote:
>> It seems that every time Apple updates Xcode it breaks LC, requiring
>> the team to set aside other work and rush another build out for that
>> one OS.  Many of the 7.0.x/6.7.x builds seem to fall into that
>> category, and those of us waiting for resolution on issues for other
>> platforms find this as frustrating as I'm sure the team does.
> 
> It is somewhat frustrating at times - yes (particularly as Apple have upped the pace of Xcode and iOS updates recently).
> 
>> Working with Android is smooth as silk by comparison, rarely requiring
>> any updates at all.
> 
> Android is a slightly different beast than iOS - partly because Google has done very well to make every Android release a superset of the previous one and thus older APIs and methods continue to work fine as the platform evolves; and partly because there isn't an issue with dynamic linking.
> 
>> What is it that makes the relationship between LC and Xcode so brittle
>> that it requires revision with every Xcode update?
> 
> There are three factors here - technical, legal and resource.
> 
> The technical issue is that iOS apps must present themselves as a single statically compiled executable - you are not allowed to load non-system dynamic libraries at runtime. As LiveCode supports native code externals, these cannot be done as dynamic libraries as they can be on all the other platforms.
> 
> Instead, we have to 'mostly-link' the engine, and 'mostly-link' each external. The Standalone Builder performs the final link step - and this step requires the full iOS SDK to be installed (hence the dependence on Xcode). Moreover, because all the mostly-linked pieces have been 'mostly-linked' against a specific iOS SDK, the Standalone Builder needs access to the iOS SDK with which they were 'mostly-linked' in order to be able to build the final fully-linked executable.
> 
> So, if you have 6.7.4 which contains products built using the iOS 8.2 SDK, you cannot use Xcode 6.3 to build a standalone because Xcode 6.3 does not contain the iOS 8.2 SDK which LiveCode needs to perform the build.
> 
> The legal issue is that (as far as I'm aware) you are not allowed to distribute 'publicly' any derived works of a beta SDK - the terms of the iOS SDK Agreement for Beta releases is more restrictive than that of the non-Beta releases (basically, only paid-up members of the Apple Development Programme for iOS are allowed to access and use it). This causes a timing issue for us, as it is dubious as to whether we are allowed to distribute builds of LiveCode which contain components which are linked against a Beta iOS SDK (there may be a more optimistic interpretation, but I always tend towards the severely conservative when it comes to long, complex, software licensing agreements!).
> 
> The upshot of this is that it results in a bit of a race for us as soon as Apple 'decide' to make their latest and greatest work public.
> 
> The third issue is that of resources. Right now doing a build for a release of LiveCode takes a considerable amount of man power - this means we can't be quite as agile with releases as we would like and have to roll iOS SDK updates into the current maintenance cycle.
> 
>> Is there anything that can be done to anticipate and work around what
>> appears to be a disregard for backward compatibility in Xcode?
> 
> In terms of improving the current state of affairs then...
> 
> On the technical side of things there are options open to us in terms of avoiding a direct dependence on the iOS SDK at the Standalone Builder step (if we had enough engineering resources to pour into such a project, that is). However, any technical solution along these lines opens us up to legal issues (particularly with the Google vs Oracle debacle still apparently 'not quite resolved', and restrictions imposed with regard 'reverse engineering', 'fair-use' and the DMCA).
> 
> On the legal side of things, perhaps a more 'optimistic' reading of the various SDK license agreements might help. However, as Ralph points out - if you are worth multi-billions of dollars, you get to set the rules - and I think it is wise for us to be conservative in this regard.
> 
> On the resource side of things then this is where we can and are doing something :)
> 
> The biggest bottleneck we have right now to getting releases (whether they be dp's, rc's or gm's) is the final build of the LiveCode distribution. This is something we currently have (and have had for a couple of months) people working on. We are currently in the process of fully automating builds of LiveCode, with the ultimate aim of achieving all-platform continuous integration.
> 
> When we have fully automated builds, it will free time from actually preparing the final builds and will hopefully mean we can revise our current process on iOS SDK updates and which releases to expect them in (for example, it should mean that is possible for us to add a new iOS SDK to the most recent stable versions of each branch we have as a gm-2, rather than having to roll them into the next maintenance release).
> 
> Anyway, I hope this helps to explain the current situation, and also what we are doing to improve it moving forward.
> 
> Warmest Regards,
> 
> Mark.
> 
> P.S. IANAL applies to any mention of 'interpretation' of the legal documents mentioned above.
> 
> -- 
> Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
> LiveCode: Everyone can create apps
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list