@@ -138,7 +138,7 @@ jobs:
138138 - macos
139139 - windows
140140 runs-on : ${{ (matrix.platform == 'windows' && 'windows-latest')
141- || 'macos-11 ' }}
141+ || 'macos-13 ' }}
142142 steps :
143143 - uses : actions/checkout@v4
144144 - uses : dtolnay/rust-toolchain@v1
@@ -151,7 +151,7 @@ jobs:
151151 # Pin Xcode version for better compatibility.
152152 - uses : maxim-lobanov/setup-xcode@v1
153153 with :
154- xcode-version : " 12.4 "
154+ xcode-version : " 15.2 "
155155 if : ${{ matrix.platform == 'macos' }}
156156
157157 - run : make cargo.build platform=${{ matrix.platform }} debug=no
@@ -217,6 +217,7 @@ jobs:
217217 - windows
218218 runs-on : ${{ (matrix.platform == 'linux' && 'ubuntu-latest')
219219 || (matrix.platform == 'windows' && 'windows-latest')
220+ || (matrix.platform == 'ios' && 'macos-14')
220221 || 'macos-13' }}
221222 steps :
222223 - uses : actions/checkout@v4
@@ -259,6 +260,40 @@ jobs:
259260 script : make flutter.test.mobile
260261 if : ${{ matrix.platform == 'android' }}
261262
263+ - name : Add TCC permissions on macOS
264+ run : |
265+ configure_user_tccdb () {
266+ local values=$1
267+ local dbPath="$HOME/Library/Application Support/com.apple.TCC/TCC.db"
268+ local sqlQuery="INSERT OR REPLACE INTO access VALUES($values);"
269+ sqlite3 "$dbPath" "$sqlQuery"
270+ }
271+
272+ configure_sys_tccdb () {
273+ local values=$1
274+ local dbPath="/Library/Application Support/com.apple.TCC/TCC.db"
275+ local sqlQuery="INSERT OR REPLACE INTO access VALUES($values);"
276+ sudo sqlite3 "$dbPath" "$sqlQuery"
277+ }
278+
279+ userValuesArray=(
280+ "'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
281+ "'kTCCServiceCamera','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
282+ "'kTCCServiceBluetoothAlways','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
283+ )
284+ for values in "${userValuesArray[@]}"; do
285+ # Sonoma and higher have a few extra values:
286+ # https://github.com/actions/runner-images/blob/main/images/macos/scripts/build/configure-tccdb-macos.sh
287+ if [ "$OSTYPE" = "darwin23" ]; then
288+ configure_user_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
289+ configure_sys_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
290+ else
291+ configure_user_tccdb "$values"
292+ configure_sys_tccdb "$values"
293+ fi
294+ done
295+ if : ${{ matrix.platform == 'ios' }}
296+
262297 - name : Start iOS simulator
263298 id : simulator
264299 uses : futureware-tech/simulator-action@v3
0 commit comments