Tôi đang cố gắng sử dụng công cụ tùy chỉnh để đóng gói lại ứng dụng Android của mình. Tôi muốn tạo một phiên bản beta nội bộ mà tôi có thể cài đặt song song với ứng dụng sản xuất của mình.Thay đổi tên gói ứng dụng trong bước xây dựng Ant tùy chỉnh
This answer trông giống như chính xác những gì tôi cần, tuy nhiên nó có vẻ không hoạt động.
Dưới đây là bản cập nhật để build.xml của tôi:
<target
name="-package-resources"
depends="-crunch" >
<echo>Repackaging AndroidManifest.xml to ${package.manifest.name} ${out.absolute.dir}/${resource.package.file.name}</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="--auto-add-overlay" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="${resource.absolute.dir}" />
<arg value="-S" />
<arg path="${android.library.reference.1}/res" />
<arg value="-A" />
<arg path="${asset.absolute.dir}" />
<arg value="-I" />
<arg path="${project.target.android.jar}" />
<arg value="-F" />
<arg path="${out.absolute.dir}/${resource.package.file.name}" />
<arg value="--rename-manifest-package" />
<arg value="${package.manifest.name}" />
</exec>
</target>
Chạy có vẻ như để chạy thành công mã mới của tôi:
ant debug -Dpackage.manifest.name=com.example.test
...
-package-resources:
[echo] Repackaging AndroidManifest.xml to com.example.test /<mypath>/bin/<appname>.ap_
...
BUILD SUCCESSFUL
Tuy nhiên, khi tôi sử dụng APKTool để kiểm tra việc apk, gói tên trong AndroidManifest của tôi chưa được thay đổi thành giá trị mới. Tất cả những gì dường như đã xảy ra là đường dẫn hoạt động tương đối của tôi ". MyActivity" đã được mở rộng đến tên gói ban đầu của tôi.
apktool d --force bin/<appname>-debug.apk
Có ai biết tôi đang làm gì sai không? Tôi đã xem xét tất cả các câu trả lời Stackoverflow khác và hầu hết có vẻ hơi lạc hậu. Tôi đang xây dựng với Android SDK Tools Revision 21.1.0, cho minSdkVersion 8.
Cập nhật: Như @athor nhận xét bên dưới câu trả lời của mình, giả định của tôi về kiểm tra AndroidManifest.xml là sai. Để kiểm tra điều này, bạn thực sự cần phải thử cài đặt nó thay vì xem XML đã biên dịch!
Lạ lùng, điều này dường như không hoạt động đối với tôi :-(Các triệu chứng tương tự, APK được tạo, nhưng giải nén nó cho thấy AndroidManifest.xml không có gói mới. Tôi đã thử chạy "ant debug -Dapp .custompackagename = com.example.test ", và tôi đã cố gắng xây dựng bản phát hành quá. Điều này khiến tôi phát điên ... –
Tôi vừa mới giải mã ứng dụng của mình. Packagename trong tệp kê khai không thay đổi. Tôi nghĩ kiến sẽ thay đổi nó theo cách mà does't ảnh hưởng đến tất cả các hàng nhập khẩu, vv trong ứng dụng của bạn. Vì vậy, packagename trong tệp kê khai vẫn giữ nguyên, nhưng tên gói thực tế bị thay đổi.Bạn đã thử cài đặt cả hai phiên bản của ứng dụng cạnh nhau? không thay đổi, bạn sẽ không thể – athor
Oh wow, bạn nói đúng - nó cài đặt tốt cùng với các APK khác! Tôi khá ngạc nhiên khi nó hoạt động theo cách này ... Cảm ơn! –