2015-06-07 21 views

Trả lời

17

Khi bạn khởi động một ứng dụng phản ứng bản địa, bạn sẽ thấy kết quả này nhắn bởi Phản ứng Packager:

Running packager on port 8081 

và sau đó:

Looking for JS files in 
    /Users/gbirman/gil/mapily 


React packager ready. 

Bởi thời điểm này, đóng gói đã biên soạn của bạn Các tệp JS và đang phân phối chúng với tiện ích mở rộng .js được đổi tên thành .bundle. Ví dụ, tập tin index.io.js của bạn được biên dịch và phục vụ từ:

http://localhost:8081/index.ios.bundle 

Nếu bạn thêm một tập tin foo.js trong cùng thư mục với index.ios.js, các Packager sẽ phục vụ nó từ:

http://localhost:8081/foo.bundle 

Bạn có thể xác nhận điều này bằng cách mở url đó trong trình duyệt của bạn.

Bây giờ để trả lời câu hỏi của bạn, dự án của bạn có một tập tin iOS/AppDelegate.m với the following line:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"]; 

... như bạn có thể thấy, nó tải các index.ios.bundle. Bạn có thể thay đổi đường dẫn/tên tệp thành bất kỳ thứ gì bạn muốn, nhưng tốt nhất nên gắn với cách tiếp cận được đề xuất để đặt tên cho tệp nhập của bạn index.io.js

+0

những gì về khi sử dụng [ẩn bó] (https://facebook.github.io/react-native/docs/running-on-device-ios.html # using-offline-bundle)? ** chỉnh sửa: ** không bao giờ nhớ, tôi đã tìm ra ... làm điều tương tự nhưng trong 'node_modules/phản ứng-native/packager/phản ứng-native-xcode.sh' –

5

Giả sử bạn đã di chuyển index.ios.js vào thư mục có tên dist. Bạn cần phải làm hai việc

  1. Đối với môi trường phát triển của bạn: Cập nhật jsBundleURLForBundleRoot trong AppDelegate.m để phù hợp với con đường cập nhật của bạn.

  2. Đối với gói phát hành của bạn: Mở dự án Xcode của bạn. Bạn sẽ cần phải cập nhật mã Gói phản hồi gốc và hình ảnh tác vụ theo Tạo giai đoạn cho dự án của bạn. Cập nhật các kịch bản shell trong phần này để trông giống như dưới đây:

    export NODE_BINARY=node ../node_modules/react-native/packager/react-native-xcode.sh dist/index.ios.js

    react-native-xcode.sh chấp nhận ENTRY_FILE như một cuộc tranh cãi đầu tiên tùy chọn, mặc định cho index.ios.js nếu không được tìm thấy.

    Updated Build Phases Example

    Reference - react-native/scripts/react-native-xcode.sh

+1

Cảm ơn bạn đã hỗ trợ. Điều này là cần thiết sau khi chuyển sang TypeScript vì tệp index.ios.js được chuyển đến một thư mục tạo phẩm. – huntharo

+0

Xin chào @abhishek, tôi đang sử dụng Typecript và tôi đã thay đổi tập lệnh của mình thành tập lệnh sau nhưng vẫn không thể tìm thấy tệp nhập. Bất kỳ ý tưởng? xuất NODE_BINARY = nút ../node_modules/react-native/scripts/react-native-xcode.sh /artifacts/index.ios.js Đường dẫn mong đợi '/ artifacts/index.ios.js' là tương đối đến một trong những gốc của dự án – ofer2980

+0

Tôi có thể sai nhưng dấu gạch chéo hàng đầu có thể khiến đường dẫn của bạn không giải quyết trong Xcode. Hãy thử nó mà không có dấu gạch chéo hàng đầu 'artifacts/index.ios.js'. –

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