簡體   English   中英

Xcode-命令行構建

[英]Xcode - command line build

我一直在創建一個shell腳本,它將使我可以從我的工作項目中存檔和提取ipa文件。

#!/bin/sh
cd `dirname $0`
xcodebuild -scheme appName clean archive -archivePath ./build/AppName
xcodebuild -exportArchive -exportOptionsPlist ./build/exportOptions.plist -archivePath  ./build/AppName.xcarchive -exportPath ./build/appName

exportOptions.plist為:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>method</key>
        <string>ad-hoc</string>
    </dict>
</plist>

我將進一步需要一種將Bundle標識符和Team更改為客戶的方法。 PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname添加到xcodebuild的第一行,它將把Bundle標識符更改為我需要的標識符嗎?

xcodebuild -scheme appName PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname clean archive -archivePath ./build/AppName

這是正確的嗎 ? 那團隊呢? 還是應該對這些設置使用exportOptions.plist?

謝謝。

您可以使用這些命令直接操作項目文件。 根據我的經驗,xcodebuild命令有時不接受我們作為配置文件,團隊ID等傳遞的參數。

因此,確保已更改所需方式的最佳方法是操縱xcodeproj文件

  1. 將配置樣式更改為手動

sed -ie "s/ProvisioningStyle = \\".*\\"/ProvisioningStyle = \\"Manual\\"/" <project_name>.xcodeproj/project.pbxproj

  1. 更改代碼簽名身份

sed -ie "s/CODE_SIGN_IDENTITY = \\".*\\"/CODE_SIGN_IDENTITY = \\"<signing_identity_name>\\"/g" <project_name>.xcodeproj/project.pbxproj

  1. 更改配置文件

sed -ie "s/PROVISIONING_PROFILE = \\".*\\"/PROVISIONING_PROFILE = \\"<provisioning_profile_udid>\\"/g" <project_name>.xcodeproj/project.pbxproj

sed -ie "s/PROVISIONING_PROFILE_SPECIFIER = \\".*\\"/PROVISIONING_PROFILE_SPECIFIER = \\"<provisioning_profile_name>\\”/g" <project_name>.xcodeproj/project.pbxproj

注意:請注意空格,此方法使用正則表達式來匹配和替換項目文件中的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM