2014-10-03 166 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