使用 altool 提交的 XCode 无法通过 plink 工作

问题描述 投票:0回答:1

我可以自动将 iOS 应用程序提交到 AppStore。在 Windows 机器中执行的批处理文件:

plink.exe -batch -pw [PASSWORD] [LOGIN]@[IP_ADDRESS] /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --upload-app -f /Temp/upload.ipa --type ios -u [USERNAME] -p [PASSWORD]

PLink 连接到远程 MAC 机器并执行

altool
,将应用程序上传到 AppStore。该代码之前可以工作,但是在我更新了 XCode(即
altool
)和
plink
之后,它不再工作了。错误输出如下:

2023-04-28 07:02:57.682 *** Error: /usr/bin/ditto, terminated with status: 1
2023-04-28 07:02:57.686 *** Error: Validation failed for '/Temp/upload.ipa'.
2023-04-28 07:02:57.686 *** Error: The package could not be unpacked because of the following error: Unable to extract archive. Please make sure /Temp/upload.ipa is a valid zip or ipa archive. Unable to validate your application. (-20008)
 {
    NSLocalizedDescription = "The package could not be unpacked because of the following error: Unable to extract archive. Please make sure /Temp/upload.ipa is a valid zip or ipa archive.";
    NSLocalizedFailureReason = "Unable to validate your application.";
}

但是,如果我直接在MAC OS上执行

altool
altool
参数完全相同):

/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --upload-app -f /Temp/upload.ipa --type ios -u [USERNAME] -p [PASSWORD]

然后上传成功:

================
UPLOAD SUCCEEDED
Delivery UUID: *****
Transferred 54415023 bytes in 2.467 seconds (22.1MB/s)
================
No errors uploading '/Temp/upload.ipa'

我检查它是否可以访问该文件(如果我输入错误的文件名,我会得到一个不同的错误)。我尝试在

sudo
之前添加
altool
- 它没有任何区别。显然所有密码都是正确的,因为如果我输入错误的密码,它会给我另一个错误。

我的想法用完了。请帮助。

为什么直接使用

altool
有效,但它不能通过
plink
远程工作?

xcode automation plink
1个回答
0
投票

好吧,找到解决方案后我觉得很愚蠢,但还是决定发布它以防对任何人有帮助。

我使用在 Mac OS 桌面上创建的 Temp 文件夹临时保存 IPA 文件。即使我更改了读/写权限(对文件夹和随附的项目),我仍然无法使其工作。解决方案是使用 /private/tmp 文件夹(别名只是 /tmp,但从 Windows 远程看不到别名)。 /tmp 文件夹有权从头开始写入任何人,因此您无需更改任何内容。所以,这就是“无法解压包裹”消息的问题。我想

altool
试图打开 IPA 的包装。

其次,这与我在 Windows 上执行批处理文件的工具更相关——出于某种原因,

altool
将所有输出写入
StandardError
而不是
StandardOutput
。这很奇怪,但是所有正常消息都会转到标准错误输出,没有任何内容来自标准输出。所以,如果你尝试阅读
StandardOutput
- 你将一无所获。

© www.soinside.com 2019 - 2024. All rights reserved.