Ios 如何为phonegap项目将ipa与签名者打包

Ios 如何为phonegap项目将ipa与签名者打包,ios,xcode,cordova,Ios,Xcode,Cordova,我已经为ios创建了一个phonegap项目。我使用phonegap命令行构建/cordova/build。然后我使用xcrun生成一个ipa,它失败了 这是我的命令行: xcrun -sdk iphoneos PackageApplication -v ./build/page.app -o ~/Documents /ipas/page.ipa -sign "iPhone Distribution: [XXXXXXX]" -embed "XXX.mobileprovision" 这是我在

我已经为ios创建了一个phonegap项目。我使用phonegap命令行构建
/cordova/build
。然后我使用
xcrun
生成一个ipa,它失败了

这是我的命令行:

xcrun -sdk iphoneos PackageApplication -v ./build/page.app -o ~/Documents  
/ipas/page.ipa -sign "iPhone Distribution: [XXXXXXX]" -embed "XXX.mobileprovision"
这是我在执行命令后得到的错误

Output directory: '/Users/longfei/Documents/ipas/page.ipa'
Temporary Directory: '/var/folders/n9/1pqsg0kj667d741s43cfnlw80000gn/T/kLf7Emmi2L'  (will NOT be deleted on exit when verbose set)
+ /bin/cp -Rp ./build/page.app /var/folders/n9/1pqsg0kj667d741s43cfnlw80000gn/T/kLf7Emmi2L/Payload
Program /bin/cp returned 0 : []
Checking original app
+ /usr/bin/codesign --verify -vvvv ./build/page.app
Program /usr/bin/codesign returned 1 : [./build/page.app: code object is not signed at all
In architecture: i386
]
Codesign check fails : ./build/page.app: code object is not signed at all
In architecture: i386

Done checking the original app
Embedding '~/Dropbox/Works/xcode/zs/yunsite1/yunsite1.mobileprovision'
+ /bin/rm -rf /var/folders/n9/1pqsg0kj667d741s43cfnlw80000gn/T/kLf7Emmi2L/Payload/page.app/embedded.mobileprovision
Program /bin/rm returned 0 : []
+ /bin/cp -rp ~/Dropbox/Works/xcode/zs/yunsite1/yunsite1.mobileprovision /var/folders/n9/1pqsg0kj667d741s43cfnlw80000gn/T/kLf7Emmi2L/Payload/page.app/embedded.mobileprovision
Program /bin/cp returned 1 : [cp: ~/Dropbox/Works/xcode/zs/yunsite1/yunsite1.mobileprovision: No such file or directory
]
error: Unable to copy '~/Dropbox/Works/xcode/zs/yunsite1/yunsite1.mobileprovision' to '/var/folders/n9/1pqsg0kj667d741s43cfnlw80000gn/T/kLf7Emmi2L/Payload/page.app/embedded.mobileprovision'

我是ios和phonegap的新手。我花了很长时间寻找解决方案,但失败了。希望你能帮助我。非常感谢。

您的命令行看起来不错(与我的类似)。您的问题是您正在签署phonegap生成的调试版本。错误在于:

Codesign check fails : ./build/page.app: code object is not signed at all
In architecture: i386
调试版本是i386二进制文件,因此它们在Mac上运行,但发布版本是ARM二进制文件。我不使用phonegap进行构建,但您需要构建发布版本才能进行签名。我在makefile中执行类似的构建:

ios-app:
        echo 'MAKE SURE YOU HAVE DONE security unlock-keychain login.keychain'
        cd $(ios_dir);xcodebuild -target $(app_name) -project $(app_name).xcodeproj -target $(app_name) -configuration Release CODE_SIGN_IDENTITY=$(sign_identity) CONFIGURATION_BUILD_DIR=`pwd`/build
        cd $(ios_dir);xcrun -sdk iphoneos PackageApplication $(ios_dir)/build/$(app_name).app -o $(ios_dir)/build/$(app_name).ipa -sign $(sign_identity) --embed $(cert_name)  -verbose

底线是您需要对包的正确版本进行签名。

我从未在命令行中进行过签名,但显然存在签名问题,事实上,为什么不直接将项目导入xcode并在那里进行设置呢?签名、打包和调试要容易得多,速度也快得多