7

Tên tôi là Luca và tôi hiện đang tích hợp iOS liên tục để tạo ứng dụng trong xcode để phân phối (Ad Hoc và App Store) bằng cách sử dụng tính năng shell-scripting.xcodebuild bị bỏ qua khi sử dụng lưu trữ

Cho đến nay tôi đã đạt được kết quả tốt với các tệp IPA. Vấn đề của tôi đến để phân phối trong App Store. Để xây dựng một .app từ kịch bản (qua một số đối số) Tôi làm:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc 

Kể từ với XCode 4.2, ứng dụng trình được thực hiện bằng cách sử dụng XCode Organizer Window tôi phải có khả năng lưu trữ cũng thực thi của tôi.

Vì vậy, tôi thay đổi dòng lệnh trước đó như sau:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc  **archive** 

Đáng tiếc là sau khi tôi làm như vậy, có vẻ như rằng 'lưu trữ' lực lượng tranh luận xcodebuild để bỏ qua những người khác (PRODUCT_NAME, TARGETED_DEVICE_FAMILY, ... .) và đầu ra của tôi được xây dựng bằng cách sử dụng các cài đặt xây dựng được xác định trước XCode.

Tôi muốn có thể chuyển đối số bằng xcodebuild và có hiệu quả, nhưng hành động 'lưu trữ' dường như ngăn chặn điều này.

Tôi sẽ loại hạt, xin vui lòng giúp :)

Cảm ơn

Trả lời

4

Các lưu trữ hành động cho xcodebuild dường như có một lỗi trong Xcode 4.2. Ghi đè thông thường cho cấu hình dự án có thể được chỉ định làm tham số dòng lệnh hoặc thông số -xcconfig.

Mặc dù xây dựng hành động tôn trọng họ, lưu trữ thì không. (Có lẽ điều này là do lưu trữ là một siêu hành động gọi xây dựng nội bộ, nhưng không truyền qua các tùy chọn cho lời gọi nội bộ.) Có một OpenRadar bug mô tả vấn đề này, vì vậy có lẽ nó đã được báo cáo cho Apple.

Cuối cùng, lưu ý rằng nếu bạn định sử dụng tác vụ lưu trữ từ tập lệnh thì bạn không thể dựa vào mã thoát từ xcodebuild. Hành động lưu trữ luôn mang lại mã thoát của 0 (thành công, theo quy ước). Để phát hiện lỗi xây dựng, bạn cần phải loại bỏ đầu ra.

0

Tôi đã gặp sự cố tương tự này. Công việc hiện tại của tôi về cơ bản là xóa các cấu hình khác để lưu trữ buộc phải sử dụng cấu hình bạn muốn. Không thực sự là một giải pháp có thể được thực hiện thông qua dòng lệnh, hy vọng Apple sẽ khắc phục vấn đề này rõ ràng.

-1

điều này có thể đã quá muộn đối với áp phích gốc, nhưng có thể giúp người khác. cho quá trình xây dựng của tôi, tôi sử dụng xcodebuild đến với sạch đầu tiên và sau đó xây dựng, sau đó tôi sử dụng xcrun để tạo ra các kho lưu trữ:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "build/<Path_to_build_dir>/<App_Name>.app" -o "<Path_to_archive_output>.ipa" --sign "<signing identity>" --embed "<path to provision profile>.mobileprovision" 

với lệnh này, tôi có thể tạo ra một kho lưu trữ cho các cửa hàng ứng dụng, hoặc thậm chí tải lên một ad-hoc xây dựng để TestFlight như thế này:

curl http://testflightapp.com/api/builds.json \ 
    -F file="<path to archive>" \ 
    -F api_token='<api token>' \ 
    -F team_token='<team token>' \ 
    -F notes='Automated build' \ 
    -F notify=True \ 
    -F distribution_lists='me' 

làm việc này như của xcode 6.1

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