Files
SensorReader/.github/workflows/build.yml
2025-11-27 18:05:24 +09:00

115 lines
3.3 KiB
YAML

name: Build iOS App
on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]
workflow_dispatch:
jobs:
build:
name: Build iOS App
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: List available Xcode versions
run: ls /Applications | grep Xcode || echo "No Xcode versions found with grep"
- name: Show Xcode version
run: xcodebuild -version
- name: Show available SDKs
run: xcodebuild -showsdks
- name: Create Archive for iOS Device
run: |
xcodebuild archive \
-project EnvSensorReader.xcodeproj \
-scheme EnvSensorReader \
-sdk iphoneos \
-configuration Release \
-archivePath ./build/EnvSensorReader.xcarchive \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO \
ONLY_ACTIVE_ARCH=NO
- name: Export IPA
run: |
xcodebuild -exportArchive \
-archivePath ./build/EnvSensorReader.xcarchive \
-exportPath ./build/ipa \
-exportOptionsPlist ExportOptions.plist \
-allowProvisioningUpdates || true
- name: Create IPA manually if export failed
if: always()
run: |
mkdir -p ./build/ipa
if [ -d "./build/EnvSensorReader.xcarchive/Products/Applications/EnvSensorReader.app" ]; then
echo "Creating IPA manually from archive..."
mkdir -p ./build/ipa/Payload
cp -R ./build/EnvSensorReader.xcarchive/Products/Applications/EnvSensorReader.app ./build/ipa/Payload/
cd ./build/ipa
zip -r EnvSensorReader.ipa Payload
rm -rf Payload
cd ../..
echo "IPA created manually"
fi
- name: Build for iOS Simulator
run: |
xcodebuild build \
-project EnvSensorReader.xcodeproj \
-scheme EnvSensorReader \
-sdk iphonesimulator \
-configuration Release \
-derivedDataPath ./build \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO \
ONLY_ACTIVE_ARCH=NO
- name: Archive build products
if: success()
run: |
mkdir -p artifacts
# Copy IPA if it exists
if [ -f "build/ipa/EnvSensorReader.ipa" ]; then
echo "Copying IPA..."
cp build/ipa/EnvSensorReader.ipa artifacts/
fi
# Copy xcarchive
if [ -d "build/EnvSensorReader.xcarchive" ]; then
echo "Copying xcarchive..."
cp -R build/EnvSensorReader.xcarchive artifacts/
fi
# Copy simulator build
if [ -d "build/Build/Products/Release-iphonesimulator" ]; then
echo "Copying iOS simulator build..."
cp -R build/Build/Products/Release-iphonesimulator artifacts/
fi
# List what we got
echo "Artifacts directory contents:"
ls -lah artifacts/
if [ -d "artifacts/EnvSensorReader.xcarchive" ]; then
echo "xcarchive contents:"
ls -lah artifacts/EnvSensorReader.xcarchive/Products/Applications/ || true
fi
- name: Upload build artifacts
if: success()
uses: actions/upload-artifact@v4
with:
name: ios-build
path: artifacts/
retention-days: 30