aboutsummaryrefslogtreecommitdiffhomepage
path: root/BuildFrameworks
diff options
context:
space:
mode:
authorGravatar Mathew Huusko V <mhuusko5@gmail.com>2017-06-02 18:42:17 +0100
committerGravatar Paul Beusterien <paulbeusterien@google.com>2017-06-02 10:42:17 -0700
commit5c59342e6e19989c012877362af529b3d5d0abeb (patch)
tree457f5da7c41ee45b8d3f55f83017fff2ab718781 /BuildFrameworks
parent6f700dd6c81711a8605c2587b4f2acfd4e07466b (diff)
macOS (#38)
* Example/Core: create macOS app/tests target * Example/Core: Core_Example/Tests -> Core_Example/Tests_iOS * Example/Core: macOS building/tests passing * Example/Database: separate iOS/macOS targets * BuildFrameworks: macOS * .travis.yml, test.sh: AllUnitTests -> AllUnitTests_iOS * test.sh: add AllUnitTests_macOS * Example/Storage: Example/Tests->_iOS * Example/Storage: macOS * test.sh: try to prevent double error 65 * test.sh: build before test * Example/Auth|Messaging: -> _iOS * Example/Auth: macOS build * Example/Auth: macOS passing * Example/Firebase: pod de/re-integrate; fix static DerivedData references; copy phase for OCMock * Example/Firebase: manually copied OCMock, Products Dir vs. Frameworks * Example/Firebase: copied OCMock, prevent header removal * Example/Storage: integration tests sdk fix * Example/Auth: macOS exclude FIRAuthAppCredentialManager; cleanup * Firebase/Core: remove nullability annotation * Firebase/Core|Database: correct TARGET_X usage for correctness and anticipation of OS_WATCH|TV branches * build.swift: style fix * Firebase/Core: FIRLogger: fix macOS intermittent va_list error
Diffstat (limited to 'BuildFrameworks')
-rw-r--r--BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj198
-rw-r--r--BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme91
-rw-r--r--BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme91
-rw-r--r--BuildFrameworks/Podfile14
-rwxr-xr-xBuildFrameworks/build.swift63
-rw-r--r--BuildFrameworks/iOS-Info.plist49
-rw-r--r--BuildFrameworks/macOS-Info.plist32
7 files changed, 498 insertions, 40 deletions
diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj b/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj
index a66077c..0c77c76 100644
--- a/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj
+++ b/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj
@@ -7,14 +7,24 @@
objects = {
/* Begin PBXBuildFile section */
- C8F75C1E8772455450E51C69 /* libPods-FrameworkMaker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */; };
+ 03BED32F297D77A489B80DBA /* libPods-FrameworkMaker_macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */; };
+ 621808027FC20B1A1B769E50 /* libPods-FrameworkMaker_iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker.release.xcconfig"; sourceTree = "<group>"; };
- 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS.release.xcconfig"; sourceTree = "<group>"; };
+ 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS.debug.xcconfig"; sourceTree = "<group>"; };
+ 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker_macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker_iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS.debug.xcconfig"; sourceTree = "<group>"; };
C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker.debug.xcconfig"; sourceTree = "<group>"; };
+ D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D013FA131ED9EC0B00FD68A9 /* iOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iOS-Info.plist"; sourceTree = "<group>"; };
+ D013FA141ED9EC1500FD68A9 /* macOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "macOS-Info.plist"; sourceTree = "<group>"; };
+ DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -22,7 +32,15 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C8F75C1E8772455450E51C69 /* libPods-FrameworkMaker.a in Frameworks */,
+ 621808027FC20B1A1B769E50 /* libPods-FrameworkMaker_iOS.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D013F9FC1ED9EB9900FD68A9 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 03BED32F297D77A489B80DBA /* libPods-FrameworkMaker_macOS.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -32,6 +50,8 @@
05A46BCE1CC9B2BE007BDB33 = {
isa = PBXGroup;
children = (
+ D013FA131ED9EC0B00FD68A9 /* iOS-Info.plist */,
+ D013FA141ED9EC1500FD68A9 /* macOS-Info.plist */,
05A46BD81CC9B2BE007BDB33 /* Products */,
AA03828B8B59297B5A3389B0 /* Pods */,
D3884AD1918E82D7FD21433D /* Frameworks */,
@@ -41,7 +61,8 @@
05A46BD81CC9B2BE007BDB33 /* Products */ = {
isa = PBXGroup;
children = (
- 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */,
+ 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */,
+ D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */,
);
name = Products;
sourceTree = "<group>";
@@ -51,6 +72,10 @@
children = (
C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */,
01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */,
+ 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */,
+ 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */,
+ B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */,
+ DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
@@ -59,6 +84,8 @@
isa = PBXGroup;
children = (
1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */,
+ AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */,
+ 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -66,9 +93,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker */ = {
+ 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker_iOS */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker" */;
+ buildConfigurationList = 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker_iOS" */;
buildPhases = (
AC1C2B143A86214CE77C9932 /* [CP] Check Pods Manifest.lock */,
05A46BD31CC9B2BE007BDB33 /* Sources */,
@@ -81,9 +108,29 @@
);
dependencies = (
);
- name = FrameworkMaker;
+ name = FrameworkMaker_iOS;
productName = FrameworkMaker;
- productReference = 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */;
+ productReference = 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */;
+ productType = "com.apple.product-type.application";
+ };
+ D013F9FE1ED9EB9900FD68A9 /* FrameworkMaker_macOS */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D013FA121ED9EB9900FD68A9 /* Build configuration list for PBXNativeTarget "FrameworkMaker_macOS" */;
+ buildPhases = (
+ 76A7EF97A6A2306CED685487 /* [CP] Check Pods Manifest.lock */,
+ D013F9FB1ED9EB9900FD68A9 /* Sources */,
+ D013F9FC1ED9EB9900FD68A9 /* Frameworks */,
+ D013F9FD1ED9EB9900FD68A9 /* Resources */,
+ 83F5D2024D97A1D542B7932F /* [CP] Embed Pods Frameworks */,
+ C712E44DB1FAE1B023552B35 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = FrameworkMaker_macOS;
+ productName = FrameworkMaker_macOS;
+ productReference = D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -98,6 +145,10 @@
05A46BD61CC9B2BE007BDB33 = {
CreatedOnToolsVersion = 7.3;
};
+ D013F9FE1ED9EB9900FD68A9 = {
+ CreatedOnToolsVersion = 8.3.2;
+ ProvisioningStyle = Automatic;
+ };
};
};
buildConfigurationList = 05A46BD21CC9B2BE007BDB33 /* Build configuration list for PBXProject "FrameworkMaker" */;
@@ -113,7 +164,8 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker */,
+ 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker_iOS */,
+ D013F9FE1ED9EB9900FD68A9 /* FrameworkMaker_macOS */,
);
};
/* End PBXProject section */
@@ -126,6 +178,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ D013F9FD1ED9EB9900FD68A9 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -141,7 +200,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker-frameworks.sh\"\n";
+ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
5040608D1004852F08A22A14 /* [CP] Copy Pods Resources */ = {
@@ -156,7 +215,37 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker-resources.sh\"\n";
+ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 76A7EF97A6A2306CED685487 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
+ showEnvVarsInLog = 0;
+ };
+ 83F5D2024D97A1D542B7932F /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
AC1C2B143A86214CE77C9932 /* [CP] Check Pods Manifest.lock */ = {
@@ -174,6 +263,21 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
+ C712E44DB1FAE1B023552B35 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -184,6 +288,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ D013F9FB1ED9EB9900FD68A9 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
@@ -224,7 +335,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -262,7 +374,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
@@ -271,25 +384,61 @@
};
05A46BEF1CC9B2BE007BDB33 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */;
+ baseConfigurationReference = 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- INFOPLIST_FILE = FrameworkMaker/Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/iOS-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = google.FrameworkMaker;
+ PRODUCT_BUNDLE_IDENTIFIER = "google.FrameworkMaker-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
05A46BF01CC9B2BE007BDB33 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */;
+ baseConfigurationReference = 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- INFOPLIST_FILE = FrameworkMaker/Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/iOS-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = google.FrameworkMaker;
+ PRODUCT_BUNDLE_IDENTIFIER = "google.FrameworkMaker-iOS";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ D013FA101ED9EB9900FD68A9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ COMBINE_HIDPI_IMAGES = YES;
+ INFOPLIST_FILE = "$(SRCROOT)/macOS-Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = "com.google.FrameworkMaker-macOS";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ D013FA111ED9EB9900FD68A9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ COMBINE_HIDPI_IMAGES = YES;
+ INFOPLIST_FILE = "$(SRCROOT)/macOS-Info.plist";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = "com.google.FrameworkMaker-macOS";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
};
name = Release;
};
@@ -305,7 +454,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker" */ = {
+ 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker_iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
05A46BEF1CC9B2BE007BDB33 /* Debug */,
@@ -314,6 +463,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ D013FA121ED9EB9900FD68A9 /* Build configuration list for PBXNativeTarget "FrameworkMaker_macOS" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D013FA101ED9EB9900FD68A9 /* Debug */,
+ D013FA111ED9EB9900FD68A9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = 05A46BCF1CC9B2BE007BDB33 /* Project object */;
diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme
new file mode 100644
index 0000000..2994deb
--- /dev/null
+++ b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "05A46BD61CC9B2BE007BDB33"
+ BuildableName = "FrameworkMaker_iOS.app"
+ BlueprintName = "FrameworkMaker_iOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "05A46BD61CC9B2BE007BDB33"
+ BuildableName = "FrameworkMaker_iOS.app"
+ BlueprintName = "FrameworkMaker_iOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "05A46BD61CC9B2BE007BDB33"
+ BuildableName = "FrameworkMaker_iOS.app"
+ BlueprintName = "FrameworkMaker_iOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "05A46BD61CC9B2BE007BDB33"
+ BuildableName = "FrameworkMaker_iOS.app"
+ BlueprintName = "FrameworkMaker_iOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme
new file mode 100644
index 0000000..dbe6579
--- /dev/null
+++ b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "D013F9FE1ED9EB9900FD68A9"
+ BuildableName = "FrameworkMaker_macOS.app"
+ BlueprintName = "FrameworkMaker_macOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "D013F9FE1ED9EB9900FD68A9"
+ BuildableName = "FrameworkMaker_macOS.app"
+ BlueprintName = "FrameworkMaker_macOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "D013F9FE1ED9EB9900FD68A9"
+ BuildableName = "FrameworkMaker_macOS.app"
+ BlueprintName = "FrameworkMaker_macOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "D013F9FE1ED9EB9900FD68A9"
+ BuildableName = "FrameworkMaker_macOS.app"
+ BlueprintName = "FrameworkMaker_macOS"
+ ReferencedContainer = "container:FrameworkMaker.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/BuildFrameworks/Podfile b/BuildFrameworks/Podfile
index e7bf344..1c44028 100644
--- a/BuildFrameworks/Podfile
+++ b/BuildFrameworks/Podfile
@@ -1,8 +1,8 @@
-platform :ios, '7.0'
-
project 'FrameworkMaker.xcodeproj'
-target 'FrameworkMaker' do
+target 'FrameworkMaker_iOS' do
+ platform :ios, '7.0'
+
pod 'FirebaseAuth', :path => '../Firebase/Auth'
pod 'FirebaseCore', :path => '../Firebase/Core'
pod 'FirebaseDatabase', :path => '../Firebase/Database'
@@ -10,3 +10,11 @@ target 'FrameworkMaker' do
pod 'FirebaseStorage', :path => '../Firebase/Storage'
end
+target 'FrameworkMaker_macOS' do
+ platform :osx, '10.10'
+
+ pod 'FirebaseAuth', :path => '../Firebase/Auth'
+ pod 'FirebaseCore', :path => '../Firebase/Core'
+ pod 'FirebaseDatabase', :path => '../Firebase/Database'
+ pod 'FirebaseStorage', :path => '../Firebase/Storage'
+end
diff --git a/BuildFrameworks/build.swift b/BuildFrameworks/build.swift
index 7bcda2f..8721ca6 100755
--- a/BuildFrameworks/build.swift
+++ b/BuildFrameworks/build.swift
@@ -33,11 +33,20 @@ func colorPrint(color: Colors, text: String) {
print(color.rawValue + text + "\u{001B}[0;0m")
}
-let allFrameworks = ["FirebaseAuth",
- "FirebaseCore",
- "FirebaseDatabase",
- "FirebaseMessaging",
- "FirebaseStorage"]
+enum Platform: String {
+ case iOS
+ case macOS
+ case tvOS
+ case watchOS
+}
+
+let allFrameworks: [String: [Platform]] = [
+ "FirebaseAuth": [.iOS, .macOS],
+ "FirebaseCore": [.iOS, .macOS],
+ "FirebaseDatabase": [.iOS, .macOS],
+ "FirebaseMessaging": [.iOS],
+ "FirebaseStorage": [.iOS, .macOS]
+]
let currentDirectoryURL = URL(fileURLWithPath: FileManager.default.currentDirectoryPath)
let url = URL(fileURLWithPath: CommandLine.arguments[0], relativeTo: currentDirectoryURL)
@@ -63,7 +72,7 @@ func processOptions() -> [String] {
colorPrint(color:Colors.red, text:"-all must be a solo option")
usage()
}
- doFrameworks = allFrameworks
+ doFrameworks = Array(allFrameworks.keys)
break whileLoop
case "-f":
optIndex += 1
@@ -72,7 +81,7 @@ func processOptions() -> [String] {
usage()
}
let framework = CommandLine.arguments[optIndex]
- guard allFrameworks.contains(framework) else {
+ guard allFrameworks.keys.contains(framework) else {
colorPrint(color:Colors.red, text:"\(framework) is not a valid framework")
usage()
}
@@ -110,17 +119,28 @@ func syncExec(command: String, args: [String] = []) {
}
}
-func buildThin(framework: String, arch: String, sdk: String, parentDir: String) -> [String] {
+func buildThin(framework: String, multiplatform: Bool, arch: String, multisdk: Bool, sdk: String, parentDir: String) -> [String] {
+ let schemeSuffix: String
+ if !multiplatform {
+ schemeSuffix = ""
+ } else if sdk.hasPrefix("mac") {
+ schemeSuffix = "-OSX"
+ } else if sdk.hasPrefix("iphone") {
+ schemeSuffix = "-iOS"
+ } else {
+ fatalError("TODO: tvOS/watchOS")
+ }
+
let buildDir = parentDir + "/" + arch
let standardOptions = [ "build",
"-configuration", "release",
"-workspace", "FrameworkMaker.xcworkspace",
- "-scheme", framework,
+ "-scheme", framework + schemeSuffix,
"GCC_GENERATE_DEBUGGING_SYMBOLS=No"]
let bitcode = (sdk == "iphoneos") ? ["OTHER_CFLAGS=\"" + "-fembed-bitcode\""] : []
let args = standardOptions + ["ARCHS=" + arch, "BUILD_DIR=" + buildDir, "-sdk", sdk] + bitcode
syncExec(command:"/usr/bin/xcodebuild", args:args)
- return [buildDir + "/Release-" + sdk + "/" + framework + "/lib" + framework + ".a"]
+ return [buildDir + "/Release" + (multisdk ? "-\(sdk)" : "") + "/" + framework + schemeSuffix + "/lib" + framework + schemeSuffix + ".a"]
}
func createFile(file: String, content: String) {
@@ -144,15 +164,21 @@ func makeModuleMap(framework: String, dir: String) {
createFile(file:moduleFile, content:content)
}
-func buildFramework(withName framework: String, outputDir: String) {
+func buildFramework(withName framework: String, multiplatform: Bool, platform: Platform, outputDir: String) {
let buildDir = tempDir()
var thinArchives = [String]()
- thinArchives += buildThin(framework:framework, arch:"arm64", sdk:"iphoneos", parentDir:buildDir)
- thinArchives += buildThin(framework:framework, arch:"armv7", sdk:"iphoneos", parentDir:buildDir)
- thinArchives += buildThin(framework:framework, arch:"i386", sdk:"iphonesimulator", parentDir:buildDir)
- thinArchives += buildThin(framework:framework, arch:"x86_64", sdk:"iphonesimulator", parentDir:buildDir)
+ switch platform {
+ case .iOS:
+ thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"arm64", multisdk: true, sdk:"iphoneos", parentDir:buildDir)
+ thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"armv7", multisdk: true, sdk:"iphoneos", parentDir:buildDir)
+ thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"i386", multisdk: true, sdk:"iphonesimulator", parentDir:buildDir)
+ thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"x86_64", multisdk: true, sdk:"iphonesimulator", parentDir:buildDir)
+ case .macOS:
+ thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"x86_64", multisdk: false, sdk:"macosx", parentDir:buildDir)
+ default: fatalError("TODO: tvOS/watchOS")
+ }
- let frameworkDir = outputDir + "/" + framework + ".framework"
+ let frameworkDir = outputDir + "/" + framework + "_" + platform.rawValue + ".framework"
syncExec(command:"/bin/mkdir", args:["-p", frameworkDir])
let fatArchive = frameworkDir + "/" + framework
syncExec(command:"/usr/bin/lipo", args:["-create", "-output", fatArchive] + thinArchives)
@@ -171,7 +197,10 @@ let outputDir = tempDir()
syncExec(command:"/usr/local/bin/pod", args:["update"])
for f in frameworks {
- buildFramework(withName:f, outputDir:outputDir)
+ let platforms = allFrameworks[f]!
+ for p in platforms {
+ buildFramework(withName:f, multiplatform:platforms.count > 1, platform:p, outputDir:outputDir)
+ }
}
print()
diff --git a/BuildFrameworks/iOS-Info.plist b/BuildFrameworks/iOS-Info.plist
new file mode 100644
index 0000000..7576a0d
--- /dev/null
+++ b/BuildFrameworks/iOS-Info.plist
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UILaunchStoryboardName</key>
+ <string>LaunchScreen</string>
+ <key>UIMainStoryboardFile</key>
+ <string>Main</string>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>armv7</string>
+ </array>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
diff --git a/BuildFrameworks/macOS-Info.plist b/BuildFrameworks/macOS-Info.plist
new file mode 100644
index 0000000..c28dbc8
--- /dev/null
+++ b/BuildFrameworks/macOS-Info.plist
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright © 2017 Google, Inc. All rights reserved.</string>
+ <key>NSMainStoryboardFile</key>
+ <string>Main</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>