SwiftUI: Tự động cập nhật xem trước tạm dừng, luôn luôn


12

Tôi có một Ứng dụng hiện có, về cơ bản là một ứng dụng danh sách mua sắm, mà tôi đang cố gắng thêm một số lovUI ngọt ngào ngọt ngào.

Vấn đề của tôi là cập nhật xem trước thời gian thực không hoạt động - cảnh báo "Cập nhật xem trước tự động bị tạm dừng" liên tục hiển thị. Tôi nhấn nút tiếp tục, nó xây dựng ứng dụng, nó hiển thị chế độ xem hiện tại và cảnh báo đó ngay lập tức hiển thị lại. Tôi không bao giờ có thể thấy các thay đổi đối với mã được phản ánh trong khung vẽ mà không sử dụng nút tiếp tục.

Điều này đang xảy ra trong Xcode 11.1 và 11.2 beta 2. Tôi có thể thấy không có đề cập nào khác về vấn đề này ở đây trên SO và có một chủ đề không có câu trả lời trên các diễn đàn Dev của Apple.


Tôi nhận thấy bản xem trước trực tiếp cũng tạm dừng khá thường xuyên đối với tôi ... Những điều duy nhất tôi có thể thay đổi mà không tạm dừng là những điều rất nhỏ như điều chỉnh văn bản được hiển thị trong chế độ xem văn bản ... Cũng thực hiện các thay đổi nhỏ như vậy làm cho nó tạm dừng cho bạn?
Quinn

@Quinn - có, trước khi tôi thực hiện thay đổi, nút cảnh báo và tiếp tục xuất hiện. Chúng hiển thị ngay cả trước khi quá trình xây dựng sơ yếu lý lịch kết thúc và phần xem trước hiển thị. Tôi không thể thực hiện bất kỳ thay đổi nào có thể nhìn thấy mà không cần sử dụng sơ yếu lý lịch.
Brian M

Câu trả lời:


6

Nếu bạn đang có các giai đoạn Run Script tùy chỉnh trong Build Phase và bạn không muốn (hoặc không thể) xóa chúng, thì hãy thử kiểm tra hộp kiểm "Chỉ chạy script khi cài đặt".

nhập mô tả hình ảnh ở đây


Đây là những gì đã gây ra nó trong trường hợp của tôi - Tôi đã có một tập lệnh để tự động tăng số bản dựng. Bắt đẹp. Cảm ơn.
raffjones

Câu trả lời tốt - điều này tốt hơn những gì bộ phận hỗ trợ của Apple bảo tôi làm vì điều này giữ nguyên chức năng. Tôi đã chuyển câu trả lời được chấp nhận cho bạn :)
Brian M

8

Cuối cùng tôi đã gửi phản hồi cho Apple và họ đã trả lời bằng một bản sửa lỗi. Tôi có một tập lệnh xây dựng trong mục tiêu tự động tăng số bản dựng. Nếu tôi loại bỏ tập lệnh đó thì xem trước hoạt động như dự định.

Vì vậy, nếu bạn gặp vấn đề này, hãy xóa mọi thứ trong Target -> Build Ph Phase -> Run Script và thử lại. Bản xem trước canvas sẽ cập nhật như bạn mong đợi.


1
Tôi không có bất kỳ tập lệnh xây dựng nào nhưng tôi vẫn gặp sự cố này trong Xcode 11.2.1.
Isuru

Điều tương tự. Tôi đang chạy Xcode 11.3 và đột nhiên điều này bắt đầu xảy ra và việc xóa các giai đoạn tập lệnh không khắc phục được.
Pacu

1
Vấn đề tương tự ở đây với Xcode 11.3.1 chạy trên 10.15.2 (không có tập lệnh). Nếu tôi nhấp vào "Tiếp tục lại", khung canvas sẽ biến mất và cảnh báo sẽ quay lại khi canvas được mở lại. Tôi đã từ bỏ SwiftUI trong bản beta năm ngoái sau khi gặp quá nhiều lỗi, quay lại với nó với suy nghĩ chắc chắn nó sẽ hoạt động ngay bây giờ, nhưng không. Các công cụ là rác hoàn chỉnh và hoàn toàn không hoạt động. Ngay cả khi tạo một dự án Swift UI hoàn toàn mới, sạch sẽ, nó đã bị hỏng ngay lập tức. Tôi hy vọng Apple sửa các lỗi khủng khiếp này vì SwiftUI có rất nhiều hứa hẹn, nhưng nó sẽ để lại mùi vị tồi tệ trong miệng các nhà phát triển. Có thể Xcode 12 + 10.6.
Ben Stahl

Cảm ơn cho gợi ý, điều này đã giúp. Nhưng xin lưu ý rằng điều này có thể ảnh hưởng đến mọi tập lệnh chạy trong mọi mục tiêu sẽ có trong ứng dụng của bạn như tiện ích mở rộng ứng dụng và ứng dụng Xem.
Koraktor

Cảm ơn, tôi đã gặp vấn đề này nhưng đó là một kịch bản phiên bản đang chạy trong một khung nhúng, sau đó sẽ tạm dừng xem trước. Tôi đã theo dõi hoàn toàn sai lầm khi nghĩ rằng đó là một cái gì đó để làm với Core Data và xem trước.
dlemex

3

Đối với tôi, Canvas không hoạt động khi tôi có Hệ thống xây dựng kế thừa.

Bạn có thể thay đổi nó thông qua,

Tệp -> Cài đặt không gian làm việc -> Hệ thống bản dựng -> Chọn "Hệ thống bản dựng mới (Mặc định).

Như nó nói, nó là tùy chọn mặc định. Nếu vì bất kỳ lý do nào, hệ thống xây dựng Legacy đã được chọn, Canvas sẽ không hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.