我正在为越狱设备开发,并且已经在设备上使用自签名证书和对Xcode进行了一些编辑来构建和调试Xcode。
但我正在开发的应用程序需要能够调用setuid(0),因此需要使用chmod + s才能正常运行。 除了需要以root身份运行的iOS应用程序外,需要使用bash脚本来调用它:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/App\ Binary_ "$@"
所以,我需要这个构建脚本来构建我的app:
cd ${BUILT_PRODUCTS_DIR}/My\ App.app/
mv App_Binary App_Binary_
cp /Users/john/Shellscript Binary_App
chmod +s Binary_App_
chmod +x Binary_App
我尝试将其添加为普通的构建脚本,并将其作为Build后期操作或Run Pre-action的方案的一部分。两者都没有奏效。例如,构建后的动作后脚本返回代码签名失败,因为它试图对现在是shell脚本的App Binary进行编码。如果我在运行时将其作为预操作脚本执行,则会显示“Xcode无法使用所选设备运行。选择具有支持的体系结构的目标,以便在此设备上运行。”
我该怎么办?
答案 0 :(得分:0)
我使用post-action script构建我的越狱应用程序。虽然他们不需要额外的chmod
或bash脚本来运行,但您可以使用像我这样的脚本来安装您的应用程序(作为系统应用程序,而不是普通的App Store应用程序),然后执行{ {1}}命令并通过动作后脚本在设备上使用bash脚本交换二进制文件。
您可以尝试这些方面的内容(我尝试使用您脚本中的详细信息,但可能会出现一两个错误):
chmod
根据需要设置IPOD和PORT。 # copy binary
scp -P $PORT -r $BUILT_PRODUCTS_DIR/${WRAPPER_NAME} root@$IPOD://private/var/stash/Applications/${WRAPPER_NAME}/App_Binary_
# copy script
scp -P $PORT /Users/john/Shellscript root@$IPOD://private/var/stash/Applications/${WRAPPER_NAME}/Binary_App
# set special permissions
ssh -p $PORT root@$IPOD "chmod +s /private/var/stash/Applications/${WRAPPER_NAME}/Binary_App_"
ssh -p $PORT root@$IPOD "chmod +x /private/var/stash/Applications/${WRAPPER_NAME}/Binary_App"
是保存在磁盘上的应用程序名称,扩展名为.app。
实际上,如果您需要将应用程序安装为普通的App Store应用程序,则可以完成此操作,您只需要找到它的安装位置并根据需要调整路径。
您显然需要在设备上安装并激活SSH(Cydia上提供)。