mirror of
https://github.com/bizz84/SwiftyStoreKit.git
synced 2025-11-26 03:28:39 +08:00
@@ -74,6 +74,22 @@
|
|||||||
A61BF4BE2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
A61BF4BE2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
||||||
A61BF4BF2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
A61BF4BF2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
||||||
A61BF4C02481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
A61BF4C02481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
||||||
|
A61BF4C62481F4970017D9BC /* OS.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40C680F1C29414C00B60B7E /* OS.swift */; };
|
||||||
|
A61BF4C72481F4970017D9BC /* AppleReceiptValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1592CD4F1E27756500D321E6 /* AppleReceiptValidator.swift */; };
|
||||||
|
A61BF4C82481F4970017D9BC /* InAppProductQueryRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6502F6231B98586A004E342D /* InAppProductQueryRequest.swift */; };
|
||||||
|
A61BF4C92481F4970017D9BC /* InAppReceiptRefreshRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4083C561C2AB0A900295248 /* InAppReceiptRefreshRequest.swift */; };
|
||||||
|
A61BF4CA2481F4970017D9BC /* PaymentsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F70AC81E2EDC3700BF040D /* PaymentsController.swift */; };
|
||||||
|
A61BF4CB2481F4970017D9BC /* ProductsInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 650307FB1E33154F001332A4 /* ProductsInfoController.swift */; };
|
||||||
|
A61BF4CC2481F4970017D9BC /* RestorePurchasesController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 650307F31E3177EF001332A4 /* RestorePurchasesController.swift */; };
|
||||||
|
A61BF4CD2481F4970017D9BC /* PaymentQueueController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 658A08361E2EC24E0074A98F /* PaymentQueueController.swift */; };
|
||||||
|
A61BF4CE2481F4970017D9BC /* InAppReceiptVerificator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65E9E0781ECADF5E005CF7B4 /* InAppReceiptVerificator.swift */; };
|
||||||
|
A61BF4CF2481F4970017D9BC /* SKProduct+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653722801DB8282600C8F944 /* SKProduct+LocalizedPrice.swift */; };
|
||||||
|
A61BF4D02481F4970017D9BC /* InAppReceipt.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A7C7621C29B8D00053ED64 /* InAppReceipt.swift */; };
|
||||||
|
A61BF4D12481F4970017D9BC /* CompleteTransactionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 650307F71E317BCF001332A4 /* CompleteTransactionsController.swift */; };
|
||||||
|
A61BF4D22481F4970017D9BC /* SwiftyStoreKit+Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65BB6CE71DDB018900218A0B /* SwiftyStoreKit+Types.swift */; };
|
||||||
|
A61BF4D32481F4970017D9BC /* SwiftyStoreKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6502F6241B98586A004E342D /* SwiftyStoreKit.swift */; };
|
||||||
|
A61BF4D42481F4970017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */; };
|
||||||
|
A61BF4E02481F7400017D9BC /* SwiftyStoreKit-watchOS.h in Headers */ = {isa = PBXBuildFile; fileRef = A61BF4DF2481F7150017D9BC /* SwiftyStoreKit-watchOS.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
C3099C071E2FCDAA00392A54 /* PaymentsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C061E2FCDAA00392A54 /* PaymentsControllerTests.swift */; };
|
C3099C071E2FCDAA00392A54 /* PaymentsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C061E2FCDAA00392A54 /* PaymentsControllerTests.swift */; };
|
||||||
C3099C091E2FCE3A00392A54 /* TestProduct.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C081E2FCE3A00392A54 /* TestProduct.swift */; };
|
C3099C091E2FCE3A00392A54 /* TestProduct.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C081E2FCE3A00392A54 /* TestProduct.swift */; };
|
||||||
C3099C0B1E2FD13200392A54 /* TestPaymentTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C0A1E2FD13200392A54 /* TestPaymentTransaction.swift */; };
|
C3099C0B1E2FD13200392A54 /* TestPaymentTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3099C0A1E2FD13200392A54 /* TestPaymentTransaction.swift */; };
|
||||||
@@ -211,6 +227,9 @@
|
|||||||
65F7DF981DCD536100835D30 /* SwiftyStoreKit-macOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwiftyStoreKit-macOS.h"; sourceTree = "<group>"; };
|
65F7DF981DCD536100835D30 /* SwiftyStoreKit-macOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwiftyStoreKit-macOS.h"; sourceTree = "<group>"; };
|
||||||
65F7DF991DCD536100835D30 /* SwiftyStoreKit-tvOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwiftyStoreKit-tvOS.h"; sourceTree = "<group>"; };
|
65F7DF991DCD536100835D30 /* SwiftyStoreKit-tvOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwiftyStoreKit-tvOS.h"; sourceTree = "<group>"; };
|
||||||
A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SKProductDiscount+LocalizedPrice.swift"; sourceTree = "<group>"; };
|
A61BF4BD2481F0560017D9BC /* SKProductDiscount+LocalizedPrice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SKProductDiscount+LocalizedPrice.swift"; sourceTree = "<group>"; };
|
||||||
|
A61BF4DD2481F4970017D9BC /* SwiftyStoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyStoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
A61BF4DF2481F7150017D9BC /* SwiftyStoreKit-watchOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwiftyStoreKit-watchOS.h"; sourceTree = "<group>"; };
|
||||||
|
A61BF4E12481F7B00017D9BC /* Info-watchOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-watchOS.plist"; sourceTree = "<group>"; };
|
||||||
C3099C061E2FCDAA00392A54 /* PaymentsControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PaymentsControllerTests.swift; sourceTree = "<group>"; };
|
C3099C061E2FCDAA00392A54 /* PaymentsControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PaymentsControllerTests.swift; sourceTree = "<group>"; };
|
||||||
C3099C081E2FCE3A00392A54 /* TestProduct.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestProduct.swift; sourceTree = "<group>"; };
|
C3099C081E2FCE3A00392A54 /* TestProduct.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestProduct.swift; sourceTree = "<group>"; };
|
||||||
C3099C0A1E2FD13200392A54 /* TestPaymentTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestPaymentTransaction.swift; sourceTree = "<group>"; };
|
C3099C0A1E2FD13200392A54 /* TestPaymentTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestPaymentTransaction.swift; sourceTree = "<group>"; };
|
||||||
@@ -261,6 +280,13 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
A61BF4D52481F4970017D9BC /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
C4D74BB71C24CEC90071AD3E /* Frameworks */ = {
|
C4D74BB71C24CEC90071AD3E /* Frameworks */ = {
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -301,6 +327,7 @@
|
|||||||
54C0D52C1CF7404500F90BCE /* SwiftyStoreKit.framework */,
|
54C0D52C1CF7404500F90BCE /* SwiftyStoreKit.framework */,
|
||||||
658A083E1E2EC5120074A98F /* SwiftyStoreKitTests.xctest */,
|
658A083E1E2EC5120074A98F /* SwiftyStoreKitTests.xctest */,
|
||||||
654287EE1E79F5A000F61800 /* SwiftyStoreKit_tvOSDemo.app */,
|
654287EE1E79F5A000F61800 /* SwiftyStoreKit_tvOSDemo.app */,
|
||||||
|
A61BF4DD2481F4970017D9BC /* SwiftyStoreKit.framework */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -389,9 +416,11 @@
|
|||||||
65F7DF941DCD536100835D30 /* Info-iOS.plist */,
|
65F7DF941DCD536100835D30 /* Info-iOS.plist */,
|
||||||
65F7DF951DCD536100835D30 /* Info-macOS.plist */,
|
65F7DF951DCD536100835D30 /* Info-macOS.plist */,
|
||||||
65F7DF961DCD536100835D30 /* Info-tvOS.plist */,
|
65F7DF961DCD536100835D30 /* Info-tvOS.plist */,
|
||||||
|
A61BF4E12481F7B00017D9BC /* Info-watchOS.plist */,
|
||||||
65F7DF971DCD536100835D30 /* SwiftyStoreKit-iOS.h */,
|
65F7DF971DCD536100835D30 /* SwiftyStoreKit-iOS.h */,
|
||||||
65F7DF981DCD536100835D30 /* SwiftyStoreKit-macOS.h */,
|
65F7DF981DCD536100835D30 /* SwiftyStoreKit-macOS.h */,
|
||||||
65F7DF991DCD536100835D30 /* SwiftyStoreKit-tvOS.h */,
|
65F7DF991DCD536100835D30 /* SwiftyStoreKit-tvOS.h */,
|
||||||
|
A61BF4DF2481F7150017D9BC /* SwiftyStoreKit-watchOS.h */,
|
||||||
);
|
);
|
||||||
path = Platforms;
|
path = Platforms;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -415,6 +444,14 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
A61BF4D62481F4970017D9BC /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
A61BF4E02481F7400017D9BC /* SwiftyStoreKit-watchOS.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
C4D74BB81C24CEC90071AD3E /* Headers */ = {
|
C4D74BB81C24CEC90071AD3E /* Headers */ = {
|
||||||
isa = PBXHeadersBuildPhase;
|
isa = PBXHeadersBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -520,6 +557,25 @@
|
|||||||
productReference = 658A083E1E2EC5120074A98F /* SwiftyStoreKitTests.xctest */;
|
productReference = 658A083E1E2EC5120074A98F /* SwiftyStoreKitTests.xctest */;
|
||||||
productType = "com.apple.product-type.bundle.unit-test";
|
productType = "com.apple.product-type.bundle.unit-test";
|
||||||
};
|
};
|
||||||
|
A61BF4C42481F4970017D9BC /* SwiftyStoreKit_watchOS */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = A61BF4DA2481F4970017D9BC /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_watchOS" */;
|
||||||
|
buildPhases = (
|
||||||
|
A61BF4C52481F4970017D9BC /* Sources */,
|
||||||
|
A61BF4D62481F4970017D9BC /* Headers */,
|
||||||
|
A61BF4D52481F4970017D9BC /* Frameworks */,
|
||||||
|
A61BF4D82481F4970017D9BC /* Resources */,
|
||||||
|
A61BF4D92481F4970017D9BC /* swiftlint */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = SwiftyStoreKit_watchOS;
|
||||||
|
productName = SwiftyStoreKit;
|
||||||
|
productReference = A61BF4DD2481F4970017D9BC /* SwiftyStoreKit.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
C4D74BBA1C24CEC90071AD3E /* SwiftyStoreKit_macOS */ = {
|
C4D74BBA1C24CEC90071AD3E /* SwiftyStoreKit_macOS */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = C4D74BC21C24CECA0071AD3E /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_macOS" */;
|
buildConfigurationList = C4D74BC21C24CECA0071AD3E /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_macOS" */;
|
||||||
@@ -616,6 +672,7 @@
|
|||||||
6502F62C1B985C40004E342D /* SwiftyStoreKit_iOS */,
|
6502F62C1B985C40004E342D /* SwiftyStoreKit_iOS */,
|
||||||
C4D74BBA1C24CEC90071AD3E /* SwiftyStoreKit_macOS */,
|
C4D74BBA1C24CEC90071AD3E /* SwiftyStoreKit_macOS */,
|
||||||
54C0D52B1CF7404500F90BCE /* SwiftyStoreKit_tvOS */,
|
54C0D52B1CF7404500F90BCE /* SwiftyStoreKit_tvOS */,
|
||||||
|
A61BF4C42481F4970017D9BC /* SwiftyStoreKit_watchOS */,
|
||||||
6502F5FD1B985833004E342D /* SwiftyStoreKit_iOSDemo */,
|
6502F5FD1B985833004E342D /* SwiftyStoreKit_iOSDemo */,
|
||||||
C4FD3A001C2954C10035CFF3 /* SwiftyStoreKit_macOSDemo */,
|
C4FD3A001C2954C10035CFF3 /* SwiftyStoreKit_macOSDemo */,
|
||||||
654287ED1E79F5A000F61800 /* SwiftyStoreKit_tvOSDemo */,
|
654287ED1E79F5A000F61800 /* SwiftyStoreKit_tvOSDemo */,
|
||||||
@@ -665,6 +722,13 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
A61BF4D82481F4970017D9BC /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
C4D74BB91C24CEC90071AD3E /* Resources */ = {
|
C4D74BB91C24CEC90071AD3E /* Resources */ = {
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -684,6 +748,20 @@
|
|||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
A61BF4D92481F4970017D9BC /* swiftlint */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
name = swiftlint;
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"SwiftLint does not exist, download from https://github.com/realm/SwiftLint\"\nfi\n";
|
||||||
|
};
|
||||||
C4B298341E5C25DD007C87C2 /* swiftlint */ = {
|
C4B298341E5C25DD007C87C2 /* swiftlint */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -797,6 +875,28 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
A61BF4C52481F4970017D9BC /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
A61BF4C62481F4970017D9BC /* OS.swift in Sources */,
|
||||||
|
A61BF4C72481F4970017D9BC /* AppleReceiptValidator.swift in Sources */,
|
||||||
|
A61BF4C82481F4970017D9BC /* InAppProductQueryRequest.swift in Sources */,
|
||||||
|
A61BF4C92481F4970017D9BC /* InAppReceiptRefreshRequest.swift in Sources */,
|
||||||
|
A61BF4CA2481F4970017D9BC /* PaymentsController.swift in Sources */,
|
||||||
|
A61BF4CB2481F4970017D9BC /* ProductsInfoController.swift in Sources */,
|
||||||
|
A61BF4CC2481F4970017D9BC /* RestorePurchasesController.swift in Sources */,
|
||||||
|
A61BF4CD2481F4970017D9BC /* PaymentQueueController.swift in Sources */,
|
||||||
|
A61BF4CE2481F4970017D9BC /* InAppReceiptVerificator.swift in Sources */,
|
||||||
|
A61BF4CF2481F4970017D9BC /* SKProduct+LocalizedPrice.swift in Sources */,
|
||||||
|
A61BF4D02481F4970017D9BC /* InAppReceipt.swift in Sources */,
|
||||||
|
A61BF4D12481F4970017D9BC /* CompleteTransactionsController.swift in Sources */,
|
||||||
|
A61BF4D22481F4970017D9BC /* SwiftyStoreKit+Types.swift in Sources */,
|
||||||
|
A61BF4D32481F4970017D9BC /* SwiftyStoreKit.swift in Sources */,
|
||||||
|
A61BF4D42481F4970017D9BC /* SKProductDiscount+LocalizedPrice.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
C4D74BB61C24CEC90071AD3E /* Sources */ = {
|
C4D74BB61C24CEC90071AD3E /* Sources */ = {
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -1214,6 +1314,61 @@
|
|||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
|
A61BF4DB2481F4970017D9BC /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
INFOPLIST_FILE = "$(SRCROOT)/SwiftyStoreKit/Platforms/Info-watchOS.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.musevisions.iOS.SwiftyStoreKit;
|
||||||
|
PRODUCT_NAME = SwiftyStoreKit;
|
||||||
|
SDKROOT = watchos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SUPPORTED_PLATFORMS = "watchsimulator watchos";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = 4;
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
A61BF4DC2481F4970017D9BC /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEFINES_MODULE = YES;
|
||||||
|
DEVELOPMENT_TEAM = "";
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
|
INFOPLIST_FILE = "$(SRCROOT)/SwiftyStoreKit/Platforms/Info-watchOS.plist";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.musevisions.iOS.SwiftyStoreKit;
|
||||||
|
PRODUCT_NAME = SwiftyStoreKit;
|
||||||
|
SDKROOT = watchos;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SUPPORTED_PLATFORMS = "watchsimulator watchos";
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = 4;
|
||||||
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
VERSION_INFO_PREFIX = "";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
C4D74BC01C24CECA0071AD3E /* Debug */ = {
|
C4D74BC01C24CECA0071AD3E /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
@@ -1353,6 +1508,15 @@
|
|||||||
defaultConfigurationIsVisible = 0;
|
defaultConfigurationIsVisible = 0;
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
|
A61BF4DA2481F4970017D9BC /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_watchOS" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
A61BF4DB2481F4970017D9BC /* Debug */,
|
||||||
|
A61BF4DC2481F4970017D9BC /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
C4D74BC21C24CECA0071AD3E /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_macOS" */ = {
|
C4D74BC21C24CECA0071AD3E /* Build configuration list for PBXNativeTarget "SwiftyStoreKit_macOS" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
|
|||||||
@@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1150"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "A61BF4C42481F4970017D9BC"
|
||||||
|
BuildableName = "SwiftyStoreKit_watchOS.framework"
|
||||||
|
BlueprintName = "SwiftyStoreKit_watchOS"
|
||||||
|
ReferencedContainer = "container:SwiftyStoreKit.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
</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">
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "A61BF4C42481F4970017D9BC"
|
||||||
|
BuildableName = "SwiftyStoreKit_watchOS.framework"
|
||||||
|
BlueprintName = "SwiftyStoreKit_watchOS"
|
||||||
|
ReferencedContainer = "container:SwiftyStoreKit.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
@@ -2,29 +2,29 @@
|
|||||||
// OS.swift
|
// OS.swift
|
||||||
// SwiftyStoreKit
|
// SwiftyStoreKit
|
||||||
//
|
//
|
||||||
// Copyright (c) 2015 Andrea Bizzotto (bizz84@gmail.com)
|
// Copyright (c) 2020 Andrea Bizzotto (bizz84@gmail.com)
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
// in the Software without restriction, including without limitation the rights
|
// in the Software without restriction, including without limitation the rights
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
// furnished to do so, subject to the following conditions:
|
// furnished to do so, subject to the following conditions:
|
||||||
//
|
//
|
||||||
// The above copyright notice and this permission notice shall be included in
|
// The above copyright notice and this permission notice shall be included in
|
||||||
// all copies or substantial portions of the Software.
|
// all copies or substantial portions of the Software.
|
||||||
//
|
//
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
// 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
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
import StoreKit
|
import StoreKit
|
||||||
|
|
||||||
// MARK: - missing SKMutablePayment init with product on OSX
|
// MARK: - Missing SKMutablePayment init with product on macOS
|
||||||
#if os(OSX)
|
#if os(OSX)
|
||||||
extension SKMutablePayment {
|
extension SKMutablePayment {
|
||||||
convenience init(product: SKProduct) {
|
convenience init(product: SKProduct) {
|
||||||
@@ -33,3 +33,16 @@ import StoreKit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// MARK: - Missing SKError on watchOS
|
||||||
|
#if os(watchOS)
|
||||||
|
public struct SKError: Error {
|
||||||
|
|
||||||
|
var Code: SKErrorCode = .unknown
|
||||||
|
var _nsError: NSError?
|
||||||
|
|
||||||
|
static var unknown: SKErrorCode = .unknown
|
||||||
|
static var paymentInvalid: SKErrorCode = .paymentInvalid
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -27,11 +27,10 @@ import StoreKit
|
|||||||
|
|
||||||
protocol TransactionController {
|
protocol TransactionController {
|
||||||
|
|
||||||
/**
|
/// Process the supplied transactions on a given queue.
|
||||||
* - parameter transactions: transactions to process
|
/// - parameter transactions: transactions to process
|
||||||
* - parameter paymentQueue: payment queue for finishing transactions
|
/// - parameter paymentQueue: payment queue for finishing transactions
|
||||||
* - returns: array of unhandled transactions
|
/// - returns: array of unhandled transactions
|
||||||
*/
|
|
||||||
func processTransactions(_ transactions: [SKPaymentTransaction], on paymentQueue: PaymentQueue) -> [SKPaymentTransaction]
|
func processTransactions(_ transactions: [SKPaymentTransaction], on paymentQueue: PaymentQueue) -> [SKPaymentTransaction]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,7 +49,11 @@ public protocol PaymentQueue: class {
|
|||||||
|
|
||||||
func start(_ downloads: [SKDownload])
|
func start(_ downloads: [SKDownload])
|
||||||
func pause(_ downloads: [SKDownload])
|
func pause(_ downloads: [SKDownload])
|
||||||
|
#if os(watchOS)
|
||||||
|
func resumeDownloads(_ downloads: [SKDownload])
|
||||||
|
#else
|
||||||
func resume(_ downloads: [SKDownload])
|
func resume(_ downloads: [SKDownload])
|
||||||
|
#endif
|
||||||
func cancel(_ downloads: [SKDownload])
|
func cancel(_ downloads: [SKDownload])
|
||||||
|
|
||||||
func restoreCompletedTransactions(withApplicationUsername username: String?)
|
func restoreCompletedTransactions(withApplicationUsername username: String?)
|
||||||
@@ -130,7 +133,7 @@ class PaymentQueueController: NSObject, SKPaymentTransactionObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if os(iOS) || os(tvOS)
|
#if os(iOS) || os(tvOS)
|
||||||
if #available(iOS 8.3, tvOS 9.0, *) {
|
if #available(iOS 8.3, *) {
|
||||||
skPayment.simulatesAskToBuyInSandbox = payment.simulatesAskToBuyInSandbox
|
skPayment.simulatesAskToBuyInSandbox = payment.simulatesAskToBuyInSandbox
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -176,8 +179,13 @@ class PaymentQueueController: NSObject, SKPaymentTransactionObserver {
|
|||||||
func pause(_ downloads: [SKDownload]) {
|
func pause(_ downloads: [SKDownload]) {
|
||||||
paymentQueue.pause(downloads)
|
paymentQueue.pause(downloads)
|
||||||
}
|
}
|
||||||
|
|
||||||
func resume(_ downloads: [SKDownload]) {
|
func resume(_ downloads: [SKDownload]) {
|
||||||
|
#if os(watchOS)
|
||||||
|
paymentQueue.resumeDownloads(downloads)
|
||||||
|
#else
|
||||||
paymentQueue.resume(downloads)
|
paymentQueue.resume(downloads)
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
func cancel(_ downloads: [SKDownload]) {
|
func cancel(_ downloads: [SKDownload]) {
|
||||||
paymentQueue.cancel(downloads)
|
paymentQueue.cancel(downloads)
|
||||||
|
|||||||
26
SwiftyStoreKit/Platforms/Info-watchOS.plist
Normal file
26
SwiftyStoreKit/Platforms/Info-watchOS.plist
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?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>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
38
SwiftyStoreKit/Platforms/SwiftyStoreKit-watchOS.h
Normal file
38
SwiftyStoreKit/Platforms/SwiftyStoreKit-watchOS.h
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// SwiftyStoreKit-watchOS.h
|
||||||
|
// SwiftyStoreKit
|
||||||
|
//
|
||||||
|
// Created by Sam Spencer on 5/29/20.
|
||||||
|
// Copyright © 2020 Sam Spencer. All rights reserved.
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// 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 OR COPYRIGHT HOLDERS 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.
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <WatchKit/WatchKit.h>
|
||||||
|
#import <StoreKit/StoreKit.h>
|
||||||
|
|
||||||
|
//! Project version number for SwiftyStoreKit.
|
||||||
|
FOUNDATION_EXPORT double SwiftyStoreKitVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for SwiftyStoreKit.
|
||||||
|
FOUNDATION_EXPORT const unsigned char SwiftyStoreKitVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <SwiftyStoreKit/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
@@ -118,10 +118,17 @@ public class SwiftyStoreKit {
|
|||||||
return RestoreResults(restoredPurchases: restoredPurchases, restoreFailedPurchases: restoreFailedPurchases)
|
return RestoreResults(restoredPurchases: restoredPurchases, restoreFailedPurchases: restoreFailedPurchases)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if os(watchOS)
|
||||||
|
private func storeInternalError(code: SKErrorCode = SKErrorCode.unknown, description: String = "") -> SKError {
|
||||||
|
let error = NSError(domain: SKErrorDomain, code: code.rawValue, userInfo: [ NSLocalizedDescriptionKey: description ])
|
||||||
|
return SKError.init(Code: code, _nsError: error)
|
||||||
|
}
|
||||||
|
#else
|
||||||
private func storeInternalError(code: SKError.Code = SKError.unknown, description: String = "") -> SKError {
|
private func storeInternalError(code: SKError.Code = SKError.unknown, description: String = "") -> SKError {
|
||||||
let error = NSError(domain: SKErrorDomain, code: code.rawValue, userInfo: [ NSLocalizedDescriptionKey: description ])
|
let error = NSError(domain: SKErrorDomain, code: code.rawValue, userInfo: [ NSLocalizedDescriptionKey: description ])
|
||||||
return SKError(_nsError: error)
|
return SKError(_nsError: error)
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SwiftyStoreKit {
|
extension SwiftyStoreKit {
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ echo "/* Build: SwiftyStoreKit_tvOS */"
|
|||||||
echo "/******************************/${normal}"
|
echo "/******************************/${normal}"
|
||||||
set -o pipefail && xcodebuild -project SwiftyStoreKit.xcodeproj -target SwiftyStoreKit_tvOS | tee xcodebuild.log | xcpretty
|
set -o pipefail && xcodebuild -project SwiftyStoreKit.xcodeproj -target SwiftyStoreKit_tvOS | tee xcodebuild.log | xcpretty
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "${bold}/******************************/"
|
||||||
|
echo "/* Build: SwiftyStoreKit_watchOS */"
|
||||||
|
echo "/******************************/${normal}"
|
||||||
|
set -o pipefail && xcodebuild -project SwiftyStoreKit.xcodeproj -target SwiftyStoreKit_watchOS | tee xcodebuild.log | xcpretty
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "${bold}/****************************/"
|
echo "${bold}/****************************/"
|
||||||
echo "/* Run: SwiftyStoreKitTests */"
|
echo "/* Run: SwiftyStoreKitTests */"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SWIFTLINT_PKG_PATH="/tmp/SwiftLint.pkg"
|
SWIFTLINT_PKG_PATH="/tmp/SwiftLint.pkg"
|
||||||
SWIFTLINT_PKG_URL="https://github.com/realm/SwiftLint/releases/download/0.22.0/SwiftLint.pkg"
|
SWIFTLINT_PKG_URL="https://github.com/realm/SwiftLint/releases/download/0.39.2/SwiftLint.pkg"
|
||||||
|
|
||||||
wget --output-document=$SWIFTLINT_PKG_PATH $SWIFTLINT_PKG_URL
|
wget --output-document=$SWIFTLINT_PKG_PATH $SWIFTLINT_PKG_URL
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user