如何使用php创建ipa文件

时间:2013-05-22 09:57:50

标签: php ios terminal xcodebuild

我正在尝试从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 with CONFIGURATION Release ===检查依赖项代码签名错误:身份'iPhone Distribution:Profile_Name'与您的任何有效,未过期的证书/私钥对不匹配钥匙扣

2 个答案:

答案 0 :(得分:1)

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

然后研究使用'security'命令行工具导入私钥&amp; xcodebuild正在寻找_www用户的钥匙串的证书对。您可能必须为_www用户实际创建一个钥匙串(我只使用您可以登录的普通用户进行构建)。

答案 1 :(得分:0)

我认为它看起来像~/.ssh/id_rsa这样的东西,当你从浏览器(用户wwwwww-data

运行时找不到它