Archives for the ‘Appcelerator’ Category

3 Oct 2014
7

Appcelerator fix for Ti.Map on iOS after upgrading to Titanium 3.4.0

This is a quick tip on how to get Ti.Map working again on your iOS7 builds after upgrading Titanium to SDK 3.4.0.

Quick Note

For the sake of those who just want to know how to fix the problem and not why it occurred, I will commence this post with the fix and then after that explain what I assumed happened.

Also, thanks to Tim Poulsen and Boydlee, please see below Option 1 on how to resolve this issue best. I’ve kept my option as Option 2

How to fix the issue – Option 1 (Thanks to Tim and Boydlee)

  • In Titanium Studio, open the tiapp.xml file in your mobile project
  • Under the Modules section, double click on the entry “ti.map”
  • Change the version to 2.0.2 (Which seems to be the version that will work with SDK 3.2.0 and up)

TiMap5

How to fix the issue – Option 2

  • In Finder, navigate to “Library > Application Support > Titanium > modules > iphone > ti.map
  • Starting with the latest version of Ti.Map, open the relevant folder (e.g. 2.0.5)

TiMap

  • Open the manifest file using TextEdit
  • Check the mindsdk property. If it says 3.4.0, then it will only work for iOS 8 Builds

TiMap2

  • If you want to still develop for iOS7 and use Ti.Map globally for all your apps, then you will need to delete the version of Ti.Map relevant to the above-mentioned
  • In my case, I needed to delete the 2.0.4 and 2.0.5 folders. Now, my latest version of Ti.Map is 2.0.2

The error I was getting

I mentioned in a previous post of mine, that the reason I upgraded Titanium Studio to version 3.4.0, was because Xcode 6 silently installed itself on my machine. When I upgraded Titanium to 3.4.0, I got the following error message when trying to run a build for an iOS7 app that makes use of the Ti.MAP module:

TiMap3

 

My assumption of what happened

So, here’s a shot in the dark of what happened. When upgrading to Titanium Studio 3.4.0, Appcelerator saw that I had the Ti.Map module (which Appcelerator developed) and immediately downloaded the latest version (2.0.4 or 2.0.5), which I assume is required for iOS 8 development.

The truth is, I can’t remember what version of Ti.Map I installed last, but I do know that it was working. When I opened the modules folder on my Mac, the latest version was 2.0.4.

At this time I thought that maybe I downloaded 2.0.4 a while ago, and during the update of Titanium Studio this module was modified accidentally by the update.

My first attempt to fix the problem

First thing I did was check on Github what the latest version of Ti.Map was. I noticed 2.0.5 was released and downloaded that to my modules folder.

Sadly this did not fix the problem. I still received the same error as before.

My second attempt to fix the problem

I got a bit clever and opened the manifest file for version 2.0.5. I noticed that the minsdk parameter had a value of 3.4.0. I changed this to 3.2.3.

The good news is that my app was successfully running again. The bad news is that when launching any window that made use of the Ti.Map module I got the following error:

TiMap4

It was here that I finally made the assumption that Ti.Map 2.0.4 was automatically downloaded, as it contains code that only works in XCode 6.

My third attempt which finally fix the problem

What I did next was started from the latest version of Ti.Map, and checking backwards which version had a minsdk lower or equal to 3.2.3. In my case, it was version 2.0.2 of Ti.Map. So I deleted the 2.0.4 and 2.0.5 folders, reran my iOS7 build and Boom. Everything is working again.

I hope this helps everyone. I welcome any input that would assist in understanding what happened here.

Cheers for now
John
1 Oct 2014
11

Appcelerator Tip: Switch between iOS SDKs for mobile app development

Thanks to Apple forcing my hand by auto installing Xcode 6, I had to quickly manage multiple versions of Xcode on my mac for Appcelerator mobile development.

Why multiple versions?

Xcode 6 has the iOS 8 SDK and Simulator by default. For some reason, I couldn’t get it to include the iOS7 SDK, which is what I require for my current development projects. This meant that I needed Xcode 5 back on my machine. I was quite nervous to delete Xcode 6 and replace it with Xcode 5 again, so I decided to install multiple versions of Xcode instead.

My first attempt failed

My first attempt was to do the following (Note: Here’s my blog post on how to achieve the below-mentioned):

  • Download Xcode 5.1.1 from the Apple Developer Center
  • Extract the 7.1 SDK and Simulator from Xcode 5.1.1 and paste it into Xcode 6
  • Restart Titanium Studio

This used to work in the past, but not this time. I kept getting random errors that I  haven’t seen before.

My second attempt succeeded

Thankfully, there’s more than 1 way to skin a cat. The following worked for me:

  • Download Xcode 5.1.1 from the Apple Developer Center Website (I named the file “xcode_5.1.1.dmg“)
  • Double click the DMG file and drag the “XCode.app” icon on to the “Applications” icon.
  • When prompted if you want to “Replace” or “Keep Both” files, choose “Keep Both“.

Apple1

 

  • Once the copy is complete, navigate to the Applications Folder and rename the new Xcode2.app to “Xcode511.app”

Apple2

Now, what we need to do is tell Titanium which Xcode to point to. By default, Titanium looks at the default “Xcode.app” file in the Applications folder. In this scenario, we want Titanium to point to the “Xcode511.app”.

To achieve this, do the following:

  • Open Terminal
  • Type in “sudo xcode-select -switch /Applications/Xcode511.app/Contents/Developer”
  • Restart Titanium Studio
  • In the Top Menu, navigate to “Titanium Studio > Preferences > Studio > Platforms > iOS”
  • Next to iOS SDK Home, click on the “Refresh” button.

Apple3

 

And that’s it. Hopefully this will do the trick for you as well.

Till next time
John
17 Sep 2014
0

Calling on iOS, Android and Appcelerator mobile developers in Gauteng, South Africa

Are you a native iOS or Android Developer? If not, have you developed mobile apps for iOS and Android using Appcelerator or something similar? We’re hiring!

Our mobile division is expanding at an exciting rate. We are looking to all mobile developers who meet the above pre-requisites and who are interested in joining our team.

We are based in Centurion, Pretoria in Gauteng, South Africa. We’re primarily interested in permanent positions, where temporary/contract positions would only be entertained based on certain conditions.

If you are interested, please send your CV and a small example of your work to (john dot jardin at gmail dot com).

If you have any questions, feel free to comment on this Blog Post or interact with me via Twitter, LinkedIn or Google+.

Looking forward to hearing from you :)

Cheers
John
6 Jun 2014
0

Possible fix for IDFA Warning when uploading to App Store

Even though I’m not using any Advertising in my mobile app, I receive an IDFA warning from XCode  before submitting my app to the App Store.

XCode Warning

Thanks to this Article on the Appcelerator Developer Forum,  I managed to fix the problem.

How Did I fix it?

Because I’m using the following Facebook Module (version 3.1.1) in my mobile app, the module makes use of the AdSupport Framework, which resulted in my app making use of IDFA.

To fix this, I downloaded and installed version 3.1.2 of the FaceBook Module.

Click here to view my article on how to install Appcelerator Modules if you are unsure of the process.

3 Jun 2014
2

Appcelerator Tutorial: Install Modules globally for Titanium Studio

One of the great features of Appcelerator Titanium is how you can extend its capability by installing Mobile Modules. Examples of some of these modules are:

  • Ti.Paint (A module that allows you to draw on a canvas within your mobile app…e.g. a user adding a signature)
  • Barcode Scanner (Barcode scanning for your mobile application)

A great place to find many of these modules is the Appcelerator Marketplace. You can also find many other modules on Github as well.

The best news is that it’s become very easy to install a mobile module for your Titanium development environment.

Some key notes about this Tutorial

  • For a detailed reference on how to install modules, click here
  • We will use the In-App Billing Module for this exercise
  • I’m using Android for this example but the same applies to a module developed for iOS
  • Mobile Modules are dependent on the Titanium SDK you are currently using for your mobile app
  • Modules are usually downloaded as zip files

To install a mobile module, do the following

  • Download the In-App Billing Module for Android
  • In Titanium Studio, click on “Help\Install Mobile Module…”

modules1

  • Select the Zip file you downloaded
  • Keep the Output Location as “Titanium SDK” (Remember, we want the module to be available throughout Titanium Studio)
  • Click “OK

modules5

  • Once the module has been installed, restart Titanium Studio (Just to be sure)
  • Once restarted, navigate to one of your mobile projects
  • Open you mobile app’s tiapp.xml file
  • On the right in the “Modules” section, click on the green plus sign (+)
  • In the list of modules dialog, select ti.inappbilling and click “OK”
  • Save the tiapp.xml file

modules4

That’s it. The module has been successfully installed and is available for any of your mobile apps via Titanium Studio. In the near future I’ll provide tutorials on how to make use of some of these modules within your mobile applications.

Till next time, happy coding :)
John