Ios 如何为phonegap项目将ipa与签名者打包
我已经为ios创建了一个phonegap项目。我使用phonegap命令行构建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" 这是我在
/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并在那里进行设置呢?签名、打包和调试要容易得多,速度也快得多