Bu eğiticide, Bazel kullanarak basit bir iOS uygulamasının nasıl oluşturulacağı ele alınmaktadır.
Neler öğreneceksiniz?
Bu eğitimde şunları öğreneceksiniz:
- Ortamı ayarlamak için Bazel ve Xcode'u yükleyip örnek proje
- Kaynak kodunu içeren bir Bazel çalışma alanı oluşturma
ve üst düzeyini tanımlayan bir
WORKSPACE
dosyası için workspace dizini WORKSPACE
dosyasını, gerekli referansları içerecek şekilde güncelleyin. dış bağımlılıklarBUILD
dosyası oluşturun- Simülatör ve iOS cihaz için uygulama derlemek üzere Bazel'ı çalıştırın
- Uygulamayı simülatörde ve iOS cihazda çalıştırma
Ortamınızı ayarlama
Başlamak için Bazel ve Xcode'u yükleyin ve örnek projeyi alın.
Bazel'i yükleme
Bazel'i yüklemek için yükleme talimatlarını uygulayın ve ve bağımlılıklarını fark edebilirsiniz.
Xcode'u yükle
Xcode'u indirip yükleyin. Xcode, derleme için Bazel'ın gerektirdiği derleyicileri, SDK'ları ve diğer araçları içerir Apple uygulamaları.
Örnek projeyi alma
Ayrıca, GitHub'dan eğitim için örnek projeyi almanız gerekir. GitHub
kod deposunun iki dalı vardır: source-only
ve main
. source-only
dalı
, yalnızca projenin kaynak dosyalarını içerir. Bu klasördeki dosyaları kullanacaksınız
dalını bu eğiticide bulabilirsiniz. main
dalı, hem kaynak dosyaları hem de
ve Bazel WORKSPACE
ile BUILD
dosyalarını tamamladık. Bu klasördeki dosyaları kullanabilirsiniz
şu bölümü kullanarak eğitim adımlarını tamamladığınızda çalışmanızı kontrol edebilirsiniz.
source-only
içindeki dosyaları almak için komut satırına aşağıdakini girin.
dal:
cd $HOME
git clone -b source-only https://github.com/bazelbuild/examples
git clone
komutu $HOME/examples/
adlı bir dizin oluşturur. Bu
dizini Bazel için birkaç örnek proje içerir. Bunun için proje dosyaları
$HOME/examples/tutorial/ios-app
dilindedir.
Çalışma alanı oluşturma
Çalışma alanı, şunu içeren bir dizindir:
bir veya daha fazla yazılım projesinin kaynak dosyalarını ve ayrıca bir WORKSPACE
dosyası
ve Bazel'in projeyi derlemek için kullandığı talimatları içeren BUILD
dosyaları
geri dönelim. Çalışma alanı ayrıca çıkışa ilişkin sembolik bağlantılar da içerebilir
dizin oluşturabilirsiniz.
Çalışma alanı dizini, dosya sisteminizin herhangi bir yerinde bulunabilir ve
kökünde WORKSPACE
dosyasının varlığına işaret eder. Bu eğitimde
çalışma alanı dizini, örneği içeren $HOME/examples/tutorial/
önceki adımda GitHub deposundan klonladığınız proje dosyalarını bulmanız gerekir.
Size kolaylık olması için $WORKSPACE
ortam değişkenini
çalışma alanı dizininiz nedir? Komut satırına şu kodu girin:
export WORKSPACE=$HOME/examples/tutorial
WORKSPACE dosyası oluşturun
Her çalışma alanının en üst düzeyinde WORKSPACE
adlı bir metin dosyası olmalıdır
workspace Directory'ye gidin. Bu dosya boş veya referans içeriyor olabilir
oluşturmak için gerekli olan dış bağımlılıklara
daha fazla bilgi edineceksiniz.
Şimdilik, boş bir WORKSPACE
dosyası oluşturacaksınız. Bu dosya
çalışma alanı dizinini tanımlar. Sonraki adımlarda dosyayı güncelleyip
dış bağımlılık bilgilerini
içerebilir.
Komut satırına aşağıdakini girin:
touch $WORKSPACE/WORKSPACE
open -a Xcode $WORKSPACE/WORKSPACE
Bu işlemle boş WORKSPACE
dosyası oluşturulup açılır.
WORKSPACE dosyasını güncelleyin
Bazel'in, Apple cihazlara yönelik uygulamalar geliştirmek için en yeni
Apple derleme kuralları
kendi GitHub deposundan Bunu etkinleştirmek için aşağıdakileri ekleyin
git_repository
kuralları WORKSPACE
dosyanıza ekleyin:
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "build_bazel_rules_apple",
remote = "https://github.com/bazelbuild/rules_apple.git",
tag = "0.19.0",
)
git_repository(
name = "build_bazel_rules_swift",
remote = "https://github.com/bazelbuild/rules_swift.git",
tag = "0.13.0",
)
git_repository(
name = "build_bazel_apple_support",
remote = "https://github.com/bazelbuild/apple_support.git",
tag = "0.7.2",
)
git_repository(
name = "bazel_skylib",
remote = "https://github.com/bazelbuild/bazel-skylib.git",
tag = "0.9.0",
)
Kaynak dosyaları inceleyin
Uygulamanın şurada bulunan kaynak dosyalarına göz atın:
$WORKSPACE/ios-app/UrlGet
Daha önce bahsettiğimiz gibi,
uygulamanın yapısına aşinalık kazanın. Hiçbirini düzenlemeniz gerekmez
kaynak dosyalarını da kullanabilirsiniz.
BUILD dosyası oluşturun
Komut satırı isteminde, düzenlemek için yeni bir BUILD
dosyası açın:
touch $WORKSPACE/ios-app/BUILD
open -a Xcode $WORKSPACE/ios-app/BUILD
Kural yükü ifadesini ekleyin
Bazel'in, iOS hedefleri oluşturmak için GitHub deposundan derleme kurallarını yüklemesi gerekiyor
derlemenizi sağlar. Bu kuralları projenizde kullanılabilir hale getirmek için
şu yük ifadesini BUILD
dosyanızın başına ekleyin:
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")
objc_library
ios_application
kuralının Bazel paketinde yerleşik olarak bulunduğundan emin olun.
objc_library kuralı ekleme
Bazel,
iOS platformu. Bu eğitim için ilk olarak
Bazel'a haber vermek için objc_library
kuralı
uygulama kaynak kodundan ve Xib dosyalarından statik kitaplık oluşturmayı öğreneceğiz. Sonra
kullanmak istediğiniz
ios_application
kuralı ile uygulama ikili programının ve .ipa
paketinin nasıl oluşturulacağını bildirir.
BUILD
dosyanıza aşağıdakileri ekleyin:
objc_library(
name = "UrlGetClasses",
srcs = [
"UrlGet/AppDelegate.m",
"UrlGet/UrlGetViewController.m",
"UrlGet/main.m",
],
hdrs = glob(["UrlGet/*.h"]),
data = ["UrlGet/UrlGetViewController.xib"],
)
Kuralın adını (UrlGetClasses
) not edin.
ios_application kuralı ekle
İlgili içeriği oluşturmak için kullanılan
ios_application
kuralı, uygulama ikili programını oluşturur ve .ipa
paket dosyasını oluşturur.
BUILD
dosyanıza aşağıdakileri ekleyin:
ios_application(
name = "ios-app",
bundle_id = "Google.UrlGet",
families = [
"iphone",
"ipad",
],
minimum_os_version = "9.0",
infoplists = [":UrlGet/UrlGet-Info.plist"],
visibility = ["//visibility:public"],
deps = [":UrlGetClasses"],
)
deps
özelliğinin, UrlGetClasses
kuralının çıkışına nasıl başvurduğunu unutmayın.
yukarıdaki BUILD
dosyasına eklediniz.
Şimdi dosyayı kaydedin ve kapatın. BUILD
dosyanızı,
tamamlanan örnek
gidin.main
Uygulamayı derleme ve dağıtma
Artık uygulamanızı derlemeye ve bir simülatöre ve iOS cihaz.
Derlenen uygulama, $WORKSPACE/bazel-bin
dizininde bulunuyor.
Bu eğitim için tamamlanan WORKSPACE
ve BUILD
dosyaları şu konumda bulunmaktadır:
ana dal
bir parçası olacak. Çalışmanızı, şu kitabın tamamlanmış dosyalarıyla karşılaştırabilirsiniz:
ek yardım veya sorun giderme.
Simülatör için uygulama oluşturma
Geçerli çalışma dizininizin Bazel çalışma alanınızda olduğundan emin olun:
cd $WORKSPACE
Şimdi, örnek uygulamayı derlemek için aşağıdakini girin:
bazel build //ios-app:ios-app
Bazel örnek uygulamayı başlatıp derler. Derleme işlemi sırasında şuna benzer bir çıkış görürsünüz:
INFO: Found 1 target...
Target //ios-app:ios-app up-to-date:
bazel-bin/ios-app/ios-app.ipa
INFO: Elapsed time: 0.565s, Critical Path: 0.44s
Derleme çıkışlarını bulma
.ipa
dosyası ve diğer çıkışlar,
$WORKSPACE/bazel-bin/ios-app
dizini.
Simülatörde uygulamayı çalıştırma ve hata ayıklama
Artık iOS Simülatörü'nü kullanarak uygulamayı Xcode'dan çalıştırabilirsiniz. İlk olarak, Tulsi kullanarak bir Xcode projesi oluşturabilirsiniz.
Sonra, projeyi Xcode'da açın, çalışma zamanı şeması olarak bir iOS Simülatörü seçin, ve Çalıştır'ı tıklayın.
Uygulamayı bir cihaz için geliştirme
Uygulamanızı bir iOS cihaza yüklenecek ve çalıştırılacak şekilde oluşturmak için Bazel'in söz konusu cihaz modeli için uygun temel hazırlık profiline gidin. Aşağıdakileri yapın:
Apple Geliştirici Hesabınıza gidin. ve cihazınıza uygun temel hazırlık profilini indirin. Görüntüleyin Apple'ın belgeleri konulu videomuzu izleyin.
Profilinizi
$WORKSPACE
hizmetine taşıyın.(İsteğe bağlı) Profilinizi
.gitignore
dosyanıza ekleyin.Aşağıdaki satırı
BUILD
dosyanızdakiios_application
hedefine ekleyin:provisioning_profile = "<your_profile_name>.mobileprovision",
Şimdi cihazınız için bir uygulama derleyin:
bazel build //ios-app:ios-app --ios_multi_cpus=armv7,arm64
Bu şekilde uygulama, yağ ikili programı olarak derlenir. Belirli bir cihaz için geliştirme bunu derleme seçeneklerinde belirtin.
Belirli bir Xcode sürümü için derleme yapmak istiyorsanız --xcode_version
seçeneğini kullanın. Alıcı:
özel bir SDK sürümü oluşturmak için --ios_sdk_version
seçeneğini kullanın. İlgili içeriği oluşturmak için kullanılan
Çoğu durumda --xcode_version
seçeneği yeterlidir.
Gerekli minimum iOS sürümünü belirtmek için minimum_os_version
ekleyin
parametresini BUILD
dosyanızdaki ios_application
derleme kuralına ekleyin.
Ayrıca şunu da kullanabilirsiniz: Tulsi - uygulamanızı komut satırı yerine GUI kullanarak derleyin.
Uygulamayı bir cihaza yükleme
Uygulamayı cihaza yüklemenin en kolay yolu Xcode'u başlatmak ve
Windows > Devices
komutudur. Aşağıdaki listeden, takılan cihazınızı seçin
sol tıklayın ve ardından altındaki Ekle (artı işareti) düğmesini tıklayarak uygulamayı ekleyin
"Yüklü Uygulamalar" oluşturduğunuz .ipa
dosyasını seçebilirsiniz.
Uygulamanız cihazınıza yüklenemezse aşağıdakileri belirttiğinizden emin olun:
BUILD
dosyanızdaki temel hazırlık profilini doğru doğrulayın (önceki önceki adım
bölümüne bakın).
Uygulamanız başlatılamazsa cihazınızın
temel hazırlık profilinin. Devices
ekranındaki View Device Logs
düğmesi
Xcode, yaşanan sorunla ilgili başka bilgiler de sağlayabilir.
Daha fazla bilgi
Daha fazla bilgi için bkz. ana dal bir parçası olacak.