Merge pull request #134 from neoarz/main

Create makefile
This commit is contained in:
Stephen 2025-04-15 18:28:59 -04:00 • committed by GitHub
commit 430fdc5acb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 115 additions and 7 deletions

2
.gitignore vendored
View file

@ -89,3 +89,5 @@ fastlane/test_output
iOSInjectionProject/
.DS_Store
.vscode/settings.json
.vscode

83
Makefile Normal file
View file

@ -0,0 +1,83 @@
# StikJIT Makefile
# By neoarz
# Path to code signing tool
TARGET_CODESIGN = $(shell which ldid)
# Build configuration settings
PLATFORM = iphoneos
NAME = StikJIT
SCHEME ?= 'StikJIT'
RELEASE = Release-iphoneos
CONFIGURATION = Release
# SDK paths for compilation
MACOSX_SYSROOT = $(shell xcrun -sdk macosx --show-sdk-path)
TARGET_SYSROOT = $(shell xcrun -sdk $(PLATFORM) --show-sdk-path)
# Temporary build directories
APP_TMP = $(TMPDIR)/$(NAME)
STAGE_DIR = $(APP_TMP)/stage
APP_DIR = $(APP_TMP)/Build/Products/$(RELEASE)/$(NAME).app
# Default target
all: package
# Main build target - compiles and packages the application
package:
# Clean any previous build artifacts
@rm -rf $(APP_TMP)
# Build the app with xcodebuild
# Uses parallel jobs to speed up compilation
@set -o pipefail; \
xcodebuild \
-jobs $(shell sysctl -n hw.ncpu) \
-project '$(NAME).xcodeproj' \
-scheme $(SCHEME) \
-configuration $(CONFIGURATION) \
-arch arm64 -sdk $(PLATFORM) \
-derivedDataPath $(APP_TMP) \
CODE_SIGNING_ALLOWED=NO \
DSTROOT=$(APP_TMP)/install \
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
SWIFT_OPTIMIZATION_LEVEL="-Onone" \
IPHONEOS_DEPLOYMENT_TARGET=17.4
# Prepare the directory structure for packaging
@rm -rf Payload
@rm -rf $(STAGE_DIR)/
@mkdir -p $(STAGE_DIR)/Payload
@mv $(APP_DIR) $(STAGE_DIR)/Payload/$(NAME).app
# Debug output - show paths for troubleshooting
@echo $(APP_TMP)
@echo $(STAGE_DIR)
# Remove Apple's code signature so we can use our own
@rm -rf $(STAGE_DIR)/Payload/$(NAME).app/_CodeSignature
# Set up symbolic link for packaging
@ln -sf $(STAGE_DIR)/Payload Payload
# Prepare packages directory
@rm -rf packages
@mkdir -p packages
# Create standard IPA package
# Using max compression level (9) for smaller file size
@zip -r9 packages/$(NAME).ipa Payload
@rm -rf Payload
# Clean target - removes all temporary files and build artifacts
clean:
@rm -rf $(STAGE_DIR)
@rm -rf packages
@rm -rf out.dmg
@rm -rf $(APP_TMP)
# Phony target declaration
.PHONY: apple-include

View file

@ -42,7 +42,7 @@
- Native UI for managing JIT-enabling.
- No data collection—ensuring full privacy.
## Compiling Instructions
## Building Instructions
1. **Clone the repository:**
```sh
@ -50,13 +50,36 @@
cd StikJIT
```
2. **Open in Xcode:**
Open `StikJIT.xcodeproj` in Xcode.
2. **Build using Makefile:**
```sh
make package # Build unsigned .ipa
```
3. **Build and Run:**
- Connect your iOS device.
- Select your device in Xcode.
- Build and run the project.
3. **Updating:**
```sh
git pull
make clean # Clean previous build
make package # Rebuild
```
> [!WARNING]
> The __Makefile__ build creates an unsigned .ipa in the `packages` directory. While this is useful for quick builds, please use Xcode for development and debugging. When submitting pull requests or reporting issues, ensure you've tested your changes thoroughly using Xcode.
## Contributing
```sh
# Clone the repository
git clone https://github.com/0-Blu/StikJIT.git
cd StikJIT
# Open in Xcode
open StikJIT.xcodeproj
```
Then in Xcode:
- Connect your iOS device
- Select your device in Xcode
- Build and run the project (⌘R)
## License
StikJIT is licensed under **AGPL-3.0**. See [`LICENSE`](LICENSE) for details.