Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-10852] iOS: tooling - Studio correctly passes iOS compile target, but scripts use latest iOS SDK regardless of setting

GitHub Issuen/a
TypeBug
PriorityHigh
StatusClosed
ResolutionWon't Fix
Resolution Date2012-10-11T00:10:42.000+0000
Affected Version/sRelease 2.1.2, Release 2.1.3
Fix Version/s2012 Sprint 21 JS, 2012 Sprint 21
ComponentsTooling
Labelscore
ReporterEric Merriman
AssigneeIngo Muschenetz
Created2012-09-11T15:45:14.000+0000
Updated2013-03-27T22:31:55.000+0000

Description

While testing iOS and Xcode 4.5 we saw a failure trying to compile with iOS 5 target. This failure was identical to the failure seen when trying to compile with an iOS 6 compile target. After closer examination, we determined that no matter what the setting was, the build would always target the latest installed SDK (as interpreted by Xcode). e.g. Setting to iOS 5.0 when 5.0, 5.1 and iOS 6 are options, iOS 6 is used. I have verified that Studio is sending the correct arguments:
"/Users/emerriman/Library/Application Support/Titanium/mobilesdk/osx/2.1.1.GA/iphone/builder.py" "install" "5.0" "/Users/emerriman/212Workspace/ericDevTest" "com.appcelerator.devtest" "ericDevTest" "25360090-4A84-4F2A-8415-B53E250EAB05" "Eric Merriman (9JUJ8DJW9G)" "universal"
But the build process still reports:
[INFO] Titanium SDK version: 2.1.3 (09/07/12 16:31 9699f0a)
[INFO] iPhone Device family: universal
[INFO] iPhone SDK version: 6.0
[INFO] Performing full rebuild. This will take a little bit. Hold tight...
This is not a regression. Occurs in 2.1.2GA and 2.1.1GA. Occurs with Xcode 4.4.1 and Xcode 4.5

Steps to reproduce:

1) Create a project using either studio or command line 2) Invoke your build and ensure you are using something other than the latest SDK possible, something like this: "/Users/emerriman/Library/Application Support/Titanium/mobilesdk/osx/2.1.1.GA/iphone/builder.py" "install" "5.0" "/Users/emerriman/212Workspace/ericDevTest" "com.appcelerator.devtest" "ericDevTest" "25360090-4A84-4F2A-8415-B53E250EAB05" "Eric Merriman (9JUJ8DJW9G)" "universal" 3) Observe the console

Result:

The build reports it is building with the latest iOS SDK you have installed.

Expected:

The build reports it is building with (and actually builds with) the compile target set in studio. If it doesn't have the right value, it should warn the user about the problem.

Comments

  1. Bill Dawson 2012-10-03

    Eric, what do you see if you do
       xcodebuild -showsdks
       
    in a Terminal session? For me, with Xcode 4.5 installed, I get:
       OS X SDKs:
       	Mac OS X 10.7                 	-sdk macosx10.7
       	OS X 10.8                     	-sdk macosx10.8
       
       iOS SDKs:
       	iOS 6.0                       	-sdk iphoneos6.0
       
       iOS Simulator SDKs:
       	Simulator - iOS 4.3           	-sdk iphonesimulator4.3
       	Simulator - iOS 5.0           	-sdk iphonesimulator5.0
       	Simulator - iOS 5.1           	-sdk iphonesimulator5.1
       	Simulator - iOS 6.0           	-sdk iphonesimulator6.0
       
    So if you're doing "install" (to a device),indeed there is only one available and so it grabs it no matter what you selected. So in the selection list in Titanium Studio, when user has chosen to build for device, I guess we shouldn't show the simulator-only SDKs. Sound right? (This would also require a change to Studio.)
  2. Ingo Muschenetz 2012-10-03

    We should investigate for the new CLI to see if this is still an issue and how we handle it.
  3. Chris Barber 2012-10-03

    This is fixed in the new CLI.
  4. Chris Barber 2012-10-11

    This won't be fixed because the old CLI is deprecated and the new CLI supports this correctly.

JSON Source