xcconfigs now embedded. Xcode 7 now required.

Switched to embedded xcconfigs, with a script to update them.
Xcode 7 suggested fixes. Xcode 7 now required.
More versatile activity indicator in tiramisu.
Remove git submodule stuff from tiramisu.
This commit is contained in:
Tim Clem
2015-09-15 17:28:04 -04:00
parent 17326fdf8f
commit 7ae1bb977f
49 changed files with 785 additions and 96 deletions

View File

@@ -1,4 +1,5 @@
language: objective-c
osx_image: xcode7
env:
global:

View File

@@ -54,13 +54,14 @@
BD304C8218E77F7E0034105E /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; };
BD35136419BE274A00A19841 /* CRBSConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CRBSConstants.h; sourceTree = "<group>"; };
BD35136519BE274A00A19841 /* CRBSConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CRBSConstants.m; sourceTree = "<group>"; };
BD3570BB19929359006C5409 /* CrushBootstrap-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Debug.xcconfig"; sourceTree = "<group>"; };
BD3570BC199293C2006C5409 /* CrushBootstrap-Profile.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Profile.xcconfig"; sourceTree = "<group>"; };
BD3570BD19929436006C5409 /* CrushBootstrap-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Release.xcconfig"; sourceTree = "<group>"; };
BD49EA2C18EC842B00F73350 /* CrushBootstrap-Environment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CrushBootstrap-Environment.h"; sourceTree = "<group>"; };
BD4E49501B8AC7BE004C140F /* CrushBootstrap-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Debug.xcconfig"; sourceTree = "<group>"; };
BD4E49511B8AC7BE004C140F /* CrushBootstrap-Profile.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Profile.xcconfig"; sourceTree = "<group>"; };
BD4E49521B8AC7BE004C140F /* CrushBootstrap-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Release.xcconfig"; sourceTree = "<group>"; };
BD4E49531B8AC7BE004C140F /* CrushBootstrap-Test.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Test.xcconfig"; sourceTree = "<group>"; };
BD4E49541B8AC7BE004C140F /* CrushBootstrap.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = CrushBootstrap.xcconfig; sourceTree = "<group>"; };
BD4E49731B8AC7DC004C140F /* jspahrsummers-xcconfigs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "jspahrsummers-xcconfigs"; sourceTree = "<group>"; };
BD574AFE18EA481500EDD66F /* CrushBootstrap-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CrushBootstrap-Prefix.pch"; sourceTree = "<group>"; };
BD574AFF18EA481500EDD66F /* CrushBootstrap-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CrushBootstrap-Test.xcconfig"; sourceTree = "<group>"; };
BD574B0018EA481500EDD66F /* CrushBootstrap.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CrushBootstrap.xcconfig; sourceTree = "<group>"; };
BD6951CE18EA4B0800F2F410 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
BD6951EA18EA54A800F2F410 /* CrushBootstrap-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CrushBootstrap-Info.plist"; sourceTree = "<group>"; };
BD934CD019C211F600B48551 /* AssetCatalogIdentifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssetCatalogIdentifiers.h; sourceTree = "<group>"; };
@@ -138,6 +139,19 @@
path = Resources;
sourceTree = "<group>";
};
BD4E494F1B8AC7BE004C140F /* Configuration */ = {
isa = PBXGroup;
children = (
BD4E49731B8AC7DC004C140F /* jspahrsummers-xcconfigs */,
BD4E49501B8AC7BE004C140F /* CrushBootstrap-Debug.xcconfig */,
BD4E49511B8AC7BE004C140F /* CrushBootstrap-Profile.xcconfig */,
BD4E49521B8AC7BE004C140F /* CrushBootstrap-Release.xcconfig */,
BD4E49531B8AC7BE004C140F /* CrushBootstrap-Test.xcconfig */,
BD4E49541B8AC7BE004C140F /* CrushBootstrap.xcconfig */,
);
path = Configuration;
sourceTree = "<group>";
};
BD574AFA18EA47FA00EDD66F /* Library */ = {
isa = PBXGroup;
children = (
@@ -155,15 +169,11 @@
BD574AFC18EA481500EDD66F /* Other Sources */ = {
isa = PBXGroup;
children = (
BD4E494F1B8AC7BE004C140F /* Configuration */,
BD934CCF19C211F600B48551 /* Generated */,
BD35136419BE274A00A19841 /* CRBSConstants.h */,
BD35136519BE274A00A19841 /* CRBSConstants.m */,
BD6951EA18EA54A800F2F410 /* CrushBootstrap-Info.plist */,
BD574B0018EA481500EDD66F /* CrushBootstrap.xcconfig */,
BD3570BB19929359006C5409 /* CrushBootstrap-Debug.xcconfig */,
BD574AFF18EA481500EDD66F /* CrushBootstrap-Test.xcconfig */,
BD3570BC199293C2006C5409 /* CrushBootstrap-Profile.xcconfig */,
BD3570BD19929436006C5409 /* CrushBootstrap-Release.xcconfig */,
BD49EA2C18EC842B00F73350 /* CrushBootstrap-Environment.h */,
);
name = "Other Sources";
@@ -327,7 +337,7 @@
isa = PBXProject;
attributes = {
CLASSPREFIX = CRBS;
LastUpgradeCheck = 0700;
LastUpgradeCheck = 0710;
ORGANIZATIONNAME = "Crush & Lovely";
TargetAttributes = {
BDDB997218C3943B003EBC42 = {
@@ -548,8 +558,9 @@
/* Begin XCBuildConfiguration section */
BD49EA2018EC611D00F73350 /* Debug_Production */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BB19929359006C5409 /* CrushBootstrap-Debug.xcconfig */;
baseConfigurationReference = BD4E49501B8AC7BE004C140F /* CrushBootstrap-Debug.xcconfig */;
buildSettings = {
ENABLE_TESTABILITY = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -563,9 +574,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .prod;
BUNDLE_NAME_SUFFIX = " (Prod)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug_Production;
@@ -583,6 +596,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -591,7 +605,7 @@
};
BD49EA2318EC612E00F73350 /* Test_Production */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD574AFF18EA481500EDD66F /* CrushBootstrap-Test.xcconfig */;
baseConfigurationReference = BD4E49531B8AC7BE004C140F /* CrushBootstrap-Test.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
@@ -606,9 +620,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .prod;
BUNDLE_NAME_SUFFIX = " (Prod)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Test_Production;
@@ -626,6 +642,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -634,12 +651,11 @@
};
BD49EA2618EC614F00F73350 /* AdHoc_Production */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BD19929436006C5409 /* CrushBootstrap-Release.xcconfig */;
baseConfigurationReference = BD4E49521B8AC7BE004C140F /* CrushBootstrap-Release.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = AdHoc_Production;
};
@@ -650,10 +666,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .prod;
BUNDLE_NAME_SUFFIX = " (Prod)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_IDENTITY = "iPhone Distribution";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = AdHoc_Production;
@@ -671,6 +688,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -679,12 +697,11 @@
};
BD49EA2918EC62DD00F73350 /* Profile_Production */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BC199293C2006C5409 /* CrushBootstrap-Profile.xcconfig */;
baseConfigurationReference = BD4E49511B8AC7BE004C140F /* CrushBootstrap-Profile.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile_Production;
};
@@ -695,9 +712,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .prod;
BUNDLE_NAME_SUFFIX = " (Prod)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile_Production;
@@ -715,6 +734,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -723,12 +743,11 @@
};
BDD67CDB18DFAB85008ECBBD /* AdHoc_Staging */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BD19929436006C5409 /* CrushBootstrap-Release.xcconfig */;
baseConfigurationReference = BD4E49521B8AC7BE004C140F /* CrushBootstrap-Release.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = AdHoc_Staging;
};
@@ -739,10 +758,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .staging;
BUNDLE_NAME_SUFFIX = " (Staging)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_IDENTITY = "iPhone Distribution";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = AdHoc_Staging;
@@ -760,6 +780,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -768,8 +789,9 @@
};
BDDB998218C3943B003EBC42 /* Debug_Staging */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BB19929359006C5409 /* CrushBootstrap-Debug.xcconfig */;
baseConfigurationReference = BD4E49501B8AC7BE004C140F /* CrushBootstrap-Debug.xcconfig */;
buildSettings = {
ENABLE_TESTABILITY = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -778,12 +800,11 @@
};
BDDB998318C3943B003EBC42 /* Distribution */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BD19929436006C5409 /* CrushBootstrap-Release.xcconfig */;
baseConfigurationReference = BD4E49521B8AC7BE004C140F /* CrushBootstrap-Release.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Distribution;
};
@@ -794,9 +815,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .staging;
BUNDLE_NAME_SUFFIX = " (Staging)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug_Staging;
@@ -808,10 +831,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = "";
BUNDLE_NAME_SUFFIX = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_IDENTITY = "iPhone Distribution";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Distribution;
@@ -829,6 +853,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -848,6 +873,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -856,12 +882,11 @@
};
BDF1757A18C3986D008BD9C6 /* Profile_Staging */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD3570BC199293C2006C5409 /* CrushBootstrap-Profile.xcconfig */;
baseConfigurationReference = BD4E49511B8AC7BE004C140F /* CrushBootstrap-Profile.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile_Staging;
};
@@ -872,9 +897,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .staging;
BUNDLE_NAME_SUFFIX = " (Staging)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile_Staging;
@@ -892,6 +919,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -900,7 +928,7 @@
};
BDF1757D18C39BD3008BD9C6 /* Test_Staging */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BD574AFF18EA481500EDD66F /* CrushBootstrap-Test.xcconfig */;
baseConfigurationReference = BD4E49531B8AC7BE004C140F /* CrushBootstrap-Test.xcconfig */;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
@@ -915,9 +943,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
BUNDLE_ID_SUFFIX = .staging;
BUNDLE_NAME_SUFFIX = " (Staging)";
CODE_SIGN_IDENTITY = "iPhone Developer";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CrushBootstrap/Application/CrushBootstrap-Prefix.pch";
INFOPLIST_FILE = "CrushBootstrap/Other-Sources/CrushBootstrap-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Test_Staging;
@@ -935,6 +965,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
INFOPLIST_FILE = "Specs/Specs-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "com.crushlovely.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14E26a" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="ZPG-ZS-ETB">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9046" systemVersion="15A282b" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="ZPG-ZS-ETB">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9035"/>
</dependencies>
<scenes>
<!--View Controller-->
@@ -15,6 +16,7 @@
<view key="view" contentMode="scaleToFill" id="bIH-hW-8tY">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
</viewController>

View File

@@ -0,0 +1,5 @@
// Build settings for debug builds.
#include "jspahrsummers-xcconfigs/iOS/iOS-Application.xcconfig"
#include "jspahrsummers-xcconfigs/Base/Configurations/Debug.xcconfig"
#include "CrushBootstrap.xcconfig"

View File

@@ -0,0 +1,7 @@
// Build settings for profile builds.
#include "jspahrsummers-xcconfigs/iOS/iOS-Application.xcconfig"
#include "jspahrsummers-xcconfigs/Base/Configurations/Profile.xcconfig"
#include "CrushBootstrap.xcconfig"
ONLY_ACTIVE_ARCH = YES

View File

@@ -0,0 +1,5 @@
// Build settings for ad-hoc and app store builds.
#include "jspahrsummers-xcconfigs/iOS/iOS-Application.xcconfig"
#include "jspahrsummers-xcconfigs/Base/Configurations/Release.xcconfig"
#include "CrushBootstrap.xcconfig"

View File

@@ -0,0 +1,6 @@
// Build settings for testing builds.
#include "jspahrsummers-xcconfigs/iOS/iOS-Application.xcconfig"
#include "jspahrsummers-xcconfigs/Base/Configurations/Test.xcconfig"
#include "CrushBootstrap.xcconfig"

View File

@@ -15,5 +15,5 @@ CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
WARNING_CFLAGS[config=*] = $(inherited) -Wall -Wextra -Wno-unused-parameter -Wno-unknown-warning-option
// Tone down xcconfigs a touch:
// Tone down jpahrsummers-xcconfigs a touch:
GCC_TREAT_WARNINGS_AS_ERRORS = NO

View File

@@ -0,0 +1 @@
Carthage/Build

View File

@@ -0,0 +1,174 @@
//
// This file defines common settings that should be enabled for every new
// project. Typically, you want to use Debug, Release, or a similar variant
// instead.
//
// Disable legacy-compatible header searching
ALWAYS_SEARCH_USER_PATHS = NO
// Architectures to build
ARCHS = $(ARCHS_STANDARD)
// Whether to warn when a floating-point value is used as a loop counter
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
// Whether to warn about use of rand() and random() being used instead of arc4random()
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
// Whether to warn about strcpy() and strcat()
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
// Whether to enable module imports
CLANG_ENABLE_MODULES = YES
// Enable ARC
CLANG_ENABLE_OBJC_ARC = YES
// Warn about implicit conversions to boolean values that are suspicious.
// For example, writing 'if (foo)' with 'foo' being the name a function will trigger a warning.
CLANG_WARN_BOOL_CONVERSION = YES
// Warn about implicit conversions of constant values that cause the constant value to change,
// either through a loss of precision, or entirely in its meaning.
CLANG_WARN_CONSTANT_CONVERSION = YES
// Whether to warn when overriding deprecated methods
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
// Warn about direct accesses to the Objective-C 'isa' pointer instead of using a runtime API.
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
// Warn about declaring the same method more than once within the same @interface.
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
// Warn about loop bodies that are suspiciously empty.
CLANG_WARN_EMPTY_BODY = YES
// Warn about implicit conversions between different kinds of enum values.
// For example, this can catch issues when using the wrong enum flag as an argument to a function or method.
CLANG_WARN_ENUM_CONVERSION = YES
// Whether to warn on implicit conversions between signed/unsigned types
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO
// Warn about implicit conversions between pointers and integers.
// For example, this can catch issues when one incorrectly intermixes using NSNumbers and raw integers.
CLANG_WARN_INT_CONVERSION = YES
// Don't warn about repeatedly using a weak reference without assigning the weak reference to a strong reference. Too many false positives.
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = NO
// Warn about classes that unintentionally do not subclass a root class (such as NSObject).
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
// Whether to warn on suspicious implicit conversions
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
// Warn about potentially unreachable code
CLANG_WARN_UNREACHABLE_CODE = YES
// The format of debugging symbols
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
// Whether to compile assertions in
ENABLE_NS_ASSERTIONS = YES
// Whether to require objc_msgSend to be cast before invocation
ENABLE_STRICT_OBJC_MSGSEND = YES
// Which C variant to use
GCC_C_LANGUAGE_STANDARD = gnu99
// Whether to enable exceptions for Objective-C
GCC_ENABLE_OBJC_EXCEPTIONS = YES
// Whether to generate debugging symbols
GCC_GENERATE_DEBUGGING_SYMBOLS = YES
// Whether to precompile the prefix header (if one is specified)
GCC_PRECOMPILE_PREFIX_HEADER = YES
// Whether to enable strict aliasing, meaning that two pointers of different
// types (other than void * or any id type) cannot point to the same memory
// location
GCC_STRICT_ALIASING = YES
// Whether symbols not explicitly exported are hidden by default (this primarily
// only affects C++ code)
GCC_SYMBOLS_PRIVATE_EXTERN = NO
// Whether static variables are thread-safe by default
GCC_THREADSAFE_STATICS = NO
// Which compiler to use
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
// Whether warnings are treated as errors
GCC_TREAT_WARNINGS_AS_ERRORS = YES
// Whether to warn about 64-bit values being implicitly shortened to 32 bits
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
// Whether to warn about fields missing from structure initializers (only if
// designated initializers aren't used)
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
// Whether to warn about missing function prototypes
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO
// Whether to warn about implicit conversions in the signedness of the type
// a pointer is pointing to (e.g., 'int *' getting converted to 'unsigned int *')
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES
// Whether to warn when the value returned from a function/method/block does not
// match its return type
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
// Whether to warn on a class not implementing all the required methods of
// a protocol it declares conformance to
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
// Whether to warn when switching on an enum value, and all possibilities are
// not accounted for
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES
// Whether to warn about the use of four-character constants
GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES
// Whether to warn about an aggregate data type's initializer not being fully
// bracketed (e.g., array initializer syntax)
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
// Whether to warn about missing braces or parentheses that make the meaning of
// the code ambiguous
GCC_WARN_MISSING_PARENTHESES = YES
// Whether to warn about unsafe comparisons between values of different
// signedness
GCC_WARN_SIGN_COMPARE = YES
// Whether to warn about the arguments to printf-style functions not matching
// the format specifiers
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
// Warn if a "@selector(...)" expression referring to an undeclared selector is found
GCC_WARN_UNDECLARED_SELECTOR = YES
// Warn if a variable might be clobbered by a setjmp call or if an automatic variable is used without prior initialization.
GCC_WARN_UNINITIALIZED_AUTOS = YES
// Whether to warn about static functions that are unused
GCC_WARN_UNUSED_FUNCTION = YES
// Whether to warn about labels that are unused
GCC_WARN_UNUSED_LABEL = YES
// Whether to warn about variables that are never used
GCC_WARN_UNUSED_VARIABLE = YES
// Whether to run the static analyzer with every build
RUN_CLANG_STATIC_ANALYZER = YES
// Don't treat unknown warnings as errors, and disable GCC compatibility warnings and unused static const variable warnings
WARNING_CFLAGS = -Wno-error=unknown-warning-option -Wno-gcc-compat -Wno-unused-const-variable -Wno-nullability-completeness

View File

@@ -0,0 +1,43 @@
//
// This file defines the base configuration for a Debug build of any project.
// This should be set at the project level for the Debug configuration.
//
#include "../Common.xcconfig"
// Whether to strip debugging symbols when copying resources (like included
// binaries)
COPY_PHASE_STRIP = NO
// The optimization level (0, 1, 2, 3, s) for the produced binary
GCC_OPTIMIZATION_LEVEL = 0
// Preproccessor definitions to apply to each file compiled
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
// Whether to enable link-time optimizations (such as inlining across translation
// units)
LLVM_LTO = NO
// Whether to only build the active architecture
ONLY_ACTIVE_ARCH = YES
// Other compiler flags
//
// These settings catch some errors in integer arithmetic
OTHER_CFLAGS = -ftrapv
// Other flags to pass to the Swift compiler
//
// This enables conditional compilation with #if DEBUG
OTHER_SWIFT_FLAGS = -D DEBUG
// Whether to strip debugging symbols when copying the built product to its
// final installation location
STRIP_INSTALLED_PRODUCT = NO
// The optimization level (-Onone, -O, -Ofast) for the produced Swift binary
SWIFT_OPTIMIZATION_LEVEL = -Onone
// Disable Developer ID timestamping
OTHER_CODE_SIGN_FLAGS = --timestamp=none

View File

@@ -0,0 +1,27 @@
//
// This file defines the base configuration for an optional profiling-specific
// build of any project. To use these settings, create a Profile configuration
// in your project, and use this file at the project level for the new
// configuration.
//
// based on the Release configuration, with some stuff related to debugging
// symbols re-enabled
#include "Release.xcconfig"
// Whether to strip debugging symbols when copying resources (like included
// binaries)
COPY_PHASE_STRIP = NO
// Whether to only build the active architecture
ONLY_ACTIVE_ARCH = YES
// Whether to strip debugging symbols when copying the built product to its
// final installation location
STRIP_INSTALLED_PRODUCT = NO
// Whether to perform App Store validation checks
VALIDATE_PRODUCT = NO
// Disable Developer ID timestamping
OTHER_CODE_SIGN_FLAGS = --timestamp=none

View File

@@ -0,0 +1,34 @@
//
// This file defines the base configuration for a Release build of any project.
// This should be set at the project level for the Release configuration.
//
#include "../Common.xcconfig"
// Whether to strip debugging symbols when copying resources (like included
// binaries)
COPY_PHASE_STRIP = YES
// The optimization level (0, 1, 2, 3, s) for the produced binary
GCC_OPTIMIZATION_LEVEL = s
// Preproccessor definitions to apply to each file compiled
GCC_PREPROCESSOR_DEFINITIONS = NDEBUG=1
// Whether to enable link-time optimizations (such as inlining across translation
// units)
LLVM_LTO = NO
// Whether to only build the active architecture
ONLY_ACTIVE_ARCH = NO
// Whether to strip debugging symbols when copying the built product to its
// final installation location
STRIP_INSTALLED_PRODUCT = YES
// The optimization level (-Onone, -O, -Owholemodule) for the produced Swift binary
SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
// Whether to perform App Store validation checks
VALIDATE_PRODUCT = YES

View File

@@ -0,0 +1,10 @@
//
// This file defines the base configuration for a Test build of any project.
// This should be set at the project level for the Test configuration.
//
#include "Debug.xcconfig"
// Sandboxed apps can't be unit tested since they can't load some random
// external bundle. So we disable sandboxing for testing.
CODE_SIGN_ENTITLEMENTS =

View File

@@ -0,0 +1,12 @@
//
// This file defines additional configuration options that are appropriate only
// for an application. Typically, you want to use a platform-specific variant
// instead.
//
// Whether to strip out code that isn't called from anywhere
DEAD_CODE_STRIPPING = NO
// Sets the @rpath for the application such that it can include frameworks in
// the application bundle (inside the "Frameworks" folder)
LD_RUNPATH_SEARCH_PATHS = @executable_path/../Frameworks @loader_path/../Frameworks @executable_path/Frameworks

View File

@@ -0,0 +1,32 @@
//
// This file defines additional configuration options that are appropriate only
// for a framework. Typically, you want to use a platform-specific variant
// instead.
//
// Whether to strip out code that isn't called from anywhere
DEAD_CODE_STRIPPING = NO
// Whether this framework should define an LLVM module
DEFINES_MODULE = YES
// Whether function calls should be position-dependent (should always be
// disabled for library code)
GCC_DYNAMIC_NO_PIC = NO
// Default frameworks to the name of the project, instead of any
// platform-specific target
PRODUCT_NAME = $(PROJECT_NAME)
// Enables the framework to be included from any location as long as the
// loaders runpath search paths includes it. For example from an application
// bundle (inside the "Frameworks" folder) or shared folder
INSTALL_PATH = @rpath
LD_DYLIB_INSTALL_NAME = @rpath/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/$(PRODUCT_NAME)
SKIP_INSTALL = YES
// Disallows use of APIs that are not available
// to app extensions and linking to frameworks
// that have not been built with this setting enabled.
APPLICATION_EXTENSION_API_ONLY = YES

View File

@@ -0,0 +1,32 @@
//
// This file defines additional configuration options that are appropriate only
// for a static library. Typically, you want to use a platform-specific variant
// instead.
//
// Whether to strip out code that isn't called from anywhere
DEAD_CODE_STRIPPING = NO
// Whether to strip debugging symbols when copying resources (like included
// binaries).
//
// Overrides Release.xcconfig when used at the target level.
COPY_PHASE_STRIP = NO
// Whether function calls should be position-dependent (should always be
// disabled for library code)
GCC_DYNAMIC_NO_PIC = NO
// Copy headers to "include/LibraryName" in the build folder by default. This
// lets consumers use #import <LibraryName/LibraryName.h> syntax even for static
// libraries
PUBLIC_HEADERS_FOLDER_PATH = include/$PRODUCT_NAME
// Don't include in an xcarchive
SKIP_INSTALL = YES
// Disallows use of APIs that are not available
// to app extensions and linking to frameworks
// that have not been built with this setting enabled.
APPLICATION_EXTENSION_API_ONLY = YES

View File

@@ -0,0 +1,15 @@
//
// This file defines additional configuration options that are appropriate only
// for an application on Mac OS X. This should be set at the target level for
// each project configuration.
//
// Import base application settings
#include "../Base/Targets/Application.xcconfig"
// Apply common settings specific to Mac OS X
#include "Mac-Base.xcconfig"
// Whether function calls should be position-dependent (should always be
// disabled for library code)
GCC_DYNAMIC_NO_PIC = YES

View File

@@ -0,0 +1,19 @@
//
// This file defines additional configuration options that are appropriate only
// for Mac OS X. This file is not standalone -- it is meant to be included into
// a configuration file for a specific type of target.
//
// Whether to combine multiple image resolutions into a multirepresentational
// TIFF
COMBINE_HIDPI_IMAGES = YES
// Where to find embedded frameworks
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @loader_path/../Frameworks
// The base SDK to use (if no version is specified, the latest version is
// assumed)
SDKROOT = macosx
// Supported build architectures
VALID_ARCHS = x86_64

View File

@@ -0,0 +1,18 @@
//
// This file defines additional configuration options that are appropriate only
// for a dynamic library on Mac OS X. This should be set at the target level
// for each project configuration.
//
// Import common settings specific to Mac OS X
#include "Mac-Base.xcconfig"
// Whether to strip out code that isn't called from anywhere
DEAD_CODE_STRIPPING = NO
// Whether function calls should be position-dependent (should always be
// disabled for library code)
GCC_DYNAMIC_NO_PIC = NO
// Don't include in an xcarchive
SKIP_INSTALL = YES

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for a framework on OS X. This should be set at the target level for each
// project configuration.
//
// Import base framework settings
#include "../Base/Targets/Framework.xcconfig"
// Import common settings specific to Mac OS X
#include "Mac-Base.xcconfig"

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for a static library on Mac OS X. This should be set at the target level for
// each project configuration.
//
// Import base static library settings
#include "../Base/Targets/StaticLibrary.xcconfig"
// Apply common settings specific to Mac OS X
#include "Mac-Base.xcconfig"

View File

@@ -0,0 +1,13 @@
This project intends to aggregate common or universal Xcode configuration settings, keeping them in hierarchial Xcode configuration files for easy modification and reuse.
## License
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to [unlicense.org](http://unlicense.org).

View File

@@ -0,0 +1,43 @@
#!/bin/bash
set -e
if [ "$1" == "-q" ]; then
QUIET=true
CURL_QUIET_OPT=s
else
QUIET=false
CURL_QUIET_OPT=
fi
say() {
$QUIET || echo $*
}
cd "$(dirname "$0")"
say "Grabbing latest xcconfigs..."
curl -fSL#$CURL_QUIET_OPT 'https://github.com/jspahrsummers/xcconfigs/archive/master.zip' | tar xz --strip-components=1
# No commit checking stuff in quiet mode
$QUIET && exit 0
porcelain_status=$(git status --porcelain .)
if [ -n "$porcelain_status" ]; then
printf "There were updates! Would you like to commit them [Y/n]? "
REPLY=dummy
until [ -z "$REPLY" -o "$REPLY" == "y" -o "$REPLY" == "n" -o "$REPLY" == "Y" -o "$REPLY" == "N" ]; do
read -n1 -s
done
[ -z "$REPLY" ] && REPLY=y
echo $REPLY
if [ "$REPLY" == "y" -o "$REPLY" == "Y" ]; then
git add .
git commit . -m "Update xcconfigs"
fi
fi

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for an application on iOS. This should be set at the target level for each
// project configuration.
//
// Import base application settings
#include "../Base/Targets/Application.xcconfig"
// Apply common settings specific to iOS
#include "iOS-Base.xcconfig"

View File

@@ -0,0 +1,15 @@
//
// This file defines additional configuration options that are appropriate only
// for iOS. This file is not standalone -- it is meant to be included into
// a configuration file for a specific type of target.
//
// Xcode needs this to find archived headers if SKIP_INSTALL is set
HEADER_SEARCH_PATHS = $(OBJROOT)/UninstalledProducts/include
// Where to find embedded frameworks
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
// The base SDK to use (if no version is specified, the latest version is
// assumed)
SDKROOT = iphoneos

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for a framework on iOS. This should be set at the target level for each
// project configuration.
//
// Import base framework settings
#include "../Base/Targets/Framework.xcconfig"
// Import common settings specific to iOS
#include "iOS-Base.xcconfig"

View File

@@ -0,0 +1,14 @@
//
// This file defines additional configuration options that are appropriate only
// for a static library on iOS. This should be set at the target level for each
// project configuration.
//
// Import base static library settings
#include "../Base/Targets/StaticLibrary.xcconfig"
// Apply common settings specific to iOS
#include "iOS-Base.xcconfig"
// Supported device families (1 is iPhone, 2 is iPad)
TARGETED_DEVICE_FAMILY = 1,2

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for an application on watchOS. This should be set at the target level for
// each project configuration.
//
// Import base application settings
#include "../Base/Targets/Application.xcconfig"
// Apply common settings specific to watchOS
#include "tvOS-Base.xcconfig"

View File

@@ -0,0 +1,12 @@
//
// This file defines additional configuration options that are appropriate only
// for watchOS. This file is not standalone -- it is meant to be included into
// a configuration file for a specific type of target.
//
// Where to find embedded frameworks
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
// The base SDK to use (if no version is specified, the latest version is
// assumed)
SDKROOT = appletvos

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for a framework on watchOS. This should be set at the target level for each
// project configuration.
//
// Import base framework settings
#include "../Base/Targets/Framework.xcconfig"
// Import common settings specific to iOS
#include "tvOS-Base.xcconfig"

View File

@@ -0,0 +1,14 @@
//
// This file defines additional configuration options that are appropriate only
// for a static library on watchOS. This should be set at the target level for
// each project configuration.
//
// Import base static library settings
#include "../Base/Targets/StaticLibrary.xcconfig"
// Apply common settings specific to watchOS
#include "tvOS-Base.xcconfig"
// Supported device families
TARGETED_DEVICE_FAMILY = 3

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for an application on watchOS. This should be set at the target level for
// each project configuration.
//
// Import base application settings
#include "../Base/Targets/Application.xcconfig"
// Apply common settings specific to watchOS
#include "watchOS-Base.xcconfig"

View File

@@ -0,0 +1,12 @@
//
// This file defines additional configuration options that are appropriate only
// for watchOS. This file is not standalone -- it is meant to be included into
// a configuration file for a specific type of target.
//
// Where to find embedded frameworks
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
// The base SDK to use (if no version is specified, the latest version is
// assumed)
SDKROOT = watchos

View File

@@ -0,0 +1,11 @@
//
// This file defines additional configuration options that are appropriate only
// for a framework on watchOS. This should be set at the target level for each
// project configuration.
//
// Import base framework settings
#include "../Base/Targets/Framework.xcconfig"
// Import common settings specific to iOS
#include "watchOS-Base.xcconfig"

View File

@@ -0,0 +1,14 @@
//
// This file defines additional configuration options that are appropriate only
// for a static library on watchOS. This should be set at the target level for
// each project configuration.
//
// Import base static library settings
#include "../Base/Targets/StaticLibrary.xcconfig"
// Apply common settings specific to watchOS
#include "watchOS-Base.xcconfig"
// Supported device families
TARGETED_DEVICE_FAMILY = 4

View File

@@ -1,5 +0,0 @@
// Build settings for debug builds.
#include "../../External/xcconfigs/iOS/iOS-Application.xcconfig"
#include "../../External/xcconfigs/Base/Configurations/Debug.xcconfig"
#include "CrushBootstrap.xcconfig"

View File

@@ -9,7 +9,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>com.crushlovely.${PRODUCT_NAME:rfc1034identifier:lower}${BUNDLE_ID_SUFFIX}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>

View File

@@ -1,7 +0,0 @@
// Build settings for profile builds.
#include "../../External/xcconfigs/iOS/iOS-Application.xcconfig"
#include "../../External/xcconfigs/Base/Configurations/Profile.xcconfig"
#include "CrushBootstrap.xcconfig"
ONLY_ACTIVE_ARCH = YES

View File

@@ -1,5 +0,0 @@
// Build settings for ad-hoc and app store builds.
#include "../../External/xcconfigs/iOS/iOS-Application.xcconfig"
#include "../../External/xcconfigs/Base/Configurations/Release.xcconfig"
#include "CrushBootstrap.xcconfig"

View File

@@ -1,9 +0,0 @@
// Build settings for testing builds.
#include "../../External/xcconfigs/iOS/iOS-Application.xcconfig"
#include "../../External/xcconfigs/Base/Configurations/Test.xcconfig"
#include "CrushBootstrap.xcconfig"
// Instrument for code coverage:
GCC_GENERATE_TEST_COVERAGE_FILES = YES
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E26a" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9046" systemVersion="15A282b" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9035"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<customFonts key="customFonts">
@@ -18,18 +19,21 @@
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CrushBootstrap" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="127" width="441" height="68.5"/>
<animations/>
<fontDescription key="fontDescription" name="Avenir-Book" family="Avenir" pointSize="50"/>
<color key="textColor" red="0.42655369640000002" green="0.475846082" blue="0.4802647531" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xeu-ur-NBg">
<rect key="frame" x="107.5" y="204" width="265" height="2"/>
<animations/>
<color key="backgroundColor" red="0.90114599470000001" green="0.87520819900000002" blue="0.78629982470000004" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="2" id="77m-XU-8sP"/>
</constraints>
</view>
</subviews>
<animations/>
<color key="backgroundColor" red="0.90823972230000005" green="0.92638683320000004" blue="0.93171715740000005" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerX" secondItem="xeu-ur-NBg" secondAttribute="centerX" constant="0.5" id="DxL-RJ-cWc"/>

View File

@@ -2,7 +2,7 @@ source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
# Crush Utility Belt
pod 'Sidecar', :path => '~/dev/Sidecar'
pod 'Sidecar', '~> 1.0'
# Logging & Analytics
pod 'CocoaLumberjack', '~> 2.0'

View File

@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>com.crushlovely.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>

View File

@@ -27,8 +27,5 @@ send -h "n\r"
set timeout 500
expect -re "Would you like to set up .*? "
send -h "n\r"
expect -re "Would you like to open *? "
send -h "n\r"

View File

@@ -72,7 +72,7 @@ module AmaroUtils
has_changes = anything_to_commit?
if error_if_nothing_to_commit && !has_changes
raise AmaroError('Repository Error', 'There should be something to commit at this point, but there\'s not!')
raise AmaroError.new('Repository Error', 'There should be something to commit at this point, but there\'s not!')
elsif has_changes
sh("git commit -q -m '[Amaro] #{message}'")
end
@@ -84,7 +84,11 @@ module AmaroUtils
end
def task(message, failure_is_fatal: true)
print "#{message}...".blue.bold
print "#{message}... ".blue.bold
system('tput sc')
recall_cursor = `tput rc`
clear_to_end_of_line = `tput el`
chars = %w(⣻ ⢿ ⡿ ⣟ ⣯ ⣷ ⣾ ⣽)
bg_thread = Thread.new do
@@ -95,7 +99,7 @@ module AmaroUtils
loop do
sleep 0.1
i = (i + 1) % chars.length
print "\b#{chars[i]}"
print "#{recall_cursor}#{chars[i]}#{clear_to_end_of_line}"
end
ensure
system('tput cnorm')
@@ -103,25 +107,16 @@ module AmaroUtils
end
begin
bg_thread.run
bg_thread.run if STDIN.isatty && !ENV['AMARO_EXPECT']
yield
rescue AmaroError => e
puts "\b 💀"
puts "#{recall_cursor}💀#{clear_to_end_of_line}"
die(e.message, e.details, :fatal => failure_is_fatal)
else
puts "\b 👍 "
puts "#{recall_cursor}👍#{clear_to_end_of_line}"
ensure
bg_thread.kill
end
# begin
# yield
# rescue AmaroError => e
# puts ' 💀'
# die(e.message, e.details, :fatal => failure_is_fatal)
# else
# puts ' 👍'
# end
end
def replace_in_files(file_list, pattern, replacement)
@@ -423,7 +418,7 @@ class Bootstrapper
REPLACEMENT_ORGANIZATION = 'Crush & Lovely'
REPLACEMENT_DOMAIN = 'com.crushlovely'
BOOTSTRAP_REPO = 'git://github.com/crushlovely/Amaro.git'
BOOTSTRAP_REPO = 'https://github.com/crushlovely/Amaro.git'
DEFAULT_BOOTSTRAP_BRANCH = 'master'
BOOTSTRAP_WEBSITE = 'https://github.com/crushlovely/Amaro'
@@ -434,7 +429,8 @@ class Bootstrapper
init_git
rename_files
update_contents
init_externals
update_xcconfigs
install_pods
remove_bootstrap_detritus
end
@@ -448,10 +444,14 @@ class Bootstrapper
sh('which -s pod', 'CocoaPods is not installed. See http://cocoapods.org/#install', :show_output_on_error => false)
pod_version = sh('pod --version', 'Error getting CocoaPods version. Make sure the pod binary is functional.').strip
version_is_good = Gem::Dependency.new('pod', '>0.34.0').match?('pod', pod_version)
raise AmaroError.new("Amaro requires version 0.34.1 or later of CocoaPods. You have version #{pod_version}", 'Running "gem update cocoapods" should fix this.') unless version_is_good
pod_version_is_good = Gem::Dependency.new('pod', '>0.34.0').match?('pod', pod_version)
raise AmaroError.new("Amaro requires version 0.34.1 or later of CocoaPods. You have version #{pod_version}", 'Running "gem update cocoapods" should fix this.') unless pod_version_is_good
dev_tools_path = sh('xcode-select -p', 'The Xcode command line tools don\'t seem to be installed. Running "xcode-select --install" should fix that.', :show_output_on_error => false).strip
xcode_version = sh("/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' '#{dev_tools_path}/../Info.plist'").strip
xcode_version_is_good = Gem::Dependency.new('xcode', '~>7.0').match?('xcode', xcode_version)
raise AmaroError.new("Amaro requires the default Xcode command line tools to point to Xcode 7.0 or later. Yours point to #{xcode_version}.", 'Install Xcode 7.0 or later, and run "xcode-select" to point to that.') unless xcode_version_is_good
sh('xcode-select -p', 'The Xcode command line tools don\'t seem to be installed. Running "xcode-select --install" should fix that.', :show_output_on_error => false)
if ARGV.empty?
@source_path = nil
@@ -468,7 +468,7 @@ class Bootstrapper
def puts_source_description
if @source_path.nil?
puts 'Repository: '.gray.bold + Bootstrapper::BOOTSTRAP_REPO.gray
puts 'Repository: '.gray.bold + BOOTSTRAP_REPO.gray
puts 'Branch: '.gray.bold + @bootstrap_branch.gray
else
puts 'Using local clone: '.gray.bold + @source_path.gray
@@ -516,7 +516,7 @@ class Bootstrapper
task 'Cleaning up' do
# See issue #21
sh("git remote rm bootstrap")
sh('git remote rm bootstrap')
end
end
@@ -525,7 +525,6 @@ class Bootstrapper
# Note the trailing / appended to source_path. Otherwise rsync will put
# a copy of the directory inside the destination, rather than a copy of its contents.
sh("rsync -a '#{@source_path}/' . --exclude=/.git --exclude=/README.md")
sh("cp -R '#{@source_path}/.git/modules' .git/")
commit 'Bootstrapping'
sh('git clean -xdf') # Remove .gitignored files and directories
@@ -582,14 +581,30 @@ class Bootstrapper
end
end
def init_externals
def update_xcconfigs
task 'Pulling latest xcconfigs' do
sh("'%{project_name}/Other-Sources/Configuration/jspahrsummers-xcconfigs/UpdateXCConfigs.sh'" % options)
end
if anything_to_commit?
task 'Committing' do
commit 'Updated xcconfigs'
end
end
end
def install_pods
edit 'Podfile' if YesNoPrompt.run!('Would you like to edit your Podfile?', :default => false)
task 'Initializing submodules and CocoaPods' do
sh('git submodule -q update --init --recursive')
sh("git submodule --quiet foreach 'git checkout -q master'")
if anything_to_commit?
task 'Committing' do
commit 'Modified Podfile'
end
end
task 'Installing CocoaPods' do
sh('pod install --silent')
commit 'Install pods and submodules'
commit 'Install pods and update subtrees'
end
end