【发布时间】:2020-08-10 19:06:17
【问题描述】:
好的,我有一个运行良好的 mac os 命令
security import "/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12" -k "$KEYCHAIN" -P "PASSWORD" -A
但如果我想通过将 P12 存储到变量中使其具有一点动态性,它会失败并显示“没有此类文件或目录 ios_Production.p12”
CERT="/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12"
security import "$CERT" -k "$KEYCHAIN" -P "$PASSWORD" -A
我也尝试过设置 $CERT="ios_Production.p12" 并在调用之前移动到该文件夹。
谁能分享导致这种情况发生的原因?
**更新为 Mark Setchell 指出代码错误 - 感谢原版中的标记。我还更改了存储它的文件夹。
返回的完整错误是: 安全性:读取文件/Users/xxx/Documents/AppCompiler/temp/Cordov 时出错:没有这样的文件或目录SRelease/ios_Production.p12
进一步更新,现在正在工作,但我不明白为什么???
好的,我决定将 ios_Production.p12 移到 Documents 文件夹中,并且它起作用了,所以我创建了另一个 CERT 行,然后逐个文件夹将它们添加回来,由于我对它现在工作的原因感到非常困惑。下面是两行:
cert="/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12"
cert="/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12"
如果你认为你看到的是双倍是可以原谅的,因为你是 100%,我已经在差异检查器中比较了它们,但取决于哪一行被注释掉取决于导入是否有效。我真的希望这对某人有某种形式的意义,因为我在这里要秃了......
【问题讨论】:
-
听起来你有一个非印刷字符之类的东西把事情搞砸了。尝试使用
LC_ALL=C cat -vet /path/to/script打印脚本文件,看看这些行是否看起来仍然相同。顺便说一句,您应该会看到每行末尾添加了一个美元符号,表示换行符。如果你看到其他不寻常的东西,那就表明有些东西很奇怪。 -
尝试转到以
.p12结尾的目录并运行pwd | xxd以查看Cordova一词中的目录名称中是否有疯狂字符。 -
感谢 Gordon - 使用 LC_ALL 的两个输出是相同的。
-
Mark - 即使我将文件夹设置为 /users/documents 也会发生这种情况,因此它不是文件夹问题。我在该行上所做的任何更改都失败了,但是一个确切的新行有效(键入而不是复制)-我认为 Gordon 有正确的想法,即隐藏了某些东西,但它没有出现在任何地方。修复只是简单地删除该行,但它是一个令人头疼的问题......
标签: bash macos osx-yosemite macos-catalina