…tring manipulation. Much faster
…cannot be parsed." errors when using ttmodule to add Three20 to projects when Three20 itself is contained in a folder path with spaces. We weren't properly quoting path file names for the Three20 xcodeproj files, causing Xcode to fail to parse the pbxproj file format when Three20 was contained in a folder with spaces. This change simply adds quotes around the path when adding it. It also checks the existence of a quoted/unquoted path in order to stay backwards compatible.
…plication] statusBarStyle] instead of hardcoded UIStatusBarStyleDefault Before this change, TTBaseViewController was hardcoded to set the statusBarStyle to UIStatusBarStyleDefault. This meant that an application had to change the UIStatusBarStyle in the info.plist file and in every subclass of TTBaseViewController.
….h import. The Internal build turns of precompiled headers to ensure that we're importing all necessary headers in our source. This is helpful for when people want to pull out Three20 source code into their own project that might use a different precompiled header, if any.
… 4 Archive build.
…oject version. This is necessary for those wanting to upgrade their Three20 settings in a Xcode 3.2.5 project to Xcode 4. Before, the script would look at the project version and see that it was for 3.2.5 and only add the 3.2.5 settings. Now, it's possible to state --xcode-version=4 and this will force ttmodule to treat the project file as though it were version 4.
…her we need to add special settings for Xcode 4.
…licate linker flags on subsequent ttmodule runs.
…ew Build Location value. Before this change, Three20 compilation would fail whenever private headers were imported because the headers were being copied to a new location.
…ort for IPA building with Xcode 4.
…ommand. Xcode 4 places an extra folder named "ArchiveIntermediates" in the path when doing an Archive build. Before this change, this would cause the Protect script to fail when doing an Archive build because we weren't stepping up far enough in the directory tree.
When using openURLFromButton: we will likely be calling this from a UIBarButtonItem object, which isn't a descendant of the UIView class. We return the global navigator because there's no simple way to determine the class from the bar button item. This is a trade-off of ease-of-use over proper functionality here. If you want to get a UIBarButtonItem to open a specific navigator, handle the button tapped method yourself and get the correct navigator.