2014-04-10 24 views
11

Tôi đang tạo một ứng dụng iPad với tệp Settings.bundle. Tôi đang viết các kịch bản xây dựng để hiển thị số phiên bản ứng dụng và số tích hợp bot xcode (không phải là số gói xây dựng). Tôi đã tìm kiếm trên web và không thể tìm thấy giải pháp nào. Dưới đây là những gì tôi nhận được:Cách thêm số tích hợp Bot Xcode vào kịch bản dựng mã

-- Add the app version number 
cd $PROJECT_DIR 
cd "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app" 

RELEASE_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Info.plist) 
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue $RELEASE_VERSION" Settings.bundle/Root.plist 

-- Add the build version number 
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" Info.plist) 
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue $BUILD_NUMBER" Settings.bundle/Root.plist 

Trong số phiên bản xây dựng, tôi muốn thay thế CFBundleVersion bằng số tích hợp bot xcode.

Trả lời

15

Tôi đã thực hiện điều này bằng cách sử dụng Shell Script Build Phase trong dự án Xcode của tôi. Trong trường hợp của tôi, tôi đã sử dụng số tích hợp để đặt phiên bản nội bộ của sản phẩm được tạo. Kịch bản của tôi trông như thế này:

if [ "the$XCS_INTEGRATION_NUMBER" == "the" ]; then 
    echo "Not an integration build…" 
    xcrun agvtool new-version "10.13" 
else 
    echo "Setting integration build number: $XCS_INTEGRATION_NUMBER" 
    xcrun agvtool new-version "$XCS_INTEGRATION_NUMBER" 
fi 

Lưu ý rằng XCS_INTEGRATION_NUMBER tồn tại theo mặc định trong Xcode server xây dựng môi trường. Nếu bạn muốn mô phỏng một tích hợp xây dựng (cho các mục đích của kịch bản này), bạn chỉ có thể thêm nó vào các thiết lập xây dựng của bạn như là một biến tùy chỉnh.

1

Tôi tình cờ gặp vấn đề tương tự gần đây. Có một cách rất thực dụng nhưng xấu xí nhận được thông tin về số tích hợp mới nhất của Xcode Bots chạy:

sudo grep -r "integration =" /Library/Server/Xcode/Logs/xcsbuildd.log | tail -1 | cut -d'=' -f 2| cut -d';' -f 1 |tr -d '\040\011\012\015' 

tôi cũng đã tạo ra một câu hỏi stackoverflow để tìm ra một cách tích hợp hơn và ít hacky của việc hoàn thành mục tiêu này : Register for messages from collabd like XCSBuildService to receive Xcode Bots integration number

Nhưng có thể cách phân tích cú pháp xcsbuildd.log như được mô tả ở trên là đủ cho mục đích của bạn.

+0

Nó không hiệu quả với tôi. Tôi luôn nhận được kết quả trống – iDev

5

tôi đã thêm (+) một Run Script với các mục tiêu của tôi xây dựng Giai đoạn ngay trước khi Compile Nguồn bước. Kịch bản một dòng này làm việc cho tôi để thiết lập số tích phân làm số bản dựng. Cảm ơn Kaelin, tôi chỉ muốn đơn giản hóa mọi thứ một chút.

[ -z "$XCS_INTEGRATION_NUMBER" ] && echo "Build #0" || xcrun agvtool new-version ${XCS_INTEGRATION_NUMBER} 
7

Bạn thậm chí không cần agvtool để đặt số bản dựng thành số tích hợp bot Xcode. Chỉ cần đặt Số bản dựng thành $ {XCS_INTEGRATION_NUMBER} trong cài đặt dự án của bạn.

Các vấn đề liên quan