Last active
February 27, 2026 19:47
-
-
Save manutheblacker/a5145e6d13492bce0759784a2042a11e to your computer and use it in GitHub Desktop.
How to build Expo dev client app on iOS without Apple developer account and using Codemagic and altstore ?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ios-dev-client: | |
| name: iOS Development Client | |
| instance_type: mac_mini_m2 | |
| cache: | |
| cache_paths: | |
| - $CM_BUILD_DIR/node_modules | |
| - $HOME/Library/Caches/CocoaPods | |
| environment: | |
| vars: | |
| IOS_WORKSPACE: "ios/empireants.xcworkspace" | |
| IOS_SCHEME: "empireants" | |
| scripts: | |
| - name: Install dependencies | |
| script: npm install | |
| - name: Install expo-cli globally | |
| script: npm install -g expo-cli | |
| - name: Expo Prebuild | |
| script: npx expo prebuild --platform ios --clean | |
| - name: Install CocoaPods | |
| script: cd ios && pod install | |
| - name: Create ExportOptions.plist | |
| script: | | |
| cat > ios/ExportOptions.plist <<EOF | |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" | |
| "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>method</key> | |
| <string>development</string> | |
| <key>signingStyle</key> | |
| <string>manual</string> | |
| <key>compileBitcode</key> | |
| <false/> | |
| </dict> | |
| </plist> | |
| EOF | |
| - name: Build IPA (unsigned) | |
| script: | | |
| xcodebuild archive \ | |
| -workspace "$CM_BUILD_DIR/$IOS_WORKSPACE" \ | |
| -scheme "$IOS_SCHEME" \ | |
| -sdk iphoneos \ | |
| -configuration Debug \ | |
| -archivePath "$CM_BUILD_DIR/empireants.xcarchive" \ | |
| CODE_SIGNING_ALLOWED=NO | |
| - name: Copy .app file to new folder payload | |
| script: | | |
| mkdir -p "$CM_BUILD_DIR/Payload" | |
| cp -r "$CM_BUILD_DIR/empireants.xcarchive/Products/Applications/$IOS_SCHEME.app" "$CM_BUILD_DIR/Payload/" | |
| - name: Create unsigned .ipa | |
| script: | | |
| cd "$CM_BUILD_DIR/Payload" | |
| zip -r "$CM_BUILD_DIR/empireants.ipa" . | |
| - name: Move .ipa to build/ios/ipa folder | |
| script: | | |
| mkdir -p "$CM_BUILD_DIR/build/ios/ipa" | |
| mv "$CM_BUILD_DIR/empireants.ipa" "$CM_BUILD_DIR/build/ios/ipa/empireants-DevClient.ipa" | |
| artifacts: | |
| - build/ios/ipa/*.ipa | |
| - /tmp/xcodebuild_logs/*.log | |
| - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app | |
| - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment