【发布时间】:2025-12-03 00:45:02
【问题描述】:
我正在尝试为开发步骤自动创建 .ipa 文件。 我有企业许可证,并且使用分发证书。 (这是企业发行版的发行证书。所以我不在应用商店上发布)
到目前为止,这是我的代码,我尝试手动完成整个签名过程:
#!/bin/bash
PROFILE_PATH="XX/XXX/XXX.mobileprovision"
PROFILE_NAME="XXXXXXX"
KEYCHAIN="/Users/XXXX/Library/Keychains/login.keychain-db"
PASSWORD="XXXX"
CERT_PASS="XXXX"
CERT_PATH="./XXX/XXX"
ARCHIVE_PATH="./XXX/myApp.xcarchive"
IPA_PATH="./XXX/myApp.ipa"
EXPORT_PATH="./XXX/exportHouse.plist"
sleep 5
open "${PROFILE_PATH}"
sleep 5
security list-keychains
security unlock-keychain -p ${PASSWORD} ${KEYCHAIN}
security -q import ${CERT_PATH}.p12 -k ${KEYCHAIN} -P ${CERT_PASS} -T /usr/bin/codesign
security set-keychain-settings ${KEYCHAIN}
security set-key-partition-list -S apple-tool:,apple: -s -k ${PASSWORD}
# Make the archive file
xcodebuild \
DEVELOPMENT_TEAM="4CVDA82G9X" \
PROVISIONING_PROFILE_SPECIFIER=${PROFILE_NAME} \
CODE_SIGN_IDENTITY="iPhone Distribution" \
CODE_SIGN_STYLE="Manual" \
OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN}" \
-scheme ispektor \
-workspace ./platforms/ios/myApp.xcworkspace \
-archivePath ${ARCHIVE_PATH} \
archive
sleep 5
# Make the IPA file
xcodebuild \
-exportArchive \
-archivePath ${ARCHIVE_PATH} \
-exportPath ${IPA_PATH} \
-exportOptionsPlist exportAppStore.plist \
-exportOptionsPlist ${EXPORT_PATH} \
问题:
我可以下载 ipa 文件;但是,当我在手机上启动它时,它会立即打开和关闭:
当我们查看我们拥有的日志时(我只选择了相关部分):
Executing launch request for application ...
Submitting job ...
<Error>: failed to get pid for label UIKitApplication: No such process (3)
<Error>: Failed to start job for application<com.myApp.mobileApp>: <NSError: 0x100545e20; domain: NSPOSIXErrorDomain; code: 3; reason: "No such process"> {
userInfo = {
RBLaunchdOperation = launch_get_running_pid_4SB;
RBLaunchdJobLabel = UIKitApplication:com.myApp.mobileApp[7207][rb-legacy];
}
}
<Notice>: Trust evaluate failure: [leaf AnchorApple ChainLength IssuerCommonName LeafMarkerOid MissingIntermediate SubjectCommonName]
潜在原因:我认为这来自我的初始证书,当我在第 21 行手动导入时,此证书“不可信” strong> 。当我使用 xcode 完成所有操作并设置“自动管理签名”时,它就可以工作了。
当我手动强制“始终信任”时,我无法编译:
note: Constructing build description
error: Invalid trust settings. Restore system default trust settings for certificate "iPhone Distribution: XXXX" in order to sign code with it. (in target 'myApp' from project 'myApp')
当它说“恢复”时,它意味着信任 --> 不信任。
所以我需要使用 CLI 执行与“自动管理签名”相同的操作。
【问题讨论】:
-
我可以下载 ipa 文件并在我的手机上启动它,但它会立即打开和关闭 明确一点:ipa 是使用应用商店证书还是企业创建的证书?
-
嗨@Honey,正如我在开头提到的,它是企业发行版的发行证书。所以我不在 appstore 上发布,我只是在我的公司服务器上 ftp .ipa 和 manifest.plist。
-
this解决了吗?
-
快速回答是否定的,首先正如我所说的“当我手动强制“始终信任”时,我无法编译”,其次我想通过 CLI 来完成。当我在没有 CLI 的情况下手动执行此过程时,证书不是“不受信任”或“始终受信任”,它只是受信任。当我们管理证书/团队时,这项工作由 xcode 完成
标签: ios command-line-interface ipa xcodebuild enterprise-distribution