php - 如何使用php创建ipa文件

标签 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 === 检查依赖项代码签名错误:身份“iPhone Distribution: Profile_Name”与您的任何有效、未过期的证书/私钥对不匹配 key 扣

最佳答案

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

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

关于php - 如何使用php创建ipa文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688872/

相关文章:

ios - 无法构建 Xamarin.Forms iOS 项目

macos - Mac 终端中的 mkdir/cp 给出 "Permission denied"错误

php - 尽管有 mysql 条目,NSArray 在 iOS 中为空

php - 避免拉伸(stretch)照片

php - 如何在 codeigniter 中重置密码后重定向

javascript - JSON AJAX 请求在使用方括号时返回未定义

iphone - 在iphone中将图像发布到服务器

iOS 最佳性能持久化数据解决方案?

git - 如何在不调用 Github API 的情况下获取 GitBash 中特定分支的现有 Pull Request ID 和 Url?

python - 错误 : no such file