mirror of
https://github.com/mas-cli/mas
synced 2024-11-22 03:23:08 +00:00
📦 Build an installer package
This commit is contained in:
parent
343c27b517
commit
f64b071468
5 changed files with 88 additions and 13 deletions
29
Homebrew/Components.plist
Normal file
29
Homebrew/Components.plist
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?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">
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>BundleIsVersionChecked</key>
|
||||||
|
<false/>
|
||||||
|
<key>BundleOverwriteAction</key>
|
||||||
|
<string>upgrade</string>
|
||||||
|
<key>ChildBundles</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>BundleOverwriteAction</key>
|
||||||
|
<string></string>
|
||||||
|
<key>RootRelativeBundlePath</key>
|
||||||
|
<string>Library/Frameworks/MasKit.framework/Versions/A/Frameworks/Commandant.framework</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>BundleOverwriteAction</key>
|
||||||
|
<string></string>
|
||||||
|
<key>RootRelativeBundlePath</key>
|
||||||
|
<string>Library/Frameworks/MasKit.framework/Versions/A/Frameworks/Result.framework</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>RootRelativeBundlePath</key>
|
||||||
|
<string>Library/Frameworks/MasKit.framework</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</plist>
|
21
Homebrew/Distribution.plist
Normal file
21
Homebrew/Distribution.plist
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<installer-gui-script minSpecVersion="2">
|
||||||
|
<pkg-ref id="com.mphys.mas-cli"/>
|
||||||
|
<domains enable_localSystem="true" enable_anywhere="true" enable_currentUserHome="false" />
|
||||||
|
<options customize="never" require-scripts="false"/>
|
||||||
|
<volume-check>
|
||||||
|
<allowed-os-versions>
|
||||||
|
<os-version min="10.10"/>
|
||||||
|
</allowed-os-versions>
|
||||||
|
</volume-check>
|
||||||
|
<choices-outline>
|
||||||
|
<line choice="default">
|
||||||
|
<line choice="com.mphys.mas-cli"/>
|
||||||
|
</line>
|
||||||
|
</choices-outline>
|
||||||
|
<choice id="default"/>
|
||||||
|
<choice id="com.mphys.mas-cli" visible="false">
|
||||||
|
<pkg-ref id="com.mphys.mas-cli"/>
|
||||||
|
</choice>
|
||||||
|
<pkg-ref id="com.mphys.mas-cli" version="1.0.0" onConclusion="none">MasTemp.pkg</pkg-ref>
|
||||||
|
</installer-gui-script>
|
|
@ -785,12 +785,10 @@
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEPLOYMENT_LOCATION = YES;
|
DEPLOYMENT_LOCATION = YES;
|
||||||
DSTROOT = "$(SRCROOT)";
|
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Carthage/Build/Mac",
|
"$(PROJECT_DIR)/Carthage/Build/Mac",
|
||||||
);
|
);
|
||||||
INSTALL_PATH = /build;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/. @executable_path/MasKit.framework/Versions/Current/Frameworks /Library/Frameworks /Library/Frameworks/MasKit.framework/Versions/Current/Frameworks $(inherited)";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/. @executable_path/MasKit.framework/Versions/Current/Frameworks /Library/Frameworks /Library/Frameworks/MasKit.framework/Versions/Current/Frameworks $(inherited)";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.mphys.mas-cli";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mphys.mas-cli";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -825,13 +823,11 @@
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = MasKit/Info.plist;
|
INFOPLIST_FILE = MasKit/Info.plist;
|
||||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit;
|
PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||||
SKIP_INSTALL = YES;
|
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||||
SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation";
|
SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation";
|
||||||
SWIFT_VERSION = 4.2;
|
SWIFT_VERSION = 4.2;
|
||||||
|
@ -864,12 +860,10 @@
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = MasKit/Info.plist;
|
INFOPLIST_FILE = MasKit/Info.plist;
|
||||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit;
|
PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||||
SKIP_INSTALL = YES;
|
|
||||||
SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation";
|
SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||||
SWIFT_VERSION = 4.2;
|
SWIFT_VERSION = 4.2;
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
BUILD_DIR=build
|
BUILD_DIR=build
|
||||||
|
INSTALL_DIR=/tmp/mas-cli.dst
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
rm -rf $BUILD_DIR/
|
rm -rf ${BUILD_DIR:?}
|
||||||
|
rm -rf ${INSTALL_DIR:?}
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
#!/bin/bash -e
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
xcodebuild install
|
||||||
|
|
||||||
pushd build
|
pushd build
|
||||||
|
|
||||||
|
@ -6,12 +8,39 @@ echo "==> 🗜️ Compressing mas.xcarchive"
|
||||||
zip -r mas.xcarchive.zip mas.xcarchive
|
zip -r mas.xcarchive.zip mas.xcarchive
|
||||||
|
|
||||||
echo "==> ️🗜️ Compressing binary and framework"
|
echo "==> ️🗜️ Compressing binary and framework"
|
||||||
pushd mas.xcarchive/Products/build
|
pushd mas.xcarchive/Products
|
||||||
zip -r mas-cli.zip mas MasKit.framework
|
zip -r \
|
||||||
mv mas-cli.zip ../../../
|
mas-cli.zip \
|
||||||
|
usr/local/bin/mas \
|
||||||
|
Library/Frameworks/MasKit.framework
|
||||||
|
mv mas-cli.zip ../../
|
||||||
popd
|
popd
|
||||||
|
|
||||||
echo -n "==> 🔢 SHA256: "
|
echo "==> 📦 Assemble an installer package"
|
||||||
shasum -a 256 mas-cli.zip
|
IDENTIFIER=com.mphys.mas-cli
|
||||||
|
COMPONENTS_PLIST=../Homebrew/Components.plist
|
||||||
|
DISTRIBUTION_PLIST=../Homebrew/Distribution.plist
|
||||||
|
INSTALL_TEMPORARY_FOLDER=/tmp/mas-cli.dst
|
||||||
|
INTERNAL_PACKAGE=mas_temp.pkg
|
||||||
|
OUTPUT_PACKAGE=mas.pkg
|
||||||
|
VERSION_STRING=1.1.1
|
||||||
|
|
||||||
|
tree "$INSTALL_TEMPORARY_FOLDER"
|
||||||
|
|
||||||
|
pkgbuild \
|
||||||
|
--component-plist "$COMPONENTS_PLIST" \
|
||||||
|
--identifier "$IDENTIFIER" \
|
||||||
|
--install-location "/" \
|
||||||
|
--root "$INSTALL_TEMPORARY_FOLDER" \
|
||||||
|
--version "$VERSION_STRING" \
|
||||||
|
"$INTERNAL_PACKAGE"
|
||||||
|
|
||||||
|
productbuild \
|
||||||
|
--distribution "$DISTRIBUTION_PLIST" \
|
||||||
|
--package-path "$INTERNAL_PACKAGE" \
|
||||||
|
"$OUTPUT_PACKAGE"
|
||||||
|
|
||||||
|
echo -n "==> 🔢 SHA256 "
|
||||||
|
shasum -a 256 mas-cli.zip mas.xcarchive.zip mas.pkg
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
Loading…
Reference in a new issue