我正在嘗試做一些非常簡單和典型的事情,這是在我的Xcode項目中使用動態鏈接庫,然後部署所有必要的庫嵌入。使Xcode嵌入必要的dylibs
但是我一定在做錯誤的方式,因爲Xcode 8不允許我嵌入.dylib文件,只有框架!下面的圖片是當我嘗試向Embedded Binaires添加任何東西時發生的情況,dylib沒有顯示,添加其他...將它們添加到項目中,但不添加到嵌入式二進制文件中。
必須有一個非常簡單的方法來做到這一點,但我無法找到它...
尾聲
因此很明顯,因爲我需要運行腳本,調用install_lib_tool
我做了一個非常通用的腳本,它將改變其路徑中嵌入的副本的路徑/local/
:
#!/bin/sh
app=$BUILT_PRODUCTS_DIR/$EXECUTABLE_PATH
fw_path=$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH
app_dyl_list=(`ls $fw_path | grep dylib`)
function change_paths {
local bin=$1
echo change_path $bin
dyl_list=(`otool -L $bin | grep local | awk '{print $1}'`)
for dyl in ${dyl_list[*]}; do
libname=$(basename $dyl)
libname=${libname%%.*}
actual_libname=(`ls $fw_path | grep $libname | xargs basename`)
install_name_tool -change $dyl "@executable_path/../Frameworks/$actual_libname" $bin
printf "\t%s edited\n" $actual_libname
done
}
change_paths $app
for dyl_bin in ${app_dyl_list[*]}; do
change_paths $fw_path/$dyl_bin
done
然後,只需在複製dylib之後添加一個運行腳本步驟以僅使用不帶參數運行(環境變量包含所需的所有內容)即可。
我試過了,可悲的是,在啓動應用程序時,它仍在尋找原始/ usr/local/lib /位置中的dylib,忽略嵌入的dylib並無法正常啓動。你知道如何解決這個路徑問題嗎? –
更新了我的答案。希望有所幫助。 –
謝謝,但是這仍然不起作用,dylibs得到正確複製,但路徑保持不變,請參閱此屏幕截圖http://i.imgur.com/nuN3o3w.png –