ios - Cordova 在 CLI 上构建 iOS 版本失败的代码签名检查

标签 ios xcode cordova xcodebuild ipa

我正在尝试使用 xcodebuild 工具从 Cordova 为 iOS 构建的 .app 文件生成一个发布 .ipa 文件。

我在 OSX v10.9.5、Xcode 6.0.1、Cordova 3.5.0-0.2.7 上。

当我将目录更改为我的 Cordova 项目时,我运行以下命令:

cordova build ios --release

这会按预期在 platforms/ios/build/emulators 文件夹中生成 .app 文件。

然后我运行以下命令来签署 .app:

codesign -s "code sign certificate" path-to/my.app

然后我验证:

codesign -dv path-to/my.app

这将返回类似这样的内容以表明 .app 已签名:

Identifier=com.myapp.name
Format=bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=3942 flags=0x0(none) hashes=190+3 location=embedded
Signature size=4359
Signed Time=3 Oct, 2014 10:55:16 am
Info.plist entries=21
TeamIdentifier=TQY89NPL4X
Sealed Resources=none
Internal requirements count=2 size=1004

这似乎是正确的。

然后我生成一个存档,从中创建一个 .ipa 文件:

xcodebuild clean archive -scheme myApp -target myApp -sdk iphoneos -configuration AdHoc CODE_SIGN_IDENTITY="the code sign identity" PROVISIONING_PROFILE="UDID of provisioning profile"

这很好用并且成功了。

使用生成的存档,我使用此命令尝试生成 .ipa 文件:

xcodebuild -project myApp.xcodeproj -exportArchive -exportFormat ipa -archivePath /path-to/myApp.xcarchive  -exportPath $(pwd)/myApp.ipa CODE_SIGN_IDENTITY="code sign identity" -alltargets -configuration Release

这确实在正确的位置生成了 .ipa,但我收到一个令人担忧的通知/错误,指出代码签名验证失败:

Codesign check fails : /myApp.app: resource envelope is obsolete

我担心生成的 .ipa 会因代码签名失败而在提交后被应用商店拒绝。

我在这个过程中有没有做错什么?

如何让 .app 通过代码签名验证步骤?

通过代码签名验证真的重要吗?

有没有办法在提交前测试.ipa文件以保证它不会被拒绝?

最佳答案

尝试使用xcrun命令打包app并生成ipa xcrun manual page

示例:

xcrun -sdk iphoneos PackageApplication -v "${PRODUCTDIR}/${TARGET}.app" -o "${OUTDIR}/${TARGET}.ipa" --sign "${IDENTITY}" --embed "${PROVISONING_PROFILE}"

我用它来创建我可以上传到 TestFlight 的 .ipa。

关于ios - Cordova 在 CLI 上构建 iOS 版本失败的代码签名检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173045/

相关文章:

iphone - 使用allKeys时应用崩溃,是因为只有一个对象吗?

javascript - jquery ajax POST 中出现 400(错误请求)错误

iphone - 使用 NSXMLParser 解析 XML 文件 - 获取值

ios - 如何在 Swift 中使用 Google Calendar API

ios - 是否可以根据语言以外的标准对应用程序名称进行本地化?

cordova - 如何在 Cordova 移动中配置 amazon SNS 以接收推送通知

javascript - deviceready 事件未在 Cordova 3.2.0 中触发

ios - Delphi FireMonkey 中的 UIView animateWithDuration

ios - 在旧版本中运行 xcode 5 和 iOS7 更改

xcode - Swift NSTimer 编码