Skip to content

Commit c99a059

Browse files
committed
feat: add Fastlane setup for TestFlight deployment
1 parent 5d966df commit c99a059

File tree

2 files changed

+80
-1
lines changed

2 files changed

+80
-1
lines changed

.github/workflows/deploy_testflight.yml

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,40 @@ jobs:
3737
bundle install
3838
fi
3939
40-
# Step 4: Executar o Fastlane para buildar e enviar ao TestFlight
40+
# Step 4: Verificar e criar estrutura do Fastlane se necessário
41+
- name: Setup Fastlane
42+
run: |
43+
if [ ! -d "fastlane" ]; then
44+
echo "⚠️ Pasta fastlane não encontrada. Criando estrutura básica..."
45+
mkdir -p fastlane
46+
fi
47+
48+
if [ ! -f "fastlane/Fastfile" ]; then
49+
echo "⚠️ Fastfile não encontrado. Criando Fastfile básico..."
50+
cat > fastlane/Fastfile << 'FASTFILE_EOF'
51+
opt_out_usage
52+
53+
default_platform(:ios)
54+
55+
platform :ios do
56+
desc "Build e upload para TestFlight"
57+
lane :beta do
58+
increment_build_number(xcodeproj: "Focca.xcodeproj")
59+
build_app(
60+
scheme: "Focca",
61+
export_method: "app-store"
62+
)
63+
upload_to_testflight(
64+
skip_waiting_for_build_processing: true,
65+
skip_submission: true
66+
)
67+
UI.success("✅ Build enviado com sucesso para o TestFlight!")
68+
end
69+
end
70+
FASTFILE_EOF
71+
fi
72+
73+
# Step 5: Executar o Fastlane para buildar e enviar ao TestFlight
4174
# O comando 'fastlane beta' deve estar configurado no Fastfile do projeto
4275
# As variáveis de ambiente são passadas diretamente para o Fastlane
4376
# O Fastlane detecta automaticamente essas variáveis para autenticação com App Store Connect

fastlane/Fastfile

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Fastfile para deploy automático no TestFlight
2+
# Este arquivo é usado pela GitHub Action para buildar e enviar o app
3+
4+
opt_out_usage # Desabilita analytics do Fastlane
5+
6+
default_platform(:ios)
7+
8+
platform :ios do
9+
desc "Build e upload para TestFlight"
10+
lane :beta do
11+
# Incrementa o build number automaticamente
12+
increment_build_number(
13+
xcodeproj: "Focca.xcodeproj"
14+
)
15+
16+
# Builda o app usando xcodebuild
17+
build_app(
18+
scheme: "Focca",
19+
export_method: "app-store",
20+
export_options: {
21+
method: "app-store"
22+
# Os provisioning profiles serão detectados automaticamente
23+
# ou você pode especificar manualmente se necessário:
24+
# provisioningProfiles: {
25+
# "com.seuapp.bundleid" => "match AppStore com.seuapp.bundleid"
26+
# }
27+
}
28+
)
29+
30+
# Faz upload para TestFlight usando App Store Connect API
31+
# O Fastlane detecta automaticamente as variáveis de ambiente:
32+
# - APP_STORE_CONNECT_API_KEY_ID
33+
# - APP_STORE_CONNECT_API_KEY_ISSUER_ID
34+
# - APP_STORE_CONNECT_API_KEY_CONTENT
35+
upload_to_testflight(
36+
skip_waiting_for_build_processing: true,
37+
skip_submission: true,
38+
distribute_external: false,
39+
notify_external_testers: false
40+
)
41+
42+
# Mensagem de sucesso
43+
UI.success("✅ Build enviado com sucesso para o TestFlight!")
44+
end
45+
end
46+

0 commit comments

Comments
 (0)