Skip to content

Update README.md

Update README.md #26

Workflow file for this run

name: Build iOS
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
build-ios:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Kotlin
run: |
chmod +x gradlew
./gradlew --version
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build Kotlin Framework
run: |
# Устанавливаем переменные для Xcode
echo "SDKROOT=$(xcrun --sdk iphoneos --show-sdk-path)" >> $GITHUB_ENV
echo "PLATFORM_NAME=iphoneos" >> $GITHUB_ENV
# Собираем для arm64
./gradlew :composeApp:linkDebugFrameworkIosArm64 \
-Pkotlin.native.cocoapods.generate.wrapper=true \
--stacktrace
- name: Prepare Xcode project
run: |
cd iosApp
# Устанавливаем CocoaPods если есть
if [ -f "Podfile" ]; then
pod install
fi
# Показываем доступные схемы
echo "Available schemes:"
xcodebuild -list -project iosApp.xcodeproj
- name: Build iOS App with explicit output path
run: |
cd iosApp
# Создаем директорию для бинарников
mkdir -p build/Debug-iphoneos
# Устанавливаем DERIVED_DATA_PATH для контроля вывода
DERIVED_DATA_PATH="$PWD/build/DerivedData"
# Сборка с явным указанием DerivedData
if [ -f "iosApp.xcworkspace" ]; then
xcodebuild -workspace iosApp.xcworkspace \
-scheme iosApp \
-configuration Debug \
-sdk iphoneos \
-arch arm64 \
-derivedDataPath "$DERIVED_DATA_PATH" \
CODE_SIGNING_ALLOWED=NO \
SKIP_INSTALL=NO \
build
else
xcodebuild -project iosApp.xcodeproj \
-scheme iosApp \
-configuration Debug \
-sdk iphoneos \
-arch arm64 \
-derivedDataPath "$DERIVED_DATA_PATH" \
CODE_SIGNING_ALLOWED=NO \
SKIP_INSTALL=NO \
build
fi
# Копируем .app в известное место
echo "Looking for .app in DerivedData..."
find "$DERIVED_DATA_PATH" -name "*.app" -type d
# Копируем .app если найден
APP_PATH=$(find "$DERIVED_DATA_PATH" -name "*.app" -type d | head -n 1)
if [ ! -z "$APP_PATH" ]; then
echo "Found .app at: $APP_PATH"
cp -r "$APP_PATH" build/Debug-iphoneos/
else
echo "❌ .app not found in DerivedData"
fi
- name: Alternative - Find .app everywhere
run: |
cd iosApp
echo "🔍 Searching for .app bundles in entire project..."
find "$PWD" -name "*.app" -type d
# Поиск в стандартных местах Xcode
echo "🔍 Searching in Xcode default locations..."
find ~/Library/Developer/Xcode/DerivedData -name "*.app" -type d 2>/dev/null || true
# Поиск в build директории
echo "🔍 Searching in build directory..."
find build -name "*.app" -type d 2>/dev/null || true
- name: Create IPA from found app
run: |
cd iosApp
# Ищем .app во всех возможных местах
APP_PATH=$(find "$PWD" -name "*.app" -type d | head -n 1)
if [ ! -z "$APP_PATH" ]; then
echo "✅ Found app at: $APP_PATH"
mkdir -p Payload
cp -r "$APP_PATH" Payload/
zip -r app.ipa Payload
echo "✅ IPA created successfully"
else
echo "❌ Could not find .app bundle"
exit 1
fi
- name: Upload IPA artifact
uses: actions/upload-artifact@v4
with:
name: ios-app
path: iosApp/app.ipa
retention-days: 7
if-no-files-found: warn