2016-03-16 16 views
10

Mỗi khi tôi phát hành ứng dụng, tôi thay đổi tất cả các chuỗi url của mình và một số phím từ thử nghiệm sang sản xuất. Cách tôi làm điều đó chỉ là bình luận ra các chuỗi thử nghiệm trước khi tôi phát hành. Có cách nào tốt hơn để xử lý các chuỗi dựa trên loại xây dựng không?Giá trị chuỗi riêng biệt của Android để phát hành và gỡ lỗi xây dựng

+3

http://stackoverflow.com/questions/17197636/is-it-possible-to-declare-a-variable-in-gradle-usable-in-java – CommonsWare

+0

đang tìm kiếm câu hỏi này .. câu hỏi và câu trả lời tuyệt vời .. – DJphy

+0

Đừng làm điều đó. Cơ hội có chuỗi không chính xác trong mã sản xuất với cách tiếp cận của bạn khá cao. Thực hiện theo cách này: http://developer.android.com/tools/building/configuring-gradle.html –

Trả lời

11

Giả sử bạn sử dụng Android Studio, theo mặc định, hệ thống sẽ tạo ra một hương vị releasedebug cơ bản. Vì vậy, nếu bạn thêm một thư mục debugrelease trong thư mục app/src của dự án, bạn có thể khai báo các giá trị riêng biệt tại đó.

Vì vậy, cấu trúc của bạn sẽ như thế này:

project 
    -app 
    -src 
     -debug 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 
     -release 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 
     -main 
     -java 
      ... 
     -res 
      -values 
      -strings.xml 

Tôi cũng nên thêm rằng nếu bạn có một chuỗi mà không được quy định tại một trong các debug hoặc thư mục release rằng nó sẽ dự phòng để main của bạn thư mục.

+0

vì vậy mỗi khi tôi làm việc trên một cái gì đó tôi nên cập nhật tất cả 3 thư mục? – spaceMonkey

+0

những gì về tách các chuỗi cụ thể của url thành một "url-strings.xml" riêng biệt và sau đó có dự án/project/src/main/res/values ​​/ strings.xml' 'project/app/src/debug/res/Các giá trị/url-strings.xml' 'project/app/src/release/res/values ​​/ url-strings.xml' – k3b

+0

không, bạn chỉ có ứng dụng của mình trong thư mục' main' mặc định. Bất kỳ tài nguyên nào cần phải khác nhau trong các bản dựng 'debug' hoặc' release' bạn chỉ cần thêm vào strings.xml (hoặc như @ k3b đã đề cập đến một tệp khác). Android Studio sẽ luôn luôn dự phòng trên thư mục 'main' để bạn có thể có 1 chuỗi url trong thư mục' debug'/'release' và nó sẽ chỉ lấy các thư mục đó. –

1

Chỉ cần tạo hai hương vị trong build.gradle. Sau đó, hai thư mục, một lần nữa như được đưa ra trong liên kết (developer.android.com/tools/building/configuring-gradle.html). Vì bạn chỉ cần thay đổi chuỗi, chỉ cần sao chép các tệp strings.xml của bạn vào các thư mục mới (ví dụ: dev và production) Xóa chuỗi gốc của bạn.xml

Và đó là nó. :)

Không cần phải di chuyển tệp java của bạn hoặc các tệp bố cục khác.

Tóm lại, để mọi thứ trong thư mục 'chính' của bạn phải nhất quán trên tất cả các hương vị xây dựng. Ghi đè các giá trị phụ thuộc vào hương vị xây dựng vào thư mục tương ứng của chúng.

+0

tạo hương vị? bạn có nghĩa là "loại xây dựng" hay "hương vị sản phẩm" không? – spaceMonkey

+0

xin lỗi. có mùi vị sản phẩm như thử nghiệm và sản xuất –

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