-
Notifications
You must be signed in to change notification settings - Fork 132
126 lines (109 loc) · 3.89 KB
/
mobile-deploy-ios.yml
File metadata and controls
126 lines (109 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
name: Deploy iOS to App Store
on:
release:
types:
[prereleased, released]
jobs:
build-ios:
# needs: detox-ios
runs-on: ${{ matrix.os }}
if: |
startsWith(github.ref, 'refs/tags/@quiet/mobile')
strategy:
matrix:
os: [macos-14]
steps:
- name: "Print OS"
run: echo ${{ matrix.os }}
- uses: actions/checkout@v5
with:
submodules: 'recursive'
lfs: true
- name: Extract version
id: extract_version
uses: Saionaro/extract-package-version@fdb5b74adc1278ddb777dfed4c988b9d098bb48d # v1.2.1
with:
path: packages/mobile
- name: Install gpg
run: brew install gnupg
- name: Setup XCode
uses: maxim-lobanov/setup-xcode@9a697e2b393340c3cacd97468baa318e4c883d98 # v1.5.1
with:
xcode-version: '16.2.0'
- name: Setup environment
uses: ./.github/actions/setup-env
with:
cachePrefix: "deploy-ios"
bootstrap-packages: "@quiet/eslint-config,@quiet/logger,@quiet/common,@quiet/types,@quiet/state-manager,@quiet/backend,@quiet/identity,@quiet/mobile,backend-bundle,helia,@quiet/node-common"
- name: Install pod dependencies
run: |
cd ./packages/mobile/ios
pod install
shell: bash
- name: Remove bitcode from Tor.framework
run: |
cd ./packages/mobile/ios
FRAMEWORK_PATH="Pods/Tor/Build/iOS/Tor.framework/Tor"
if [ -f "$FRAMEWORK_PATH" ]; then
echo "Removing bitcode from Tor.framework"
xcrun bitcode_strip -r "$FRAMEWORK_PATH" -o "$FRAMEWORK_PATH"
echo "Verifying bitcode removal"
if otool -l "$FRAMEWORK_PATH" | grep -q LLVM; then
echo "WARNING: Bitcode still present in Tor framework!"
else
echo "SUCCESS: Bitcode successfully removed from Tor framework"
fi
else
echo "Tor framework not found at expected path: $FRAMEWORK_PATH"
find . -name "Tor.framework" -type d
fi
- name: Setup provisioning profile
run: ./.github/secrets/decrypt_secrets.sh
env:
IOS_PROFILE_KEY: ${{ secrets.IOS_PROFILE_KEY }}
IOS_CERTIFICATE_KEY: ${{ secrets.IOS_CERTIFICATE_KEY }}
- name: Build
run: |
cd ./packages/mobile/ios
xcodebuild archive \
-workspace Quiet.xcworkspace \
-scheme Quiet \
-configuration Release \
-archivePath build/Quiet.xcarchive \
PROVISIONING_PROFILE="762df280-302c-4336-a56d-c74914169337" \
CODE_SIGN_IDENTITY="Apple Distribution: A Quiet LLC (CTYKSWN9T4)" \
ENABLE_BITCODE=NO
- name: Export .ipa
run: |
cd ./packages/mobile/ios
xcodebuild \
-exportArchive \
-archivePath build/Quiet.xcarchive \
-exportOptionsPlist ci.plist \
-exportPath build/
- name: Upload artifacts
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: Quiet.ipa
path: ./packages/mobile/ios/build/Quiet.ipa
- name: Submit to the store
run: |
cd ./packages/mobile/ios
xcrun altool \
--upload-app \
--type ios \
--file build/Quiet.ipa \
-u $APPSTORE_USER \
-p $APPSTORE_PASSWORD \
--verbose
env:
APPSTORE_USER: ${{ secrets.APPSTORE_USER }}
APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
- name: Send Release Notificaton
uses: ./.github/actions/release-notifier
if: always()
with:
os-name: IOS
version: ${{ steps.extract_version.outputs.version }}
status: ${{ job.status }}
slack_oauth_token: ${{ secrets.SLACK_BOT_OAUTH_TOKEN }}