rsync 工具累舷,在build之后的腳本中用于copy bundle文件進(jìn)framework傲霸。
貌似是個(gè)功能強(qiáng)大的工具宿刮,殺雞用牛刀岂嗓?
http://man.linuxde.net/rsync
app sandbox switched
Mac app有一個(gè)沙盒設(shè)置: <key>com.apple.security.app-sandbox</key>
上線時(shí)需要打開(kāi)汁展,打開(kāi)之后就無(wú)法訪問(wèn)到應(yīng)用之外的數(shù)據(jù)(有一個(gè)特例是用戶制定某個(gè)外部路徑,指定之后就可以根據(jù)路徑訪問(wèn)到對(duì)應(yīng)的外部數(shù)據(jù)了)
//沙盒開(kāi)關(guān)打開(kāi)后厌殉,像 xcode.activeWorkspaceDocument這樣的數(shù)據(jù)就取不到了
XcodeApplication *xcode = (XcodeApplication *)[SBApplication
applicationWithBundleIdentifier:XcodeBundleID];
XcodeWorkspaceDocument *workspace = [xcode activeWorkspaceDocument];
具體可以參考這個(gè)文章食绿,圖文說(shuō)明比較清晰: http://www.skyfox.org/cocoa-macos-sandbox.html
因?yàn)槭莝wifte混編,使用其他方式(比如改成framework)公罕,總有些編譯或者無(wú)法加載的問(wèn)題器紧。還是改成oc的庫(kù)方便點(diǎn)。
折騰了半天楼眷,moduleName-Swift.h not found錯(cuò)誤很容易出現(xiàn)铲汪,太坑了熊尉。
其次是想換成framework,但是因?yàn)榛炀巻?wèn)題掌腰,導(dǎo)致編譯不過(guò)狰住。
InjectionBundle編譯是用macos的SDK,所以生成的是Mac的bundle齿梁。iOS的bundle是在腳本里附帶生成的(同時(shí)生成的還有tvOS的bundle)
想把InjectionBundle改成iOS的SDK催植,結(jié)果swift類not found。
坑坑坑 還是努力改成OC士飒。
對(duì)了 還有swift語(yǔ)法查邢,真是要去熟悉一下了。不然好的庫(kù)都看不懂啊酵幕。
在iOS環(huán)境執(zhí)行shell command扰藕?學(xué)到了,有空試試
let pid = fork()
if pid == 0 {
var args = [UnsafeMutablePointer<Int8>?](repeating: nil, count: 4)
args[0] = strdup("/bin/bash")!
args[1] = strdup("-c")!
args[2] = strdup(command)!
args.withUnsafeMutableBufferPointer {
_ = execve("/bin/bash", $0.baseAddress!, nil) // _NSGetEnviron().pointee)
fatalError("execve() fails \(String(cString: strerror(errno)))")
}
}
var status: Int32 = 0
while waitpid(pid, &status, 0) == -1 {}
return status >> 8 == EXIT_SUCCESS