2014-10-03 168 views
3

我想从使用xcodebuild工具的iOS的Cordova构建的.app文件中生成一个版本.ipa文件。Cordova在CLI上构建iOS版本失败的codesign检查

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

当我改变目录到我的科尔多瓦项目中,我运行以下命令:

cordova build ios --release 

由此,在platforms/ios/build/emulators文件夹中的.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文件以保证它不会被拒绝?

回答

3

尝试使用xcrun命令打包的应用程序,并生成一个IPA xcrun manual page

样品:

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

我用这个创建的.ipa的,我可以上传到TestFlight。

+0

当我尝试这个时,我得到一个错误,表示无法将配置文件从其现有位置复制到tmp文件夹 – RyanP13 2014-10-13 05:11:39

+0

对于配置文件变量,您是将绝对路径还是文件名传递给它? – Acludia 2014-10-13 15:27:17

+0

我使用配置文件的绝对路径 – RyanP13 2014-10-14 03:34:54