Ma c пакет команд не находит файл - PullRequest
0 голосов
/ 27 апреля 2020

Хорошо, я получил команду ma c os, которая прекрасно работает

security import "/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12" -k "$KEYCHAIN" -P "PASSWORD" -A

Но если я хочу сделать это немного динамичным c, сохраняя P12 в переменную, она завершается неудачно с 'Нет такой файл или каталог ios_Production.p12 '

CERT="/Users/xxx/Documents/AppCompiler/temp/CordovaBuildFiles/Certificates/IOSRelease/ios_Production.p12" 
security import "$CERT" -k "$KEYCHAIN" -P "$PASSWORD" -A

Я также пытался установить $ CERT = "ios_Production.p12" и переместиться в папку перед вызовом.

Может ли кто-нибудь поделиться каким-либо светом на что может вызвать это?

** Обновлено, поскольку Марк Сетчелл указал на ошибку кода - спасибо знак в оригинале. Я также изменил папку, в которой она хранится.

Там возвращается полная ошибка: security: Ошибка чтения infile / Users / xxx / Documents / AppCompiler / temp / Cordov: Нет такого файла или каталогаSRelease / ios_Production.p12

Далее ОБНОВЛЕНИЕ и теперь работает, но я не понимаю, ПОЧЕМУ ???

ОК. Я решил переместить ios_Production.p12 в папку «Документы», и это сработало, поэтому я создал еще одну строку CERT, затем папку с помощью папка добавила их обратно, и по причинам, которые я действительно смущен этим, теперь работает. Ниже приведены две строки:

cert = "/ Users / xxx / Documents / AppCompiler / temp / CordovaBuildFiles / Certificates / IOSRelease / ios_Production.p12"

cert = "/ Users / xxx / Documents / AppCompiler / temp / CordovaBuildFiles / Certificates / IOSRelease / ios_Production.p12 "

Вы будете прощены за то, что думаете, что видите двойные, потому что вы на 100%, я сравнил их в проверщике различий, но в зависимости от того, какая строка закомментировано зависит, работает импорт или нет. Я действительно надеюсь, что это имеет смысл для кого-то, потому что я иду лысым здесь ...

1 Ответ

2 голосов
/ 27 апреля 2020

Попробуйте так:

CERT="/Users/xxx/Documents/AppCompiler/keys/prod/prodx.p12" 
security import "$CERT" -k "$KEYCHAIN" -P "$PASSWORD" -A

Синтаксис такой. Если вы установили переменную оболочки, сделайте это без доллара и без пробелов:

variable="..."

Если вы обращаетесь к содержимому переменной, заключите в двойные кавычки и используйте доллар:

echo "$variable"

И, как правило, избегайте имен переменных, состоящих из заглавных букв, чтобы убедиться, что они не совпадают со sh со встроенными переменными, поэтому ваш CERT действительно должен быть cert, но это не совсем так. .

...