Delete validate_zip.sh and the manual installation test (#233)

* Delete validate_zip.sh

We don't use it.

* Remove manual installation test
This commit is contained in:
davidme-stripe 2021-06-09 11:46:14 -07:00 committed by GitHub
parent 0eff92f0d2
commit 50f7b6138b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 0 additions and 1185 deletions

View File

@ -1,464 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
047C06A51B06830800360F75 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C06A41B06830800360F75 /* main.m */; };
047C06A81B06830800360F75 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C06A71B06830800360F75 /* AppDelegate.m */; };
047C06AB1B06830800360F75 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C06AA1B06830800360F75 /* ViewController.m */; };
047C06AE1B06830800360F75 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 047C06AC1B06830800360F75 /* Main.storyboard */; };
047C06B01B06830800360F75 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 047C06AF1B06830800360F75 /* Images.xcassets */; };
047C06B31B06830800360F75 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 047C06B11B06830800360F75 /* LaunchScreen.xib */; };
047C06BF1B06830800360F75 /* ManualInstallationTestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C06BE1B06830800360F75 /* ManualInstallationTestTests.m */; };
047C06CD1B068D0200360F75 /* Stripe.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 047C06CC1B068D0200360F75 /* Stripe.framework */; };
C1B630DF1D1D88CF00A05285 /* TestImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = C1B630DE1D1D88CF00A05285 /* TestImageLoader.m */; };
C1E56F4C1D21C18200F85011 /* Stripe.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C1E56F4B1D21C18200F85011 /* Stripe.bundle */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
047C06B91B06830800360F75 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 047C06971B06830800360F75 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 047C069E1B06830800360F75;
remoteInfo = ManualInstallationTest;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
047C069F1B06830800360F75 /* ManualInstallationTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ManualInstallationTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
047C06A31B06830800360F75 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
047C06A41B06830800360F75 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
047C06A61B06830800360F75 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
047C06A71B06830800360F75 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
047C06A91B06830800360F75 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
047C06AA1B06830800360F75 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
047C06AD1B06830800360F75 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
047C06AF1B06830800360F75 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
047C06B21B06830800360F75 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
047C06B81B06830800360F75 /* ManualInstallationTestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ManualInstallationTestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
047C06BD1B06830800360F75 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
047C06BE1B06830800360F75 /* ManualInstallationTestTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ManualInstallationTestTests.m; sourceTree = "<group>"; };
047C06CC1B068D0200360F75 /* Stripe.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Stripe.framework; path = ManualInstallationTest/Frameworks/Stripe.framework; sourceTree = "<group>"; };
C1B630DD1D1D88CF00A05285 /* TestImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestImageLoader.h; sourceTree = "<group>"; };
C1B630DE1D1D88CF00A05285 /* TestImageLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestImageLoader.m; sourceTree = "<group>"; };
C1E56F4B1D21C18200F85011 /* Stripe.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Stripe.bundle; path = ManualInstallationTest/Frameworks/Stripe.framework/Stripe.bundle; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
047C069C1B06830800360F75 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
047C06CD1B068D0200360F75 /* Stripe.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
047C06B51B06830800360F75 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
047C06961B06830800360F75 = {
isa = PBXGroup;
children = (
C1E56F4B1D21C18200F85011 /* Stripe.bundle */,
047C06CC1B068D0200360F75 /* Stripe.framework */,
047C06A11B06830800360F75 /* ManualInstallationTest */,
047C06BB1B06830800360F75 /* ManualInstallationTestTests */,
047C06A01B06830800360F75 /* Products */,
);
sourceTree = "<group>";
};
047C06A01B06830800360F75 /* Products */ = {
isa = PBXGroup;
children = (
047C069F1B06830800360F75 /* ManualInstallationTest.app */,
047C06B81B06830800360F75 /* ManualInstallationTestTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
047C06A11B06830800360F75 /* ManualInstallationTest */ = {
isa = PBXGroup;
children = (
047C06A61B06830800360F75 /* AppDelegate.h */,
047C06A71B06830800360F75 /* AppDelegate.m */,
047C06A91B06830800360F75 /* ViewController.h */,
047C06AA1B06830800360F75 /* ViewController.m */,
C1B630DD1D1D88CF00A05285 /* TestImageLoader.h */,
C1B630DE1D1D88CF00A05285 /* TestImageLoader.m */,
047C06AC1B06830800360F75 /* Main.storyboard */,
047C06AF1B06830800360F75 /* Images.xcassets */,
047C06B11B06830800360F75 /* LaunchScreen.xib */,
047C06A21B06830800360F75 /* Supporting Files */,
);
path = ManualInstallationTest;
sourceTree = "<group>";
};
047C06A21B06830800360F75 /* Supporting Files */ = {
isa = PBXGroup;
children = (
047C06A31B06830800360F75 /* Info.plist */,
047C06A41B06830800360F75 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
047C06BB1B06830800360F75 /* ManualInstallationTestTests */ = {
isa = PBXGroup;
children = (
047C06BE1B06830800360F75 /* ManualInstallationTestTests.m */,
047C06BC1B06830800360F75 /* Supporting Files */,
);
path = ManualInstallationTestTests;
sourceTree = "<group>";
};
047C06BC1B06830800360F75 /* Supporting Files */ = {
isa = PBXGroup;
children = (
047C06BD1B06830800360F75 /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
047C069E1B06830800360F75 /* ManualInstallationTest */ = {
isa = PBXNativeTarget;
buildConfigurationList = 047C06C21B06830800360F75 /* Build configuration list for PBXNativeTarget "ManualInstallationTest" */;
buildPhases = (
047C069B1B06830800360F75 /* Sources */,
047C069C1B06830800360F75 /* Frameworks */,
047C069D1B06830800360F75 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = ManualInstallationTest;
productName = ManualInstallationTest;
productReference = 047C069F1B06830800360F75 /* ManualInstallationTest.app */;
productType = "com.apple.product-type.application";
};
047C06B71B06830800360F75 /* ManualInstallationTestTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 047C06C51B06830800360F75 /* Build configuration list for PBXNativeTarget "ManualInstallationTestTests" */;
buildPhases = (
047C06B41B06830800360F75 /* Sources */,
047C06B51B06830800360F75 /* Frameworks */,
047C06B61B06830800360F75 /* Resources */,
);
buildRules = (
);
dependencies = (
047C06BA1B06830800360F75 /* PBXTargetDependency */,
);
name = ManualInstallationTestTests;
productName = ManualInstallationTestTests;
productReference = 047C06B81B06830800360F75 /* ManualInstallationTestTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
047C06971B06830800360F75 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = stripe;
TargetAttributes = {
047C069E1B06830800360F75 = {
CreatedOnToolsVersion = 6.3;
};
047C06B71B06830800360F75 = {
CreatedOnToolsVersion = 6.3;
TestTargetID = 047C069E1B06830800360F75;
};
};
};
buildConfigurationList = 047C069A1B06830800360F75 /* Build configuration list for PBXProject "ManualInstallationTest" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 047C06961B06830800360F75;
productRefGroup = 047C06A01B06830800360F75 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
047C069E1B06830800360F75 /* ManualInstallationTest */,
047C06B71B06830800360F75 /* ManualInstallationTestTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
047C069D1B06830800360F75 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C1E56F4C1D21C18200F85011 /* Stripe.bundle in Resources */,
047C06AE1B06830800360F75 /* Main.storyboard in Resources */,
047C06B31B06830800360F75 /* LaunchScreen.xib in Resources */,
047C06B01B06830800360F75 /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
047C06B61B06830800360F75 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
047C069B1B06830800360F75 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
047C06AB1B06830800360F75 /* ViewController.m in Sources */,
047C06A81B06830800360F75 /* AppDelegate.m in Sources */,
C1B630DF1D1D88CF00A05285 /* TestImageLoader.m in Sources */,
047C06A51B06830800360F75 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
047C06B41B06830800360F75 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
047C06BF1B06830800360F75 /* ManualInstallationTestTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
047C06BA1B06830800360F75 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 047C069E1B06830800360F75 /* ManualInstallationTest */;
targetProxy = 047C06B91B06830800360F75 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
047C06AC1B06830800360F75 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
047C06AD1B06830800360F75 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
047C06B11B06830800360F75 /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
047C06B21B06830800360F75 /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
047C06C01B06830800360F75 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
047C06C11B06830800360F75 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
047C06C31B06830800360F75 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/ManualInstallationTest/Frameworks",
);
INFOPLIST_FILE = ManualInstallationTest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.stripe.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
047C06C41B06830800360F75 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/ManualInstallationTest/Frameworks",
);
INFOPLIST_FILE = ManualInstallationTest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.stripe.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
047C06C61B06830800360F75 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = ManualInstallationTestTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.stripe.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ManualInstallationTest.app/ManualInstallationTest";
};
name = Debug;
};
047C06C71B06830800360F75 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
INFOPLIST_FILE = ManualInstallationTestTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.stripe.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ManualInstallationTest.app/ManualInstallationTest";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
047C069A1B06830800360F75 /* Build configuration list for PBXProject "ManualInstallationTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
047C06C01B06830800360F75 /* Debug */,
047C06C11B06830800360F75 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
047C06C21B06830800360F75 /* Build configuration list for PBXNativeTarget "ManualInstallationTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
047C06C31B06830800360F75 /* Debug */,
047C06C41B06830800360F75 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
047C06C51B06830800360F75 /* Build configuration list for PBXNativeTarget "ManualInstallationTestTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
047C06C61B06830800360F75 /* Debug */,
047C06C71B06830800360F75 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 047C06971B06830800360F75 /* Project object */;
}

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@ -1,8 +0,0 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -1,41 +0,0 @@
<?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>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>B0767A7A-F469-40CA-97F2-48CB241387F1</string>
<key>IDESourceControlProjectName</key>
<string>project</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>A5C151FC3F18980DA2906AAA3DE9140767EF2310</key>
<string>github.com:stripe/stripe-ios.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>Tests/installation_tests/manual_installation/ManualInstallationTest.xcodeproj/project.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>A5C151FC3F18980DA2906AAA3DE9140767EF2310</key>
<string>../../../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>github.com:stripe/stripe-ios.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>A5C151FC3F18980DA2906AAA3DE9140767EF2310</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>A5C151FC3F18980DA2906AAA3DE9140767EF2310</string>
<key>IDESourceControlWCCName</key>
<string>stripe-ios</string>
</dict>
</array>
</dict>
</plist>

View File

@ -1,115 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "047C069E1B06830800360F75"
BuildableName = "ManualInstallationTest.app"
BlueprintName = "ManualInstallationTest"
ReferencedContainer = "container:ManualInstallationTest.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "047C06B71B06830800360F75"
BuildableName = "ManualInstallationTestTests.xctest"
BlueprintName = "ManualInstallationTestTests"
ReferencedContainer = "container:ManualInstallationTest.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "047C06B71B06830800360F75"
BuildableName = "ManualInstallationTestTests.xctest"
BlueprintName = "ManualInstallationTestTests"
ReferencedContainer = "container:ManualInstallationTest.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "047C069E1B06830800360F75"
BuildableName = "ManualInstallationTest.app"
BlueprintName = "ManualInstallationTest"
ReferencedContainer = "container:ManualInstallationTest.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 = "047C069E1B06830800360F75"
BuildableName = "ManualInstallationTest.app"
BlueprintName = "ManualInstallationTest"
ReferencedContainer = "container:ManualInstallationTest.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "047C069E1B06830800360F75"
BuildableName = "ManualInstallationTest.app"
BlueprintName = "ManualInstallationTest"
ReferencedContainer = "container:ManualInstallationTest.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,17 +0,0 @@
//
// AppDelegate.h
// ManualInstallationTest
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

View File

@ -1,48 +0,0 @@
//
// AppDelegate.m
// ManualInstallationTest
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import "AppDelegate.h"
#import <Stripe/Stripe.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[Stripe setDefaultPublishableKey:@"test"];
[Stripe paymentRequestWithMerchantIdentifier:@"test"];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 stripe. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
<rect key="frame" x="20" y="439" width="441" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ManualInstallationTest" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="140" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
</document>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="ViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

View File

@ -1,38 +0,0 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,40 +0,0 @@
<?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>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</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>
</dict>
</plist>

View File

@ -1,15 +0,0 @@
//
// TestImageLoader
// ManualInstallationTest
//
// Created by Ben Guo on 6/24/16.
// Copyright © 2016 stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface TestImageLoader : NSObject
@property (nonatomic, strong, nullable) UIImage *image;
@end

View File

@ -1,22 +0,0 @@
//
// TestImageLoader.m
// ManualInstallationTest
//
// Created by Ben Guo on 6/24/16.
// Copyright © 2016 stripe. All rights reserved.
//
#import "TestImageLoader.h"
#import <Stripe/Stripe.h>
@implementation TestImageLoader
- (instancetype)init {
self = [super init];
if (self) {
self.image = [STPPaymentCardTextField brandImageForCardBrand:STPCardBrandVisa];
}
return self;
}
@end

View File

@ -1,16 +0,0 @@
//
// ViewController.h
// ManualInstallationTest
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Stripe/Stripe.h>
@interface ViewController : UIViewController
@end

View File

@ -1,27 +0,0 @@
//
// ViewController.m
// ManualInstallationTest
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end

View File

@ -1,16 +0,0 @@
//
// main.m
// ManualInstallationTest
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

View File

@ -1,24 +0,0 @@
<?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>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>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -1,24 +0,0 @@
//
// ManualInstallationTestTests.m
// ManualInstallationTestTests
//
// Created by Jack Flintermann on 5/15/15.
// Copyright (c) 2015 stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "TestImageLoader.h"
@interface ManualInstallationTestTests : XCTestCase
@end
@implementation ManualInstallationTestTests
- (void)testBundleImagesAccessible {
TestImageLoader *imageLoader = [[TestImageLoader alloc] init];
XCTAssertNotNil(imageLoader.image);
}
@end

View File

@ -1,64 +0,0 @@
#!/bin/bash
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../" && pwd)"
function info {
echo "[$(basename "${0}")] [INFO] ${1}"
}
function die {
echo "[$(basename "${0}")] [ERROR] ${1}"
exit 1
}
# Build and verify static library
info "Building and verifying static library..."
sh "${root_dir}/ci_scripts/export_builds.sh" --only-static || die "Executing export_builds.sh failed"
sh "${root_dir}/ci_scripts/validate_zip.sh" "${root_dir}/build/StripeiOS-Static.zip" || die "Validating zip failed"
# Perform manual installation
framework_dir="${script_dir}/ManualInstallationTest/Frameworks"
info "Performing manual installation..."
rm -rf "${framework_dir}"
mkdir -p "${framework_dir}"
ditto -xk \
"${root_dir}/build/StripeiOS-Static.zip" \
"${framework_dir}"
# Execute xcodebuild
info "Executing xcodebuild..."
xcodebuild clean build-for-testing \
-quiet \
-project "${script_dir}/ManualInstallationTest.xcodeproj" \
-scheme "ManualInstallationTest" \
-sdk "iphonesimulator" \
-destination "platform=iOS Simulator,name=iPhone 8,OS=13.7"
xcodebuild_build_exit_code="${PIPESTATUS[0]}"
if [[ "${xcodebuild_build_exit_code}" != 0 ]]; then
die "Executing xcodebuild failed with status code: ${xcodebuild_build_exit_code}"
fi
xcodebuild test-without-building \
-quiet \
-project "${script_dir}/ManualInstallationTest.xcodeproj" \
-scheme "ManualInstallationTest" \
-sdk "iphonesimulator" \
-destination "platform=iOS Simulator,name=iPhone 8,OS=13.7"
xcodebuild_test_exit_code="${PIPESTATUS[0]}"
if [[ "${xcodebuild_test_exit_code}" != 0 ]]; then
die "Executing xcodebuild failed with status code: ${xcodebuild_test_exit_code}"
fi
info "All good!"

View File

@ -1,132 +0,0 @@
#!/usr/bin/env bash
# Created by Cory Dolphin on 03/21/16.
# Copyright (c) 2016 Twitter. All rights reserved.
# Verifies a zip archive submission of SDKs passes basic static checks for format and contents.
# This test is likely to generate false positives, e.g. even if your SDK passes this, you still must
# test integration of your code fully.
# Usage: $ ./validate_zip.sh <path to zip>
set -e
if [ ! -f "$1" ]; then
printf "No file found at ${1}\n"
printf "Usage: $ ./validate_zip.sh <path to zip>\n"; exit 1;
fi
function verifyFramework() {
# set -x
local FRAMEWORK_PATH=$1
local FRAMEWORK_NAME=$(basename $FRAMEWORK_PATH)
local PRODUCT="${FRAMEWORK_NAME%.*}"
local BINARY_PATH="${FRAMEWORK_PATH}/${PRODUCT}"
local HEADER_PATH="${FRAMEWORK_PATH}/Headers"
printf "Found $FRAMEWORK_NAME. Verifying...\n"
local MODULE_MAP=( $(find $FRAMEWORK_PATH -name "*.modulemap") )
if [[ -z "$MODULE_MAP" ]]; then
printf "ERROR: No modulemap found in $FRAMEWORK_NAME\n";
exit 3;
fi
printf "$FRAMEWORK_NAME contains modulemap: ✓\n"
# Verify there is a modulemap so Swift can use the framework
if grep -q "link" "$MODULE_MAP"; then
printf "$FRAMEWORK_NAME modulemap contains dependent system frameworks ✓\n"
else
printf "Warning: ${FRAMEWORK_NAME} does not list any system library dependencies. Double check all dependent frameworks and libraries are listed. \n";
fi
# Verify there is at least one header listed in the module map
if grep -q ".*.h" "$MODULE_MAP"; then
printf "$FRAMEWORK_NAME modulemap contains headers ✓\n";
else
printf "Error: ${FRAMEWORK_NAME} does not list any headers in the modulemap\n";
exit 4;
fi
# Verify there is at least a headers folder
if [[ ! -d "$HEADER_PATH" ]]; then
printf "ERROR: Headers not not found in ${FRAMEWORK_NAME}\n";
exit 5;
fi
# Verify the static lib at least has simulator and the two common ARM architectures
local PRESENT_ARCHITECTURES=$( xcrun lipo -info "${BINARY_PATH}" )
for arch in "armv7" "arm64" "i386" "x86_64"; do
if [[ ! $PRESENT_ARCHITECTURES == *$arch* ]]; then
printf "ERROR: Architecture ${arch} not found in ${FRAMEWORK_NAME}\n";
exit 6;
fi
done
printf "$FRAMEWORK_NAME contains simulator and device architectures: ✓\n"
# Verify there are at least some bitcode segments in the rmv7 and arm64 slices
# Note, this is not conclusive, it is possible some symbols are missing the segment
for arch in "armv7" "arm64"; do
local SYMBOLS=$(otool -l -arch "${arch}" "${BINARY_PATH}")
if [[ ! $SYMBOLS == *"LLVM"* ]]; then
printf "ERROR: Bitcode segments not found in ${FRAMEWORK_NAME}. Users will fail to archive their builds \n";
exit 7;
fi
done
printf "$FRAMEWORK_NAME contains bitcode: ✓\n"
# Verify there is a plist file
local PLIST_PATH=( $(find $FRAMEWORK_PATH -name Info.plist) )
if [[ -z "$PLIST_PATH" ]]; then
printf "ERROR: No Info.plist found in $FRAMEWORK_NAME\n"
exit 8;
fi
printf "$FRAMEWORK_NAME contains Info.plist: ✓\n"
# Verify there is a bundle identifier in Info.plist
# And verify it does not contain any vestigial string templating
local BUNDLE_NAME=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${PLIST_PATH}")
if [[ -z "$BUNDLE_NAME" ]]; then
printf "ERROR: Info.plist not found in $FRAMEWORK_NAME or CFBundleIdentifier not set\n";
exit 9;
elif [[ "$BUNDLE_NAME" == *"$"* ]]; then
printf "ERROR: CFBundleIdentifier is invalid: $BUNDLE_NAME\n";
exit 10;
else
printf "$FRAMEWORK_NAME has bundle: $BUNDLE_NAME ✓\n"
fi
# Verify there is a bundle version in the Info.plist
local BUNDLE_VERSION=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PLIST_PATH}")
if [[ -z "$BUNDLE_VERSION" ]]; then
printf "ERROR: No CFBundleShortVersionString found in $FRAMEWORK_NAME\n";
exit 11;
else
printf "$FRAMEWORK_NAME has version: $BUNDLE_VERSION ✓\n"
fi
printf "===========================================\n"
printf "Analyzed $PRODUCT version $BUNDLE_VERSION. \n"
printf "Basic static verifications passed. 🚀🚀🚀 \n"
printf "Please perform final verification testing \n\n"
}
# Extract the zip archive to a temporary location
TEMP_DIR=$(mktemp -d /tmp/fabric_framework_validation.XXXXX)
printf "Unzipping $(basename "$1") to $TEMP_DIR\n"
unzip "$1" -d "$TEMP_DIR" &> /dev/null
# Find frameworks and ensure they are at the top level, e.g. NOT nested within a sub directory
printf "Scanning for frameworks...\n"
FRAMEWORKS=( $(find "$TEMP_DIR" -name "*.framework" -maxdepth 1) )
if [ -z "$FRAMEWORKS" ]; then
printf "ERROR: No frameworks found at the top level within the zip archive.";
exit 2;
fi
# Verify each framework found individually
for framework in "${FRAMEWORKS[@]}"; do
verifyFramework "$framework"
printf ""
done
rm -r "$TEMP_DIR"