Themenersteller
#1
Giriş
iOS uygulamalarının geliştirme ve dağıtım sürecinde otomasyon kritik bir yer tutar. GitHub Actions, bu noktada devreye girerek, kod değişikliklerini otomatik olarak derleyen, test eden ve dağıtan bir pipeline kurmanıza olanak sağlar. Bu yazıda, macOS tabanlı ortamda çalışan GitHub Actions kullanarak iOS uygulaması için temel bir build pipeline nasıl oluşturulur, detaylarıyla anlatacağım.
Hazırlık ve Temel Gereksinimler
İlk olarak, Apple Developer hesabınız ve uygun sertifikalarınızın (Development ve Distribution) olması gerekir. Ayrıca, uygulamanızın provisioning profile'ı ve uygun Apple ID ile giriş yapmış olmanız zorunludur. GitHub repository'nize gizli ortam değişkenleri (Secrets) eklemeniz lazım:
APPLE_ID
APPLE_PASSWORD
CERTIFICATE (Base64 kodlu sertifika)
PROVISIONING_PROFILE (Base64 kodlu profil)
Workflow Dosyasını Oluşturma
.github/workflows dizinine yeni bir YAML dosyası ekleyerek başlarsınız. Bu dosyada, aşağıdaki adımlar yer almalı:
Genellikle, push veya pull request ile tetiklenir:
Yalnızca macOS ortamında çalışacak şekilde tanımlanır:
Örnek temel adımlar:
İleri Düzey ve Güvenlik Konuları
Sertifika ve provisioning profile'ı güvenli tutmak için, Base64 kodlaması ve Secrets kullanımı önerilir. Ayrıca, otomasyon sırasında kod imzalama ve testlerin düzgün çalışması için Xcode ve macOS güncel tutulmalı. CI/CD sürecine otomatik dağıtım (TestFlight veya App Store) eklemek de mümkündür.
Bu temel yapılandırma, iOS uygulama geliştirme sürecinde otomasyonun ilk adımıdır. İleri seviye ihtiyaçlar ve özelleştirmeler için, adımların detaylandırılması ve farklı ortam ayarlarıyla genişletilmesi gerekir.
iOS uygulamalarının geliştirme ve dağıtım sürecinde otomasyon kritik bir yer tutar. GitHub Actions, bu noktada devreye girerek, kod değişikliklerini otomatik olarak derleyen, test eden ve dağıtan bir pipeline kurmanıza olanak sağlar. Bu yazıda, macOS tabanlı ortamda çalışan GitHub Actions kullanarak iOS uygulaması için temel bir build pipeline nasıl oluşturulur, detaylarıyla anlatacağım.
Hazırlık ve Temel Gereksinimler
İlk olarak, Apple Developer hesabınız ve uygun sertifikalarınızın (Development ve Distribution) olması gerekir. Ayrıca, uygulamanızın provisioning profile'ı ve uygun Apple ID ile giriş yapmış olmanız zorunludur. GitHub repository'nize gizli ortam değişkenleri (Secrets) eklemeniz lazım:
Workflow Dosyasını Oluşturma
.github/workflows dizinine yeni bir YAML dosyası ekleyerek başlarsınız. Bu dosyada, aşağıdaki adımlar yer almalı:
- Trigger Tanımı
Genellikle, push veya pull request ile tetiklenir:
CODE
12yaml
on: [push, pull_request]
- İş Tanımı ve Ortam
Yalnızca macOS ortamında çalışacak şekilde tanımlanır:
CODE
1234yaml
jobs:
build_ios:
runs-on: macos-latest
- Adımlar ve Komutlar
- Gerekli araçların yüklenmesi ve sertifika/bilgi ayarları
- Sertifikanın makineye yüklenmesi ve bağlantıların ayarlanması
- Xcode projesinin derlenmesi, testlerin çalıştırılması ve IPA dosyasının oluşturulması
Örnek temel adımlar:
CODE
12345678910111213141516171819202122232425262728293031yaml
steps:
[list]
[*]name: Checkout repository
[/list]
uses: actions/checkout@v2
[list]
[*]name: Set up certificates
[/list]
run: |
echo "$CERTIFICATE" | base64 --decode > certificate.p12
security create-keychain -p actions actions.keychain
security import certificate.p12 -k ~/Library/Keychains/login.keychain -P "" -T /usr/bin/codesign
security list-keychains -s ~/Library/Keychains/login.keychain
security unlock-keychain -p actions ~/Library/Keychains/login.keychain
[list]
[*]name: Install dependencies (CocoaPods)
[/list]
run: pod install
[list]
[*]name: Build IPA
[/list]
run: xcodebuild -workspace YourApp.xcworkspace -scheme YourScheme -sdk iphoneos -configuration AppStore archive -archivePath $PWD/build/YourApp.xcarchive
[list]
[*]name: Export IPA
[/list]
run: xcodebuild -exportArchive -archivePath $PWD/build/YourApp.xcarchive -exportOptionsPlist ExportOptions.plist -exportPath $PWD/build
İleri Düzey ve Güvenlik Konuları
Sertifika ve provisioning profile'ı güvenli tutmak için, Base64 kodlaması ve Secrets kullanımı önerilir. Ayrıca, otomasyon sırasında kod imzalama ve testlerin düzgün çalışması için Xcode ve macOS güncel tutulmalı. CI/CD sürecine otomatik dağıtım (TestFlight veya App Store) eklemek de mümkündür.
Bu temel yapılandırma, iOS uygulama geliştirme sürecinde otomasyonun ilk adımıdır. İleri seviye ihtiyaçlar ve özelleştirmeler için, adımların detaylandırılması ve farklı ortam ayarlarıyla genişletilmesi gerekir.
