diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj index 342b63af..1fa0351c 100755 --- a/AltStore.xcodeproj/project.pbxproj +++ b/AltStore.xcodeproj/project.pbxproj @@ -2534,7 +2534,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#!/bin/sh\n\necho \"Build directory: $BUILD_DIR\"\necho \"Configuration build directory: $CONFIGURATION_BUILD_DIR\"\n\necho \">>>>>>>>> Xcode-Derived-Data <<<<<<<<<<\"\nfind \"$BUILD_DIR\" -maxdepth 7 -exec ls -ld {} + || true # List contents if directory exists \n# ls -la ~/Library/Developer/Xcode/DerivedData || true # List contents if directory exists \necho \"\"\n\n# diagnostics\n# exit 0\n\n# Define the path to your Makefile\nMAKEFILE_PATH=\"${PROJECT_DIR}/\"\n\n# Navigate to the directory containing the Makefile\ncd \"$MAKEFILE_PATH\" || exit 1\n\n# Run the make target 'ipa-altbackup'\nmake -B ipa-altbackup\n\n# Ensure that the ipa-altbackup process finishes before continuing\nif [ $? -ne 0 ]; then\n echo \"Error: ipa-altbackup failed\"\n exit 1\nelse\n echo \"ipa-altbackup completed successfully\"\nfi\n# Type a script or drag a script file from your workspace to insert its path.\n"; + shellScript = "#!/bin/sh\n\necho \"Build directory: $BUILD_DIR\"\necho \"Configuration build directory: $CONFIGURATION_BUILD_DIR\"\n\n# diagnostics\n# echo \">>>>>>>>> Xcode-Derived-Data <<<<<<<<<<\"\n# find \"$BUILD_DIR\" -maxdepth 7 -exec ls -ld {} + || true # List contents if directory exists \n# # ls -la ~/Library/Developer/Xcode/DerivedData || true # List contents if directory exists \n# echo \"\"\n\n# diagnostics\n# exit 0\n\n# Define the path to your Makefile\nMAKEFILE_PATH=\"${PROJECT_DIR}/\"\n\n# Navigate to the directory containing the Makefile\ncd \"$MAKEFILE_PATH\" || exit 1\n\n# Run the make target 'ipa-altbackup'\nmake -B copy-altbackup ipa-altbackup\n\n# Ensure that the ipa-altbackup process finishes before continuing\nif [ $? -ne 0 ]; then\n echo \"Error: ipa-altbackup failed\"\n exit 1\nelse\n echo \"ipa-altbackup completed successfully\"\nfi\n# Type a script or drag a script file from your workspace to insert its path.\n"; }; AEDB4E9409D2CEE1EA126980 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; diff --git a/Makefile b/Makefile index 6705468b..e102ce3e 100755 --- a/Makefile +++ b/Makefile @@ -182,11 +182,15 @@ ipa: # Global Variables # Ensure this is set by the environment or passed as an argument +CONFIGURATION_BUILD_DIR ?= # this is the path to your main app (possibly in derived-data unless changed manually) CODESIGNING_FOLDER_PATH ?= # this is the path to your main app (possibly in derived-data unless changed manually) -APP_PATH := "$(CODESIGNING_FOLDER_PATH)" -APP_PATH := $(if $(APP_PATH),$(APP_PATH),$(CONFIGURATION_BUILD_DIR)) -VAR_USED := $(if $(CODESIGNING_FOLDER_PATH),"CODESIGNING_FOLDER_PATH","CONFIGURATION_BUILD_DIR") +# CONFIGURATION_BUILD_DIR = # this is the path to your main app (possibly in derived-data unless changed manually) +# CODESIGNING_FOLDER_PATH = # this is the path to your main app (possibly in derived-data unless changed manually) + +ROOT_DIR := $(CONFIGURATION_BUILD_DIR) +ROOT_DIR := $(if $(ROOT_DIR),$(ROOT_DIR),$(CODESIGNING_FOLDER_PATH)/..) +VAR_USED := $(if $(CONFIGURATION_BUILD_DIR),"CONFIGURATION_BUILD_DIR","CODESIGNING_FOLDER_PATH") TARGET_BUILD_DIR := build TARGET_ARCHIVE_DIR := altbackup.xcarchive @@ -195,17 +199,33 @@ TARGET_DSYM_NAME := AltBackup.app.dSYM TARGET_IPA_NAME := AltBackup.ipa -ALT_APP_SRC_PARENT := $(shell readlink -f "$(APP_PATH)/..") -ALT_APP_SRC := $(shell readlink -f "$(ALT_APP_SRC_PARENT)/$(TARGET_NAME)") -ALT_APP_DSYM_SRC := $(shell readlink -f "$(ALT_APP_SRC_PARENT)/$(TARGET_DSYM_NAME)") +ALT_APP_SRC_PARENT := $(shell readlink -f "$(ROOT_DIR)") +ALT_APP_SRC := $(ALT_APP_SRC_PARENT)/$(TARGET_NAME) +ALT_APP_DSYM_SRC := $(ALT_APP_SRC_PARENT)/$(TARGET_DSYM_NAME) ALT_APP_DST_ARCHIVE := "$(TARGET_BUILD_DIR)/$(TARGET_ARCHIVE_DIR)" ALT_APP_DST := "$(ALT_APP_DST_ARCHIVE)/Products/Applications/$(TARGET_NAME)" ALT_APP_DSYM_DST := "$(ALT_APP_DST_ARCHIVE)/dSYMs/$(TARGET_DSYM_NAME)" ALT_APP_PAYLOAD_DST := "$(ALT_APP_DST_ARCHIVE)/Payload" ALT_APP_IPA_DST := "$(TARGET_BUILD_DIR)/$(TARGET_IPA_NAME)" -copy-altbackup: - @# @echo " Copying archive data from '$(ALT_APP_SRC_PARENT)'" +checkPaths: + @# Check if ALT_APP_SRC_PARENT is empty, abort if true + @if [ -z "$(ALT_APP_SRC_PARENT)" ]; then \ + echo "Error: ALT_APP_SRC_PARENT is empty!"; \ + echo " Environment variable $$VAR_USED = $$APP_PATH"; \ + echo " Please set it to a valid build artifacts directory"; \ + echo ""; \ + exit 1; \ + fi + + +copy-altbackup: checkPaths + @echo '' + @echo " CONFIGURATION_BUILD_DIR = '$(CONFIGURATION_BUILD_DIR)'" + @echo " CODESIGNING_FOLDER_PATH = '$(CODESIGNING_FOLDER_PATH)'" + @echo " Copying archive data from ALT_APP_SRC_PARENT = '$(ALT_APP_SRC_PARENT)'" + @echo '' + @bash -c '\ SOURCES=("$(ALT_APP_SRC)" "$(ALT_APP_DSYM_SRC)"); \ TARGETS=("$(ALT_APP_DST)" "$(ALT_APP_DSYM_DST)"); \ @@ -218,16 +238,20 @@ copy-altbackup: \ echo " Copying $$TGT_NAME from \"$$SRC\""; \ if [ ! -d "$$SRC" ]; then \ - echo "Error: $$TGT_NAME not found in \"$$SRC\""; \ - echo " Environment variable $(VAR_USED) = $(APP_PATH)"; \ - echo " Please set it to a valid build artifacts directory"; \ - echo ""; \ - exit 1; \ + echo "SRC=$$SRC ALT_APP_DSYM_SRC=$(ALT_APP_DSYM_SRC)"; \ + if [ "$$SRC" == "$(ALT_APP_DSYM_SRC)" ]; then \ + echo "Warning: $$TGT_NAME not found in \"$$SRC\" - IGNORED"; \ + echo ""; \ + else \ + echo "Error: $$TGT_NAME not found in \"$$SRC\""; \ + echo ""; \ + exit 1; \ + fi \ else \ - echo " Copied $$TGT_NAME into TARGET = $$TGT"; \ rm -rf "$$TGT"; \ mkdir -p "$$TGT"; \ - cp -R "$(ALT_APP_SRC_PARENT)/$$TGT_NAME" "$${TGT%/*}"; \ + cp -R "$(ALT_APP_SRC_PARENT)/$(TGT_NAME)" "$$TGT"; \ + echo " Copied $$TGT_NAME into TARGET = $$TGT"; \ echo ""; \ fi; \ done \ @@ -242,13 +266,14 @@ copy-altbackup: # @echo " fakesign completed" # @echo "" -# ipa-altbackup: fakesign-altbackup -ipa-altbackup: copy-altbackup +# ipa-altbackup: +ipa-altbackup: checkPaths copy-altbackup +# ipa-altbackup: checkPaths copy-altbackup fakesign-altbackup @echo " Creating IPA for AltBackup" @rm -rf "$(ALT_APP_PAYLOAD_DST)" @mkdir -p "$(ALT_APP_PAYLOAD_DST)/$(TARGET_NAME)" - @#### @chmod -R 777 "$(ALT_APP_PAYLOAD_DST)" || true - @cp -R "$(ALT_APP_SRC)" "$(ALT_APP_PAYLOAD_DST)" + @echo " Copying from $(ALT_APP_SRC) into $(ALT_APP_PAYLOAD_DST)" + @cp -R -f "$(ALT_APP_SRC)/" "$(ALT_APP_PAYLOAD_DST)/$(TARGET_NAME)" @pushd "$(ALT_APP_DST_ARCHIVE)" && zip -r "../../$(ALT_APP_IPA_DST)" Payload && popd - @cp "$(ALT_APP_IPA_DST)" AltStore/Resources + @cp -f "$(ALT_APP_IPA_DST)" AltStore/Resources @echo " IPA created: AltStore/Resources/AltBackup.ipa" \ No newline at end of file