Reputation: 3588
I am trying to upload my application on iTunes for iOS 9. I used Xcode 7 beta 6 to build my IPA , but iTunes failed to upload my IPA by following error message .
Upvotes: 45
Views: 32652
Reputation: 6586
The problem lies in the Xcode integration plugin for Jenkins. Specifically, there is a checkbox in build details pane called : "Pack application and build .ipa?"
This feature will call 'xcrun PackageApplication' with the optional '--embed' and '--sign' flags set.
for the most part you will have already run codesign, and also in most cases the embedding of the provisioning profile is redundant. unfortunately the author of the plugin has not taken this into consideration, and these two optional parameters are not configurable through the GUI of the jenkins plugin.
the solution:
DO NOT SELECT THIS OPTION!
This option has three parameters:
'.ipa filename pattern' : ex: MyApplication
'Output directory' : ex: OUTPUT
'manifest plist URL' ( I've not used this... )
instead, manually package your .ipa file by adding the 'execute shell' after the build using the parameters you would in the 'pack' option of the GUI:
/bin/mkdir $(PWD)/build/OUTPUT
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $(PWD)/build/MyApplication.app -o $(PWD)/build/OUTPUT/MyApplication.ipa
Upvotes: 5
Reputation: 21254
Applications built with developer tools betas cannot be submitted to iTunes Connect.
Try it with the GM or release version of the tools.
Upvotes: 0
Reputation: 605
I am the same boat as DongHui Li. I am using Jenkins too. If I remove CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
I am NOT able to build. And if I add it, I can build but NOT able to submit to Apple.
UPDATE -> I am able to build and upload to apple using Jenkins now.
What I did is:
CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
Find the /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
script and update it.
Find the lines including the following code in the script
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
"--sign", $opt{sign},
"--resource-rules=$destApp/ResourceRules.plist");
change it to:
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
"--sign", $opt{sign});
Upvotes: 57
Reputation: 1
As I use Jenkins to build automatically, remove CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist leads to a fail build. But with xcode building, it works.
Upvotes: 0
Reputation: 1263
Project settings under Build Settings > Code Signing > Code Signing Resource Rules Path - Delete the value for Code Signing Resource Rules Path. That fixed issue for me
Upvotes: 94
Reputation: 4906
Check in your info.plist if you have the voice CFBundleResourceSpecification
empty and if you not need it so remove it.
If you need it so you need to check the value that you use under Code Signing Resource Rules Path
in build setting.
Upvotes: 2