Используйте PHP Exec Shell (CodeSign) отставку IPA на Mac

Я написал некоторый код для упаковки IPA канала и отставки IPA с оболочкой. Когда я запускаю эту оболочку в командной строке, она работает нормально.

Основной код оболочки:

#!/bin/bash

name=$1
needchannel=$2
appName="$name.app"ipa="$name.ipa"plistName="${name}_${needchannel}.plist"
# echo "${1} ${2} $ipa"if [ ! -f "./Payload" ];then
# echo "not exit Payload"unzip $ipa
chmod -R 0777 Payload
else
echo "exit Payload"fi
cd Payload
cd $appName

ipaPath="${name}_${needchannel}.ipa"/usr/libexec/PlistBuddy -c "set Channel $needchannel" "Channel.plist"
cd ../..

/usr/bin/codesign -f -s "iPhone Distribution: xxxx, ooo" --entitlements entitlements.plist "Payload/${appName}"zip -rq  "./app/${ipaPath}" "Payload"

Код PHP:

<?php

$webid = $_GET["webid"];
$appfinder = "./app/";
$filename = "Channel_".$webid.".ipa";

if (!file_exists($appfinder.$filename))
{
$shell = "sh produceApp.sh Channel $webid";

system($shell, $status);

if( $status ){
echo "produceApp error";
var_dump($status);
return;
}
}
?>

Я не знаю, почему оболочка запускается успешно в командной строке и терпит неудачу в PHP.
Кто-нибудь может мне помочь.

Все работает, кроме кода.

PS: я пишу код оболочки в php, запускаю напрямую, system () возвращает 1, вот так:

<?php
$shell = "/usr/bin/codesign -f -s \"iPhone Distribution: xxx, ooo\" --entitlements entitlements.plist \"Payload/Channel.app\"";
echo "$shell";
echo "<br>";
system($shell, $status);
print_r($status);
?>

оболочка chrome show:

/usr/bin/codesign -f -s "iPhone Distribution: xxx, ooo" --entitlements entitlementds.plist "Payload/Channel.app"

и функция system () возвращает $ status 1 ..

веб-шоу результата системного кода …

1

Решение

Проблема в пути! Записывайте путь при запуске php и исправляйте его.

0

Другие решения

Других решений пока нет …