本教程包含如下步驟(Bazel新用戶請先參考: Bazel入門教程):html
須要在 Mac OS X 環境,WORKSPACE
不用配置。python
iOS應用源文件在$WORKSPACE/ios-app/UrlGet
目錄。ios
代碼在這裏:https://github.com/bazelbuild/examples/tree/master/tutorial/ios-app/UrlGetgit
在命令行用vi建立並編輯BUILD文件(其它編輯器也能夠):github
$ vi $WORKSPACE/ios-app/BUILD
objc_library
規則Bazel針對構建iOS應用提供了諸多規則命令。在這裏,咱們首先使用 objc_library
規則從源文件和Xib文件構建 靜態庫。 (這個只是最小的規則,此外還有ios_application
規則能夠用於構建多架構的iOS應用。)objective-c
BUILD的內容以下:xcode
objc_library( name = "UrlGetClasses", srcs = [ "UrlGet/AppDelegate.m", "UrlGet/UrlGetViewController.m", ], hdrs = glob(["UrlGet/*.h"]), xibs = ["UrlGet/UrlGetViewController.xib"], )
規則對應的目標名字是UrlGetClasses
。bash
objc_binary
規則objc_binary
建立一個 bundled應用中的二進制可執行程序。架構
BUILD文件添加以下內容:app
objc_binary( name = "ios-app-binary", srcs = [ "UrlGet/main.m", ], deps = [ ":UrlGetClasses", ], )
其中deps
屬性引用了前面的UrlGetClasses
靜態庫。
ios_application
規則ios_application
規則用於建立.ipa
打包應用, 同時生成Xcode過程文件。
BUILD文件添加以下內容:
ios_application( name = "ios-app", binary = ":ios-app-binary", infoplist = "UrlGet/UrlGet-Info.plist", )
完整的BUILD文件在這裏:https://github.com/bazelbuild/examples/blob/master/tutorial/ios-app/BUILD
命令行環境,確保當前目錄對應Bazel的workspace:
$ cd $WORKSPACE
輸入如下命令構建應用:
$ bazel build //ios-app:ios-app
Bazel將啓動構建工做。當構建完成時,輸出相似下面的信息:
INFO: Found 1 target... Target //ios-app:ios-app up-to-date: bazel-bin/ios-app/ios-app.ipa bazel-bin/ios-app/ios-app.xcodeproj/project.pbxproj INFO: Elapsed time: 3.765s, Critical Path: 3.44s
輸出的.ipa
和其它文件在$WORKSPACE/bazel-bin/ios-app
目錄。
如今能夠從Xcode環境的模擬器來運行應用。先打開$WORKSPACE/bazel-bin/ios-app/ios-app.xcodeproj
工程文件, 而後選擇相應版本的iOS模擬器,而後點擊 Run 按鈕運行。
注意: 若是要Xcode工程中的任何信息發生變化(好比刪除文件或添加/改變依賴),必須使用Bazel從新生成Xcode工程文件。
針對設備構建應用,須要設置bazel以找到目標對應設備的provisioning profile配置文件。 根據如下步驟設置:
打開網頁 Apple Profiles 下載設備對應的provisioning profile配置文件。 若是又疑問,請參考 Apple's documentation。
將profile配置文件放到$WORKSPACE/tools/objc
目錄。
可選操做 - 能夠在.gitignore
中忽略配置文件。
編輯 $WORKSPACE/tools/objc/BUILD
文件,添加:
filegroup( name = "default_provisioning_profile", srcs = ["<NAME OF YOUR PROFILE>.mobileprovision"], )
如今能夠構建針對設備的應用了:
$ bazel build //ios-app:ios-app --ios_multi_cpus=armv7,arm64
上面的命令將構建針對多個類型的設備應用。若是隻須要構建真的特定類型的應用, 能夠指定一個特定的設備架構體系結構。
若是須要選擇一個特定版本的Xcode或特定版本的SDK,能夠經過--xcode_version=7.2 --ios_sdk_version=9.2
指定。 要確保選定版本的SDK對應的Xcode已經安裝到本機。
若是須要指定一個可以運行的最小iOS版本,能夠經過--ios_minimum_os=7.0
指定。
安裝應用到設備最簡單的方法是打開Xcode,而後點擊Windows > Devices
菜單。 從左邊列表選擇相應的設備,點擊 "+" 按鈕並選擇生成的 .ipa
文件。
若是程序沒有運行,請檢查設備和provisioning profile配置是否匹配。 點擊Devices
下面的View Device Logs
按鈕,能夠查看到相關的錯誤信息。