Xcode 4.3: Codesign operation failed (Check that the identity you selected is valid)

白昼怎懂夜的黑 提交于 2019-11-27 19:40:30

I've discovered that Xcode 4.3.1 has a serious issue validating apps with resources within a directory tree within an application bundle.

Apps can pass validation within the Xcode "Build for Archive" process - it only fails when the validation is run via Organizer.

After spending hours trying to trace down the usual code signing entitlement issues, I eventually noticed the following line in the system console when the export fails:

3/10/12 2:32:48.450 PM [0x0-0x261261].com.apple.dt.Xcode: /Users/chris/Library/Developer/Xcode/Archives/2012-03-10/Coverage 3-10-12 2.32 PM.xcarchive/Products/Applications/Coverage.app/Tiles/T-Mobile-roam/4: Is a directory

I spent a day trying to isolate this bug, and I've finally nailed it.

The code signer in XCode 4.3.1 when validating for the App Store or saving for AdHoc distribution chokes whenever there is a subdirectory in your bundle that has the same name as its parent directory.

For example:

test/test/file.x -- FAIL
test/test2/file.x -- WORKS

This seems to be new in Xcode 4.3.1, and hopefully will be fixed soon.

Notes: This thread seems related: https://devforums.apple.com/message/630800

I was the original poster on the Apple Dev Forums...
https://devforums.apple.com/message/621193

I've also attempted to bring this to the attention of the AddThis developers:
https://www.addthis.com/forum/viewtopic.php?f=19&t=38292

As mentioned in the other posts, the only way I've found to prevent the code signing failure is to remove the ATResources.bundle file from the project.

Of course, this bundle contains many of the necessary images for AddThis, among other things, but the error no longer occurs.

I'm hoping this helps someone else discover the correct way to solve this issue.

The problem is AddThis or explicitly the ATResources.bundle in the AddThis folder.

So you have two options:

  • The first one is using an older version of Xcode to Archive.

  • The second one is relocate all the images inside the ATResources.bundle into a folder, and copy the content of the Localizable.strings into your own Localizable.strings

    Then open the FBDialog.m file and search for "close.png", remove that line of code and replace it with:

    UIImage* closeImage = [UIImage imageNamed:@"close.png"];

Now you're ready to Archive.

Finally consider to file a bug report in https://bugreport.apple.com/

Thomas Tempelmann

In my case, it was a damaged custom framework.

I have so many subdirectories on my bundle that have the same name as their parents, so I was not able to validate and submit. The only solution I found is to download xcode 4.2.1 from Apple developer center and install it side by side with xcode 4.3.2. Then I used it to validate and submit.

I'm developing on Sencha 2. The key here is to launch the System Console from Apps/Utilities and look at the error log when distributing. That's the easiest way to see the offending directory. In Sencha2 its in the /sdk/src/device/device. Good stuff: Still happening in xcode 4.3.2

Just confirming that the problem was indeed nested folders with the same name in my app.

In my particular case this was the issue:

  • problem: images/packs/1/1/img.png
  • solution: images/packs/pack_1/1/img.png

Smooth sailing after that. This happened in Xcode 4.3.3

found the solution, it really works for me. hope this will help you guys.

if the issue is because of Addthis, try following

noted that the inside ATResources.bundle you have a folder named ATResources.

ATResources contains exactly the copy items (ADDTHIS.db,en.lproj,images) which is present in ATResources.bundle. so we can simply delete the ATResources folder from ATResources.bundle.

for deleting,, select the files from ATResources.bundle and right click , show in finder -> and remove ATResources folder.

the major issue is because subdirectory in your bundle that has the same name as its parent directory.

:)

Harin

I had same problem in my project (in xcode 4.3.2) and as per all answers I checked for any .png file starting with ._* and also checked folder and its subfolder are different name.

Also checked code signing identity as per requirement, but did not succeed to solve this problem.

After whole days effort finally I got reason for "Packaging operation failed" error in my project.

In my case, I have classed About_us.h and About_us.m and by mistake I import header file like #import "About Us.h" (white space in middle). So when I loaded app on Device it will successfully loaded but when I try to create ipa using archive its give me error and return me Estimated App Store Size just 143 kb.

Finally while I change header like #import "About_Us.h" and try to make ipa I got real size in proper MB.

Hope this will help someone.

I experienced this issue on Xcode 5.0.2 (5A3005) with 2 completely separate folders that happened to be named the same thing.

Most other cases in this thread focus on the parent/sibling relationship, but I think it's any two folders with the same name will cause this failure.

I had same problem as you do, and radven response inspired me:

did you see that ATResources directory contains nothing more than just copy of its parent?

ADDTHIS.db
en.lproj/*
images/*
ATResources/ADDTHIS.db
ATResources/en.lproj/*
ATResources/images/*

As a quick-and-dirty fix I removed the redundant subdirectory. Application builds and seems to work fine, and Xcode is able to sign.

Let me know if I missed any consequence of this fix?

Gee, I spent like an hour on this problem.

I just removed AddThis from my project. Do it and it would work.

restarting xcode made the buttons work for me. they were greyed out before, in case anyone here is having the same problem

Techi50 alluded to this but to be clear - under Xcode 4.3.5 there is a serious bug where code signing will fail if you have subdirectories with the same name as the parent directory. In the Sencha Touch 2 SDK tree, for example, there is

/sdk/src/device/device

argh... hours of trying to code sign with no luck... rename to:

/sdk/src/device/device_epic_fail

(since I don't need those libraries anyway)

and I can code sign.

And one big bug hunt is over. Apple... fix please...

Updating the AddThis SDK from 0.1.7 to 0.1.9 fixed this problem for me (using XCode 4.3.1).

I've determined another cause of this error, which occurred for me in Xcode 4.6.2 (4H1003). I had a subproject building an executable. This executable is a helper tool which is copied into my app's bundle when it builds.

The app has a min deployment target of OS X 10.7 and builds for 64-bit Intel as a result. The helper tool, however, was set to a deployment target of 10.6, and was building for 32-bit/64-bit Intel.

Changing the helper tool to also build for 10.7 and 64-bit Intel only fixed the error. I can reliably recreate the error by changing the helper tool back to 32-bit/64-bit Intel; this is not a 'erm, zap your PRAM' fix.

Michael

As @radven and @tomek-cejner mentioned sometimes some extra directories could cause problems. Maybe if named improperly? for me the offenders were different.

Gruntfile.js, karma-e2e.conf.js, karma.conf.js, and the entire node_modules directory.

see: How to build IPA for distribution with TestFlight with XCode 5?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!