99 lines
3.3 KiB
YAML
99 lines
3.3 KiB
YAML
name: Build iOS IPA
|
||
|
||
on:
|
||
push:
|
||
branches: [main, master]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: macos-latest
|
||
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Setup Node 20
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: '20'
|
||
|
||
- name: Install dependencies
|
||
run: |
|
||
npm install --legacy-peer-deps
|
||
npm install react-native-svg --legacy-peer-deps
|
||
|
||
- name: Patch Track Player
|
||
run: |
|
||
node scripts/patch-track-player.js
|
||
node scripts/fix-track-player-plugin.js
|
||
node -e "
|
||
var fs=require('fs');
|
||
var cfg=JSON.parse(fs.readFileSync('app.json','utf8'));
|
||
var p=cfg.expo.plugins||[];
|
||
if(!p.includes('react-native-track-player')){p.unshift('react-native-track-player');cfg.expo.plugins=p;fs.writeFileSync('app.json',JSON.stringify(cfg,null,2));}
|
||
console.log('app.json plugins:',cfg.expo.plugins);
|
||
"
|
||
|
||
- name: Fix PNG assets
|
||
run: |
|
||
find . -type f -iname "*.png" \
|
||
-not -path "*/node_modules/*" \
|
||
-not -path "*/.git/*" \
|
||
-exec sips -s format png {} --out {} \; 2>/dev/null || true
|
||
|
||
- name: Expo prebuild
|
||
env:
|
||
EXPO_NO_DOTENV: 1
|
||
run: npx expo prebuild --platform ios --clean --no-install
|
||
|
||
- name: Pod install
|
||
run: cd ios && pod install --repo-update && cd ..
|
||
|
||
- name: Build unsigned app
|
||
run: |
|
||
WORKSPACE_PATH=$(find ios -maxdepth 1 -name "*.xcworkspace" | head -1)
|
||
SCHEME_NAME=$(basename "$WORKSPACE_PATH" .xcworkspace)
|
||
echo "Building: $WORKSPACE_PATH | Scheme: $SCHEME_NAME"
|
||
|
||
xcodebuild build \
|
||
-workspace "$WORKSPACE_PATH" \
|
||
-scheme "$SCHEME_NAME" \
|
||
-configuration Release \
|
||
-sdk iphoneos \
|
||
-derivedDataPath "$RUNNER_TEMP/DerivedData" \
|
||
CODE_SIGN_IDENTITY="" \
|
||
CODE_SIGNING_REQUIRED=NO \
|
||
CODE_SIGNING_ALLOWED=NO \
|
||
ENABLE_BITCODE=NO
|
||
|
||
- name: Package IPA
|
||
run: |
|
||
APP_PATH=$(find "$RUNNER_TEMP/DerivedData/Build/Products" \
|
||
-name "*.app" -type d ! -name "*.xctest" | head -1)
|
||
if [ -z "$APP_PATH" ]; then
|
||
echo "ERROR: .app not found in DerivedData"
|
||
find "$RUNNER_TEMP/DerivedData" -name "*.app" -type d 2>/dev/null || true
|
||
exit 1
|
||
fi
|
||
echo "App: $APP_PATH"
|
||
mkdir -p Payload
|
||
cp -r "$APP_PATH" Payload/
|
||
zip -qr burmalda-v1.0.7-beta-unsigned.ipa Payload
|
||
rm -rf Payload
|
||
echo "IPA size: $(du -sh burmalda-v1.0.7-beta-unsigned.ipa | cut -f1)"
|
||
|
||
- name: Upload IPA
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: burmalda-v1.0.7-beta-unsigned
|
||
path: burmalda-v1.0.7-beta-unsigned.ipa
|
||
retention-days: 7
|
||
|
||
- name: Summary
|
||
run: |
|
||
echo "### ✅ Burmalda v1.0.7 BETA" >> $GITHUB_STEP_SUMMARY
|
||
if [ -f burmalda-v1.0.7-beta-unsigned.ipa ]; then
|
||
echo "IPA size: $(du -sh burmalda-v1.0.7-beta-unsigned.ipa | cut -f1)" >> $GITHUB_STEP_SUMMARY
|
||
fi
|
||
echo "Скачай из раздела **Artifacts** этого run'а" >> $GITHUB_STEP_SUMMARY
|