2

我正在尝试从 php 文件运行 shell 脚本来构建和存档 ios 应用程序。这是我到目前为止所做的

在我的 test.php 文件中,我编写了以下代码:

<?php
    echo shell_exec("sh build.sh");
?>

在 build.sh 我写过:

PROJDIR="/Library/WebServer/Documents/ExpertIPA/IPA/MyApp"
PROJECT_NAME="MyApp"
APPLICATION_NAME="MyApp"
TARGET_SDK="iphonesimulator6.0"
PROJECT_BUILDDIR="${PROJDIR}/build/Release-iphoneos"
TARGET_TEST_NAME="ExpertApp"
BUILD_HISTORY_DIR="${PROJDIR}/ipa/" #where you want the .ipa to go
DEVELOPER_NAME="iPhone Distribution: developer Name"
PROVISONING_PROFILE="/Library/WebServer/Documents/ExpertIPA/IPA/ExpertApp/
MyApp_distribution.mobileprovision"


echo Building Project
cd "${PROJDIR}"
build_type_iOS=$2


xcodebuild clean -configuration "${build_type_iOS}"
xcodebuild -target "${PROJECT_NAME}"  -configuration Release


if [ $? != 0 ]
then
   exit 1
fi

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${PROJECT_BUILDDIR}/${PROJECT_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa"  --embed "${PROVISONING_PROFILE}"

当我从终端运行我的 build.sh 文件时,它会成功创建 MyApp.ipa,当我在 mac 终端上运行 test.php 时它工作正常,但是当我从浏览器运行 test.php 时,它会给出以下错误消息。

错误信息:

使用配置构建项目 MyApp 的本机目标 MyApp 发布 === 检查依赖项 代码签名错误:身份“iPhone Distribution: Profile_Name”与钥匙串中任何有效的、未过期的证书/私钥对不匹配

4

2 回答 2

1

xcodebuild 正在寻找的私钥和证书通常存储在您的钥匙串中。当您以自己的身份登录时,您可以使用 Keychain Access GUI 查看您的钥匙串。使用该 GUI 导出证书和私钥。

然后考虑使用“安全”命令行工具将 xcodebuild 正在寻找的私钥和证书对导入到 _www 用户的钥匙串中。您可能必须实际为 _www 用户创建一个钥匙串(我只使用可以登录的普通用户进行构建)。

于 2013-05-22T16:31:31.880 回答
0

我认为当您从浏览器(用户或)运行时它会寻找类似的东西~/.ssh/id_rsa并且找不到它wwwwww-data

于 2013-05-22T10:02:32.717 回答