6464 echo "Contents of project directory:"
6565 ls -la "$PROJECT_DIR"
6666 echo "PROJECT_DIR=$PROJECT_DIR" >> $GITHUB_ENV
67+ # Note: head -n 1 picks the first 'game' directory found, which may not be the intended project if multiple exist.
6768
6869 - name : Build for iOS
6970 run : |
@@ -95,24 +96,30 @@ jobs:
9596 fi
9697 echo "iOS directory exists"
9798
98- - name : Find Xcode project
99+ - name : Find Xcode project and scheme
99100 run : |
100101 XCODEPROJ=$(find "$GITHUB_WORKSPACE/ios" -maxdepth 1 -name "*.xcodeproj" | head -n 1)
101102 if [ -z "$XCODEPROJ" ]; then
102103 echo "Error: No .xcodeproj file found in $GITHUB_WORKSPACE/ios"
103- ls -la "$GITHUB_WORKSPACE/ios"
104104 exit 1
105105 fi
106- XCODEPROJ_NAME=$(basename "$XCODEPROJ")
107- SCHEME_NAME="${XCODEPROJ_NAME%.xcodeproj}"
108106 echo "XCODEPROJ_PATH=$XCODEPROJ" >> $GITHUB_ENV
107+ SCHEMES=$(xcodebuild -list -project "$XCODEPROJ" | awk '/Schemes:/{flag=1; next} flag && /^ /{print}' | sed 's/^[ \t]*//')
108+ if [ -z "$SCHEMES" ]; then
109+ echo "Error: No schemes found in the project"
110+ exit 1
111+ fi
112+ SCHEME_NAME=$(echo "$SCHEMES" | head -n 1)
109113 echo "SCHEME_NAME=$SCHEME_NAME" >> $GITHUB_ENV
110- echo "Found Xcode project: $XCODEPROJ_NAME with scheme: $SCHEME_NAME"
114+ echo "Found Xcode project: $(basename "$XCODEPROJ") with scheme: $SCHEME_NAME"
115+ echo "Available schemes:"
116+ echo "$SCHEMES"
117+ # Note: Closing 'fi' for the XCODEPROJ check is included above.
111118
112119 - name : Build Xcode project without signing
113120 run : |
114121 cd "$GITHUB_WORKSPACE/ios"
115- xcodebuild -project "${{ env. XCODEPROJ_PATH }} " -scheme "${{ env. SCHEME_NAME }} " -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY="" PROVISIONING_PROFILE="" | tee build.log
122+ xcodebuild -project "$XCODEPROJ_PATH" -scheme "$SCHEME_NAME" -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY="" PROVISIONING_PROFILE="" | tee build.log
116123 if [ $? -ne 0 ]; then
117124 echo "Build failed. Check build.log for details:"
118125 cat build.log
@@ -123,7 +130,7 @@ jobs:
123130 - name : Debug build settings and locate .app bundle
124131 run : |
125132 cd "$GITHUB_WORKSPACE/ios"
126- BUILD_SETTINGS=$(xcodebuild -project "${{ env. XCODEPROJ_PATH }} " -scheme "${{ env. SCHEME_NAME }} " -configuration Release -sdk iphoneos -showBuildSettings)
133+ BUILD_SETTINGS=$(xcodebuild -project "$XCODEPROJ_PATH" -scheme "$SCHEME_NAME" -configuration Release -sdk iphoneos -showBuildSettings)
127134 echo "$BUILD_SETTINGS"
128135 BUILT_PRODUCTS_DIR=$(echo "$BUILD_SETTINGS" | grep -E '^\s*BUILT_PRODUCTS_DIR' | cut -d '=' -f2 | xargs)
129136 FULL_PRODUCT_NAME=$(echo "$BUILD_SETTINGS" | grep -E '^\s*FULL_PRODUCT_NAME' | cut -d '=' -f2 | xargs)
@@ -166,6 +173,14 @@ jobs:
166173 echo "IPA_PATH=$GITHUB_WORKSPACE/temp/$IPA_NAME" >> $GITHUB_ENV
167174 echo "Created IPA: $IPA_NAME"
168175
176+ - name : Check for upload_to_dropbox.py script
177+ run : |
178+ if [ ! -f "upload_to_dropbox.py" ]; then
179+ echo "Error: upload_to_dropbox.py script not found in repository root"
180+ exit 1
181+ fi
182+ echo "upload_to_dropbox.py script found"
183+
169184 - name : Install Dropbox SDK
170185 run : pip install dropbox
171186
@@ -174,13 +189,18 @@ jobs:
174189 DROPBOX_ACCESS_TOKEN : ${{ secrets.DROPBOX_ACCESS_TOKEN }}
175190 run : |
176191 SHAREABLE_LINK=$(python upload_to_dropbox.py)
192+ if [ -z "$SHAREABLE_LINK" ]; then
193+ echo "Error: Failed to get a shareable link from upload_to_dropbox.py"
194+ exit 1
195+ fi
177196 echo "SHAREABLE_LINK=$SHAREABLE_LINK" >> $GITHUB_ENV
178197
179198 - name : Create GitHub Release with Download Link
180199 env :
181200 GITHUB_TOKEN : ${{ secrets.GITEATOKEN }}
182201 GH_TOKEN : ${{ secrets.GITEATOKEN }}
183202 run : |
184- gh release create "${{ github.ref_name }}" \
185- --title "${{ env.PRODUCT_NAME }} ${{ env.VERSION }}" \
186- --notes "Automated release\nVersion: ${{ env.VERSION }}\nBundle ID: ${{ env.BUNDLE_ID }}\nDownload IPA from Dropbox: ${{ env.SHAREABLE_LINK }}"
203+ TAG_NAME="v${VERSION}"
204+ gh release create "$TAG_NAME" \
205+ --title "${PRODUCT_NAME} ${VERSION}" \
206+ --notes "Automated release\nVersion: ${VERSION}\nBundle ID: ${BUNDLE_ID}\nDownload IPA from Dropbox: ${SHAREABLE_LINK}"
0 commit comments