Ios 使用xcrun打包时的怪异(使用变量时代码设计失败)
遇到以下行为时,我尝试参数化我的应用程序构建脚本: 该应用程序已经生成(使用“cordova build ios--release”)并可用 打电话时:Ios 使用xcrun打包时的怪异(使用变量时代码设计失败),ios,xcode,bash,cordova,build,Ios,Xcode,Bash,Cordova,Build,遇到以下行为时,我尝试参数化我的应用程序构建脚本: 该应用程序已经生成(使用“cordova build ios--release”)并可用 打电话时: $ xcrun ... -sign "iPhone Developer: XXX" -embed ... 一切顺利。到目前为止还不错:) 现在我想在调用中使用一个变量,如: $ identity="iPhone Developer: XXX" $ xcrun ... -sign $identity -embed ...
$ xcrun ... -sign "iPhone Developer: XXX" -embed ...
一切顺利。到目前为止还不错:)
现在我想在调用中使用一个变量,如:
$ identity="iPhone Developer: XXX"
$ xcrun ... -sign $identity -embed ...
在这里,我稍后将$identity参数传递给构建脚本
像上面那样执行'xcrun…'逻辑上会导致'codesign'命令只获取“iPhone”作为参数,并且失败(当然:)
因此,我试图掩盖$identity
成功的最贴切要求是使用
$ xcrun ... -sign \""$identity"\" -embed ...
这会导致xcrun-like调用“代码设计”
$ xcrun ... -sign \""$identity"\" -embed ...
[...]
/usr/bin/codesign ... --sign "iPhone Developer: XXX" ...
Program /usr/bin/codesign returned 1 : ["iPhone Developer: XXX": no identity found
]
有趣的是,直接从shell(/bin/bash)执行命令可以正常工作
我还试图定义已经有双引号的$identity,但这会导致最初的行为完全没有引号。到目前为止,在各种组合中使用单引号也没有任何帮助
知道为什么xcrun会出错吗。。。或者,如何做得不同?
如前所述:目标是拥有一个参数化的构建脚本
--------系统参数---------
$uname-a
达尔文安联13.0.0达尔文内核版本13.0.0:Thu Sep 19 22:22:27 PDT 2013;根目录:xnu-2422.1.72~6/RELEASE\u X86\u 64 X86\u 64
$xcrun-版本
xcrunversion22.好吧,这种奇怪的现象似乎是因为我像
xcrun -sdk iphoneos PackageAppliction $package -o $ipafile -sign \"$identity
\" -embed $profile
首先将零件(选项1$variable1选项2$variable2…等)组装到一个字符串上,如
assembledstring="-sdk iphoneos PackageAppliction $package -o $ipafile -sign \"$identity
\" -embed $profile"
只有这样做了
sh -c "xcrun $assemledstring"
对问题进行排序 或者使用:$(xcrun--sdk iphoneos--find packageapplication)$package-o…