2013-02-06 21 views
5

Tôi hiện đang chơi với Ant để thực hiện một số công việc xây dựng thương hiệu tự động. Tôi đã sửa đổi build.xml mặc định và thiết lập mục tiêu của riêng mình. Những gì tôi hy vọng sẽ hỏi là có một cách trong Ant Script có thể tự động đổi tên tập tin apk chỉ xây dựng với tên nhất định?Làm thế nào để sử dụng Ant để tự động đổi tên tập tin apk đầu ra?

Tôi hiện đã thiết lập mục tiêu Ant này trong build.xml của tôi:

<target name="release-brandA" 
      depends="default, -set-release-mode, -release-obfuscation-check, -package, -post-package, -release-prompt-for-password, -release-nosign, -release-sign, -post-build" 
      description="Builds the application in release mode for brandA."> 
    <delete dir="${res}" /> 
    <copydir dest="${res}" src="${branding}/brandA" forceoverwrite="ture" /> 
    <replaceregexp flags="g" byline="false"> 
     <regexp pattern="import com.arthur.android(.*).R;"/> 
     <substitution expression="import com.arthur.android.brandA.R;"/> 
     <fileset dir="src" includes="**/*.java" /> 
    </replaceregexp> 
    <replaceregexp flags="g" byline="false"> 
     <regexp pattern="package=&quot;com.arthur.android(.*)&quot;" /> 
     <substitution expression="package=&quot;com.arthur.android.brandA&quot;" /> 
     <fileset dir="" includes="AndroidManifest.xml" /> 
    </replaceregexp> 
</target> 

Có một cách mà tôi có thể thêm một số nhiệm vụ hơn, để cho các tập tin đầu ra chỉ là như brandA.apk?

Cảm ơn bạn!

Trả lời

10

của gói ứng dụng chính thức tên tập tin thực sự được xác định bởi thuộc tính 'out.final.file'

Vì vậy, bạn có thể tạo ra một nhiệm vụ mới mà bộ khách sạn này:

<target name="-set-out-final-file"> 
    <property name="out.final.file" location="${out.absolute.dir}/brandA.apk" /> 
</target> 

Cuối cùng, bạn chỉ cần gọi mục tiêu -set-out-final-file trước khi gọi mục tiêu gỡ lỗi hoặc phát hành.

Sử dụng nhiệm vụ release-brandA của bạn, nó sẽ trở thành này:

<target name="release-brandA" 
     depends="default, -set-out-final-file, -set-release-mode, -release-obfuscation-check... 
+0

Chính xác những gì tôi cần! Cảm ơn bạn! – Arthur0902

1

Here tôi tìm thấy thêm lời giải thích tốt hơn và cách phù hợp hơn để ghi đè lên mục tiêu phát hành.

Vui lòng tham khảo phần:

<target 
     name="release" 
     depends="custom-set-release-mode, android_rules.release" /> 
0

rất nó simple.Refer liên kết này [1]: https://ant.apache.org/manual/running.html

Vì vậy, trong trường hợp trên, chúng ta cần phải chạy nó như thế này,

ant debug -Dout.final.file = brandA.apk

Thats it.

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