101 lines
2.1 KiB
Bash
Executable File
101 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
unlock_login_keychain() {
|
|
if [ -z "$1" ]; then
|
|
echo "Password parameter must be exists"
|
|
return 1
|
|
fi
|
|
local timeout=3600
|
|
if [ -n "$2" ]; then
|
|
timeout=$2
|
|
fi
|
|
|
|
security list-keychains -s ~/Library/Keychains/login.keychain-db
|
|
security unlock-keychain -p $1 ~/Library/Keychains/login.keychain-db
|
|
security set-keychain-settings -t $timeout -l ~/Library/Keychains/login.keychain-db
|
|
}
|
|
|
|
#Passed external variables
|
|
DEPLOY_TYPE=$1
|
|
if [ "$DEPLOY_TYPE" == "PRODUCTION" ]; then
|
|
DEPLOY_TYPE="PROD"
|
|
else
|
|
DEPLOY_TYPE="BETA"
|
|
fi
|
|
|
|
APPLICATION_NAME=$2
|
|
APPLICATION_SCHEME=$3
|
|
|
|
ROOT=$(pwd)
|
|
IOS_PATH=$ROOT/iOS
|
|
|
|
#Remove Delivered data
|
|
rm -rf ~/Library/Developer/Xcode/DerivedData
|
|
|
|
DERIVED_PATH=$ROOT/DERIVED
|
|
ARCHIVE_PATH=$ROOT/$APPLICATION_NAME.xcarchive
|
|
IPA_PATH=$ROOT/ResultIPA
|
|
FULL_IPA_PATH=$IPA_PATH #/$DEPLOY_TYPE
|
|
|
|
PLIST_PATH=$ROOT/toolchain/Malinka-Production-iOS-ExportOptions.plist
|
|
|
|
#Remove old results
|
|
rm -rf $DERIVED_PATH
|
|
rm -rf $ARCHIVE_PATH
|
|
|
|
mkdir $DERIVED_PATH
|
|
|
|
#Generate xcodeproj file
|
|
$(dirname "$0")/generate.swift --path=iOS/project.yml --type=$DEPLOY_TYPE
|
|
|
|
if [ "$?" != "0" ]; then
|
|
echo >&2 "Error: xcodeproj generation failed";
|
|
exit 1
|
|
fi
|
|
|
|
cd $IOS_PATH
|
|
|
|
VERSION=$CI_PIPELINE_IID
|
|
if [ "$VERSION" != "" ]; then
|
|
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" $IOS_PATH/Wallet/Info.plist
|
|
fi
|
|
|
|
unlock_login_keychain "$K8S_SECRET_SPOCK"
|
|
|
|
#Create Archive
|
|
xcodebuild -project $APPLICATION_NAME.xcodeproj \
|
|
-scheme $APPLICATION_SCHEME \
|
|
-sdk iphoneos \
|
|
-archivePath $ARCHIVE_PATH \
|
|
-derivedDataPath $DERIVED_PATH \
|
|
-configuration "Release" \
|
|
archive \
|
|
ENABLE_SWIFTLINT=NO | xcpretty
|
|
|
|
if [ "${PIPESTATUS[0]}" != "0" ]; then
|
|
echo >&2 "Error: xcodebuild failed";
|
|
exit 1
|
|
fi
|
|
|
|
unlock_login_keychain "$K8S_SECRET_SPOCK"
|
|
|
|
echo $FULL_IPA_PATH
|
|
|
|
mkdir -p $IPA_PATH
|
|
|
|
#Create ipa
|
|
xcodebuild \
|
|
-exportArchive \
|
|
-archivePath $ARCHIVE_PATH \
|
|
-exportPath $FULL_IPA_PATH \
|
|
-exportOptionsPlist $PLIST_PATH | xcpretty
|
|
|
|
if [ "${PIPESTATUS[0]}" != "0" ]; then
|
|
echo >&2 "Error: xcodebuild failed";
|
|
exit 1
|
|
fi
|
|
|
|
# Clean after
|
|
|
|
rm -rf $DERIVED_PATH
|
|
rm -rf $ARCHIVE_PATH |