macOS下通過xcodebuild命令自動打包編譯gPRC工程

近期項目中引用gRPC,導致通過命令行編譯生成的文件和路徑出錯。之前未引用gPRC之前用的是:

xcodebuild -configuration Release

但是因爲gRPC要使用cocoapods,所以會生成一個xcworkspace,這個時候之前的命令就不會生效

這個是時候需要重新改動打包腳本,另外需要知道scheme名稱,通過如下命令可以查到當前包含的所有scheme名稱

xcodebuild -workspace YourProject.xcworkspace -showBuildSettings -list

正常來說可以獲得如下結果:

Information about workspace "YourProject":
    Schemes:
        !ProtoCompiler
        !ProtoCompiler-gRPCPlugin
        abseil
        BoringSSL-GRPC
        gRPC
        gRPC-Core
        gRPC-gRPCCertificates
        gRPC-ProtoRPC
        gRPC-RxLibrary
        Pods-SGInputAssistant
        Protobuf
        YourProject
        YourProject

這個時候,我們會發現有兩個scheme 的名稱完全一樣,所以,這個時候,如果我們輸入scheme的名字,他會執行第一個scheme,不會生成我們實際的scheme名稱,在此處,目前想到的辦法,在Xcode裏面找到Manage Schemes,然後將自己工程的名字改成一起其他的,左鍵單擊修改即可,如下圖你可以改成自己工程的

這個時候,同樣可以使用 上面的showbuilding -list查看修改後的結果,這個時候再執行命令:

xcodebuild clean -workspace YourProject.xcworkspace -scheme YourProject1 -configuration Release

這個時候我們發現是可以編譯成功的,但是最後文件放在目錄是在/Library/Developer/Xcode/DerivedData/SGInputAssistant-fxxhtctprwvchjchhrfopwbnejaf/Build/,其實我們實際需要並不是在這兒,我們需要在當前工程的目錄下生成一個build文件下,類似單個工程的xcodebuild。通過查找系統api,發現需要添加一個derivedDataPath屬性,完整命令如下:

xcodebuild -workspace YourProject.xcworkspace -scheme YourProject1 -configuration Release -derivedDataPath build

最後就可以成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章