2016-02-12 31 views
4

我的所有靜態圖像都放在我的項目根目錄下名爲「images」的文件夾中。但是,在我運行以下命令捆綁我的應用程序後,該應用程序可以正常工作,但沒有顯示圖像。部署後,反應原生iOS應用程序不顯示靜態資產(圖像)

我使用捆綁的命令:

./react-native bundle --minify --entry-file index.ios.js --platform ios --dev false --bundle-output main.jsbundle --assets-dest ./assets 

注意,資產文件夾中創建,它有我的圖片與確定的所有圖像文件夾中。

你能幫忙嗎?

+0

請給我更多的細節。模擬器還是設備?如果設備,你是如何部署它的?你可以發表一個你的圖像用法的代碼示例。 –

+0

它發生在設備和模擬器上。 – meteorite

+0

我做了什麼來部署它:1)編輯模式以設置「發佈」模式。 2)將包位置改爲使用本地主包(main.jsbundle)3)執行上面的命令捆綁應用程序。 4)選擇我的設備並運行它。 – meteorite

回答

8

資產目的地和mainbundle.js必須位於同一個文件夾中。嘗試:

./react-native bundle --minify --entry-file index.ios.js --platform ios --dev false --bundle-output ./release/main.jsbundle --assets-dest ./release 

捆綁器將在那裏創建一個資產文件夾。

UPDATE包括從下面的討論信息:

的react-native-xcode.sh腳本是在XCode中生成步驟複製main.jsbundle執行和文件夾中創建的資產被捆綁進應用程序包。如果您想手動部署軟件包,則需要確保複製這些文件。最簡單的方法是將main.jsbundle直接包含到項目中,並創建一個到assets文件夾的文件夾鏈接。確認兩者都顯示在「Build Phases」 - >「Copy Bundle Resources」中。

+0

在這種情況下應該是什麼jsCodeLocation路徑?當前值是:jsCodeLocation = [[NSBundle mainBundle] URLForResource:@「main」withExtension:@「jsbundle」]; – meteorite

+0

問,因爲試了一下,但沒有工作。 – meteorite

+0

可能jsCodeLocation = [[NSBundle mainBundle] URLForResource:@「release/main」withExtension:@「jsbundle」];您也可以嘗試執行--bundle-output ./main.jsbundle --assets-dest。重點是,那require()搜索資產相對於當前的main.jsbundl –

相關問題