Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
df8c749
go2updates
dionma2020 Jun 2, 2026
01f1356
Add INMO Go2 hardware capabilities profile
dionma2020 Jun 2, 2026
c6bae2e
Update iOS unsigned IPA workflow configuration
dionma2020 Jun 2, 2026
c4f1fe8
Update iOS workflow to select Xcode 16.2
dionma2020 Jun 2, 2026
428a698
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
a7dec3d
Refactor iOS workflow to enhance build logging
dionma2020 Jun 2, 2026
4dde247
Rename workflow for SideStore build process
dionma2020 Jun 2, 2026
d41eb94
Fix formatting in ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
ef03ac0
Fix retention-days configuration in workflow
dionma2020 Jun 2, 2026
d7a527c
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
42a4288
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
d676a88
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
e38fea5
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
2141beb
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
543c7d4
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
84d020f
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
ae979db
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
4fae88b
Update ios-unsigned-ipa.yml
dionma2020 Jun 2, 2026
047aef3
Update iOS build workflow to use Xcode 15.4
dionma2020 Jun 3, 2026
04e0c08
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
cdf5eca
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
46fa7ed
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
0bd744b
Update iOS IPA workflow for SideStore build
dionma2020 Jun 3, 2026
328ded4
Update iOS build workflow for new configurations
dionma2020 Jun 3, 2026
d5dda67
Refactor iOS build workflow and dependency setup
dionma2020 Jun 3, 2026
2488028
Change Xcode version and update pod deployment targets
dionma2020 Jun 3, 2026
8ff2f91
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
ed03a44
Update mentraos-manager-ios-build.yml
dionma2020 Jun 3, 2026
78403bb
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
c82ce0e
Update ios-unsigned-ipa.yml
dionma2020 Jun 3, 2026
1468e22
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
c577c39
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
648fce0
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
3f02966
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
61d2f00
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
23d7ccd
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
0e90bfc
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
f4ddd07
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
ebabc0c
Update ios-unsigned-ipa.yml
dionma2020 Jun 4, 2026
f3bd894
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
5a2f386
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
3d36df7
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
3ca99ad
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
7305dce
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
efc3229
Update ios-unsigned-ipa.yml
dionma2020 Jun 5, 2026
6f34277
Update iOS deployment target and patch ExpoModulesCore
dionma2020 Jun 6, 2026
ba09818
Modify iOS workflow to patch ExpoModulesCore and ExpoVideo
dionma2020 Jun 6, 2026
0e0a18a
Fix property name in ExpoVideo Tracks.swift patch
dionma2020 Jun 6, 2026
12134a3
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
1ac34cb
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
13e773f
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
e651206
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
ab956dc
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
29e5276
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
931b52e
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
519f7b9
Update ios-unsigned-ipa.yml
dionma2020 Jun 7, 2026
afd2d29
Update select-glasses-model.tsx
dionma2020 Jun 8, 2026
143eb8e
Update prep.tsx
dionma2020 Jun 8, 2026
b4d1b84
Update InmoGo2.swift
dionma2020 Jun 8, 2026
2f90ed7
Update MentraBluetoothSDK.swift
dionma2020 Jun 9, 2026
f4196d9
Refactor sendDoubleTextWall and add JSON handling
dionma2020 Jun 10, 2026
f65b056
Update inmo-go2.ts
dionma2020 Jun 10, 2026
3e4d020
Update InmoGo2.swift
dionma2020 Jun 11, 2026
37969ea
Implement sendTeleprompterUpdate method
dionma2020 Jun 12, 2026
502d320
Update SGCManager.swift
dionma2020 Jun 12, 2026
c41fe15
Update MentraBluetoothSDK.swift
dionma2020 Jun 12, 2026
e74abba
Add sendTeleprompterUpdate async function
dionma2020 Jun 12, 2026
b418827
Update BluetoothSdkModule.ts
dionma2020 Jun 12, 2026
8c185a1
inmogo2 updates
dionma2020 Jun 12, 2026
b49d4b4
Merge branch 'dev' of https://github.com/dionma2020/MentraOSGO2 into dev
dionma2020 Jun 12, 2026
deae707
Add files via upload
dionma2020 Jun 12, 2026
5bc1425
Create TeleprompterCommandHandler.java
dionma2020 Jun 12, 2026
5fb3a51
Merge branch 'dev' of https://github.com/dionma2020/MentraOSGO2 into dev
dionma2020 Jun 12, 2026
94dbdb8
updates
dionma2020 Jun 16, 2026
fb056b1
screen updatres
dionma2020 Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 186 additions & 0 deletions .github/workflows/ios-unsigned-ipa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
name: iOS IPA (SideStore Build)

on:
workflow_dispatch:
push:
branches:
- dev

jobs:
build:
runs-on: macos-15

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Select Xcode 26.2
run: |
sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
xcodebuild -version
swift --version

- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Install deps
working-directory: ./mobile
run: bun install --no-frozen-lockfile

- name: Setup env
working-directory: ./mobile
run: cp .env.example .env

- name: Expo prebuild
working-directory: ./mobile
run: bun expo prebuild --platform ios

- name: Setup Sherpa Onnx (optional)
working-directory: ./mobile
run: |
chmod +x scripts/setup-sherpa-onnx-optional.sh
./scripts/setup-sherpa-onnx-optional.sh || true

- name: Patch node_modules source files
working-directory: ./mobile
run: |
# ExpoModulesCore: remove SE-0431 isolated conformance syntax
FILE1="node_modules/expo-modules-core/ios/Core/Views/SwiftUI/SwiftUIHostingView.swift"
FILE2="node_modules/expo-modules-core/ios/Core/Views/SwiftUI/SwiftUIVirtualView.swift"
FILE3="node_modules/expo-modules-core/ios/Core/Views/ViewDefinition.swift"
sed -i '' 's/, @MainActor AnyExpoSwiftUIHostingView/, AnyExpoSwiftUIHostingView/g' "$FILE1"
sed -i '' 's/: @MainActor ExpoSwiftUI\.ViewWrapper/: ExpoSwiftUI.ViewWrapper/g' "$FILE2"
sed -i '' 's/extension UIView: @MainActor AnyArgument/extension UIView: AnyArgument/g' "$FILE3"
echo "ExpoModulesCore patches applied"

# ExpoVideo: AVAssetVariant has no 'url' property
TRACKS="node_modules/expo-video/ios/Records/Tracks.swift"
sed -i '' 's/let trackUrl = assetVariant\.url/let trackUrl: URL? = nil/g' "$TRACKS"
sed -i '' 's/let id = extractHlsTrackId(trackUrl: trackUrl,/let id = extractHlsTrackId(trackUrl: trackUrl ?? mainUrl,/g' "$TRACKS"
echo "ExpoVideo Tracks.swift patched"

- name: Patch Podfile
working-directory: ./mobile/ios
run: |
python3 << 'PYEOF'
with open('Podfile', 'r') as f:
content = f.read()

injection = """
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == 'ExpoModulesCore'
config.build_settings['SWIFT_VERSION'] = '5'
config.build_settings['SWIFT_STRICT_CONCURRENCY'] = 'minimal'
end
if target.name == 'SwiftProtobuf'
config.build_settings['SWIFT_COMPILATION_MODE'] = 'singlefile'
end
end
end
"""

marker = 'post_install do |installer|'
if marker in content:
content = content.replace(marker, marker + '\n' + injection, 1)
print("Injected into existing post_install block")
else:
content += f'\n\npost_install do |installer|\n{injection}\nend\n'
print("Added new post_install block")

with open('Podfile', 'w') as f:
f.write(content)
PYEOF

- name: Show patched post_install
working-directory: ./mobile/ios
run: grep -A 20 "post_install" Podfile | head -30

- name: Install pods
working-directory: ./mobile/ios
run: pod install

- name: List schemes
working-directory: ./mobile/ios
run: xcodebuild -workspace Mentra.xcworkspace -list

- name: Archive app
working-directory: ./mobile/ios
env:
SENTRY_DISABLE_AUTO_UPLOAD: "true"
run: |
set -o pipefail

xcodebuild archive \
-workspace Mentra.xcworkspace \
-scheme Mentra \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath "$GITHUB_WORKSPACE/Mentra.xcarchive" \
-resultBundlePath /tmp/build.xcresult \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO \
AD_HOC_CODE_SIGNING_ALLOWED=YES \
DEVELOPMENT_TEAM="" \
2>&1 | tee /tmp/xcodebuild.log

BUILD_RESULT=${PIPESTATUS[0]}

if [ "$BUILD_RESULT" -ne 0 ]; then
echo "========== ERRORS =========="
grep ": error:" /tmp/xcodebuild.log | grep -v "^note:" | head -80
exit "$BUILD_RESULT"
fi

echo "✅ Archive succeeded"

- name: Verify archive and find .app
run: |
APP_PATH=$(find "$GITHUB_WORKSPACE" -name "Mentra.app" -type d | head -1)
if [ -z "$APP_PATH" ]; then
echo "❌ Mentra.app not found"
exit 1
fi
echo "✅ Found: $APP_PATH"
if [ ! -f "$APP_PATH/Info.plist" ]; then
echo "❌ Info.plist missing"
exit 1
fi
echo "APP_PATH=$APP_PATH" >> $GITHUB_ENV

- name: Package IPA
run: |
mkdir -p Payload
cp -r "${{ env.APP_PATH }}" Payload/App.app
touch Payload/App.app/embedded.mobileprovision
zip -r Mentra.ipa Payload
ls -lh Mentra.ipa

- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: Mentra-SideStore-IPA
path: Mentra.ipa
retention-days: 14

- name: Upload xcresult bundle
if: failure()
uses: actions/upload-artifact@v4
with:
name: build-xcresult
path: /tmp/build.xcresult
retention-days: 5

- name: Upload build log
if: always()
uses: actions/upload-artifact@v4
with:
name: xcodebuild-log
path: /tmp/xcodebuild.log
retention-days: 5
4 changes: 0 additions & 4 deletions .github/workflows/mentraos-manager-ios-build.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
name: Mobile App iOS Build

on:
pull_request:
paths:
- "mobile/**"
- ".github/workflows/mentraos-manager-ios-build.yml"
push:
branches:
- main
Expand Down
Empty file added all_manifest_permissions.xml
Empty file.
Loading