[TIMOB-16697] iOS: SDK should have 0 compiler warnings (it currently has 9)
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Medium |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2014-12-01T23:33:14.000+0000 |
Affected Version/s | Release 3.1.3 |
Fix Version/s | Release 3.4.2, Release 3.5.0, Release 4.0.0 |
Components | Core, iOS |
Labels | module_platform, qe-noTestNeeded, sdk |
Reporter | Matt Langston |
Assignee | Vishal Duggal |
Created | 2014-03-25T18:31:17.000+0000 |
Updated | 2014-12-02T00:02:35.000+0000 |
Description
We should have 0 compiler warnings. An SDK that produces even 1 compiler warning should never make it to QE.
There are 64-Bit issues buried in these 159 warnings, so these issues need to be fixed before our SDK can be certified as 64-Bit clean.
This is Apple's guide to making source code "64-bit clean": [64-Bit Transition Guide for Cocoa Touch](https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaTouch64BitGuide)
Attachments
File | Date | Size |
---|---|---|
alloy_no_services.png | 2014-03-25T18:31:17.000+0000 | 256557 |
alloy_services.png | 2014-03-25T18:31:17.000+0000 | 204135 |
classic_no_services.png | 2014-03-25T18:31:17.000+0000 | 294882 |
classic_services.png | 2014-03-25T18:31:17.000+0000 | 296921 |
image.png | 2014-03-25T18:31:17.000+0000 | 493024 |
image2.png | 2014-03-25T18:31:17.000+0000 | 477767 |
still_warning.png | 2014-03-25T18:31:17.000+0000 | 328150 |
Although ticket TIMOB-15118 is closed and marked fixed, I'm quite un-satisfied about how the issue was addressed. Verified again with: Studio:3.2.3.201404181442 Sdk:3.2.3.GA alloy:1.3.1 Osx: Maverick(10.9.2) xCode:5.0.2 Created a new alloy project, built and opened generated project with xcode, run. There were 9 compiler warnings, and, in addition, 1 xcode warning. Investigated closely the xcode warning, it says multiple recommended compiler warnings are disabled, including: Duplicate Method Definitions Empty Loop Bodies Implicit Boolean Conversions Implicit Constant Conversions Implicit Conversion to 32 Bit Type Implicit Enum Conversions Implicit Integer to Pointer Conversions Undeclared Selector Uninitialized Variables Enabling all of them and try run again, got 123 compiler warnings. People, please get the point.
Xu, is there a reason this ticket is of particular interest to you?
Not really, just concern about quality. As a SDK, it should be robust.
PR submitted to enable additional compiler warnings: https://github.com/appcelerator/titanium_mobile/pull/5667. If you wish to help expedite this ticket, a PR with additional changes is appreciated.
Pull pending master - https://github.com/appcelerator/titanium_mobile/pull/6269 3_4_X - https://github.com/appcelerator/titanium_mobile/pull/6271
This PR bumps the deployment target on Titanium projects from 5.0 to 7.0 It enforces our min-ios-ver support of 7.0 (3.4.0 and 3.4.1 can still be built with min-ios-ver 6.0) It also enforces minSDK of 8.0. Right now you can build apps with minSDK of 7.0 Major code changes include the following 1. AudioRecorderProxy moved from AQRecorder to AVFoundation/AVAudioRecorder 2. Deprecation of status bar styles, color constants 3. AdView refactor As part of this we have also enabled most of the compiler flags suggested by XCODE The following warnings are still generated 1. Missing Launch Image - Ignore this for now. We take care of proper launch images in our build script 2. Validate Project Settings (Details below) 2a. Enable undeclared selector warning - We will probably not enable this flag anytime soon due to the amount of code refactor required 2b. Enable Unreachable Code warning - We will defer enabling this flag till we factor out the SCListener and MGSplitViewController libraries 2c. Enable Implicit conversion to 32 bit - This will generate warning in the a few third party library. We can choose to keep this disabled but should update titanium code to not generate this warning if enabled. 2d. Automatically select architectures - This will done as part of 64bit support Regression path - KitchenSink
Two further PR's merged master - https://github.com/appcelerator/titanium_mobile/pull/6328 3_4_X - https://github.com/appcelerator/titanium_mobile/pull/6329 This takes care of '2c' mentioned in the comments above. The code is fixed but the warning is still disabled in the project