iOS: Is there absolutely no way to build for armv6 in Xcode 4.5? - ios6

Starting with Xcode 4.5 the possibility of building for armv6 devices is not given anymore (iPhone/iPod touch 1st and 2nd generation). This means no new versions of our app for iPhone 2G and 3G which is very unlucky. Does anyone know if there will be a workaround? I really don´t see any technical reasons for this.

You can have multiple versions of xcode installed. In the past, that has been the fix needing to use an older xcode feature.
It is a workaround, and the project files may eventually evolve in a way that no longer supports the older tools, but for the time being, that will allow you to build for older targets.
If you have a single project that you want to work with in both versions of XCode, then you may end up having to manage separate project control files via source control tricks and/or file shuffling.
I would also recommend that project structure changes and binary file management (e.g. Core Data models) happen via the old version, as XCode 4.5 will be backward compatible, but forward compat is rarely assured.

There's another solution I found in chpwn blog: Building for armv6 in Xcode 4.5.
This allows you to work with Xcode 4.5 but compile using 5.1 SDK.
The downside: you can’t use the iOS 6 SDK when using this trick, and you can’t build for armv7s.

Yes, there are workarounds. If you need to actually take advantage of new iOS 6 features, try either of the first couple answers to this related question. The first answer requires using both Xcode 4.4 and 4.5. If you never want to have to open Xcode 4.4, then use the second answer.
If you just want to be able to build an executable in Xcode 4.5 that works on armv6, armv7 and armv7s devices, without actually taking advantage of new iOS 6 SDK APIs, then you can see my answer to another question, which is much simpler ... but has the limitation that you can't take advantage of new iOS 6 features on iOS 6 devices.

You can add the string "armv6 armv7" as architecture. Do not select a predefined setting.

Related

how to upgrade eclipse codename one version from 6.0 to 6.5 (then to 6.5.1)?

TWO very related questions in this post.
How to install 6.5 & 6.5.1 in eclipse(more detail below)
Intellij Toolbox last version supported is 2019.2.4 but looks like codeone plugin doesn't support it?
In intellij, codenameone 6.5.1 simulator is not working(font is way too small) but it's working in 6.0.0 with my eclipse(from when I played with it 6 months ago). I am trying to test out each version to see what the latest version is that is not broken for me(hopefully at least 6.5). When I go to eclipse marketplace, there is no upgrade and it just shows this for codename one (eclipse verison 2020-06 as I clicked update all)
I don't see a way to download a zip file and install it in eclipse and only see the install from marketplace method here
https://www.codenameone.com/download.html#step2
Is there a zip download for eclipse somewhere I can try of 6.5, then 6.5.1?
I also want to try to downgrade my intellij version but we also need the latest so I grabbed the new intellij toolbox but this only goes back to version 2019.2.4. The compatibility list on codenameone plugin is such
I wonder about that first line for 6.5.1. A dot release and they added support all the way back to 2016 version which 6.5 didn't have? Seems like a type. Also, 6.5.1 did not work with latest intellij and honestly getting worn down in playing the version mismatch game of uninstall/install to see what works and doesn't work (it's just takes quite a bit of time).
If anyone can post a STABLE list of IDE version / plugin version they are using, I would LOVE to know that <- If I know that, I will just jump to that. I can cope with eclipse or intellij. In fact, eclipse debugging is way better and intellij refactoring is way better so I am always torn between each.
Trying 2019.1.4 with many versions next.
Figure this out finally. Not sure exactly but this repo https://github.com/deanhiller/codenameOneExamples
now works with latest intelij 2020.1.3 !!

Codename one methods not available on android device

The methods that are missing from the apk file are
BorderLayout.centerEastWest()
Dialog constructor with (String, Layout) as arguments.
There are probably more but these are the ones I encountered. I can work around the problem by using alternate methods and constructor but there seems to be a mismatch between the local library and the android build library.
Please note that when building the project I had to use the android.gradle=false hint for the apk to be readable on my older android 2.3.6 device. Without this hint the apk is not accepted on the device.
In addition the theme resource file is not loaded on the device while it is in the simulator. All these problems might be related ?
Thanks for your help
New features are no longer added to the old Ant build pipeline as maintaining it has become unwieldy since Google no longer supports proper versions of play services or other features we need.
We still have it for compatibility for people who built old applications with it but it's version of the Codename one libraries is frozen in time as newer versions of the libraries will break it. Google killed support forthe 2.x device family ages ago in play services so basic things like in-app purchase or proper location API's can't work on those old devices. The problem is that supporting them would make support for newer features MUCH harder.
I've edited the docs to reflect that this flag is deprecated.

How to create (and release) both a paid and lite version of an app using codename one

I have seen answers to this question using other tools but I cannot see how to do it with CN1. If I release a LITE version of an app, what is the process for the user to get the PRO version once they have paid?
Like I said I have seen other answers but they talk about settings within the development studio itself which makes me think that it may be related to the toolset I am using - in this case Codename One.
Thanks.
P.S. I will need to know this for both Android and Apple
This will work for all the platform Codename One supports and is explained in this tip. Effectively you keep two or more codenameone_settings.properties and multiple Main packages/classes. Then toggle them by replacing the codenameone_settings.properties file.

Still no Codename One Library project option when using Eclipse?

I recently read FIRST CLASS ECLIPSE SUPPORT which made me expect a cn1lib-wizard. But there still is none, right?
The gist of the article is that we will update the Eclipse plugin with the NetBeans & IntelliJ versions. With the trend of migrating towards common code across IDE's within our plugin (the new settings UI) this should be much easier and Eclipse should no longer be out of date with the other IDE's.
I'm not sure when we'll get around to do the library template, unlike the other features it requires some work since the Ant implementation on Eclipse is rather different. So it's hard to give a specific date.

Is it possible to compile Sprite Kit app/game for iOS 6?

Is it possible to compile Sprite Kit (new feature with XCode5) app/game for iOS 6?
I have compiled Application for deployment target iOS6, tested on simmulator but i dont know if it will work on physical device.
I would say that this question violates the NDA, but this can be answered in a general way: NO, you cannot. Apple frameworks are dynamically linked. What this means is that each version of iOS comes loaded with specific libraries from Apple, and they will be linked to at runtime instead of being compiled into your binary. If you use a version of iOS that does not include these frameworks, your app will crash because it will be unable to find the library at runtime.
To be more accurate you can compile SpriteKit calls but you can't run SpriteKit calls.
You can compile it but using that as "optional" (link with binary option just mark the library as "Optional" instead of "required") so that when you would use iOS 6 your app would still work and run on the device won't crash. You must pay attention that when calling to SpriteKit you would have to check that it is there...But that's another topic.
The problem is that On iOS 6 you would have to use another library/framework and not SpriteKit, Let say for example on iOS 6 you would use cocos2d with a very limited version of the game and when using more advanced OS that has SpriteKit you would give the user more features.
So it's possible but I'm not sure it is what you really want.

Resources