Showing posts with label distribution. Show all posts
Showing posts with label distribution. Show all posts

Tuesday, October 4, 2011

Application Failed Codesign Verification

Submission to App Store wasn't as easy as I thought in previous blog. Not really surprised, but this problem was tough to solve. Not tough as in hard to fix, but as hard to figure out:
Application failed codesign verification.  The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)

Monday, October 3, 2011

Application Validation Problems

Tried all weekend to make a release, these were the last issues to be solved:
warning: Icon specified in the Info.plist not found under the top level app wrapper: Icon-SMall@2x.png (-19007)

Monday, November 15, 2010

Everything That Can Go Wrong With Xcode Build and Release

Right now I'm in the middle of serious mess up of my Xcode development environment, can't create ad hoc builds. No idea what triggered it, thus no idea what or how to fix. Since same error notes keep popping up time after time, I start documenting each. Maybe I'll slowly gather enough info to fix something.

Xcode error notes:
Useful articles:
Useful sites:
Have patience, try again, just keep bumbing your head into wall, no pain no gain, good luck, it works for me, wave the rubber chicken above monitor... yep, I know: none of it helps.

You have sympathy. It won't help either.

The executable was signed with invalid entitlements

Try to create ad hoc release in Xcode, got error note:
The executable was signed with invalid entitlements.

The entitlements specified in your application's Code Signing Entitlements file do not matchc those specified in your provisioning profile (0xE8008016). [OK]
Case 1: Go to Provisioning Portal - Provisioning - Distribution, find your project Distribution Provisioning Profile, Edit - Modify (do whatever and revert if everything already is right) - Submit - Download and double-click the file at your dev machine. Clean and rebuild.

Case 2: make sure you have Entitlements.plist file in your project, containing just one prorerty called get-task-allow". This has to be off. Add name of this file into your project ad hoc release Code Signing Entitlements.

Thursday, September 30, 2010

How to Create Default.png

Every released application must have a Default.png file, which is presented during startup. It is supposed to present the default startup view - but empty.


Since all applications are unique (even the thousands of fart apps), there is no single way to create a default.png. However here's two tips, which I use:

1) If your startup view contains a list, create empty list by defining number of sections as 0 (zero):
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // For Default.png creation
    return 0;
}
2) If your application has UITabBar, clear tab titles:
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    // For Default.png creation
    for (UITabBarItem *item in self.parentViewController.tabBarController.tabBar.items)
        item.title = @"";
}
In general Default.png should not contain any text strings, since one day you might translate your application to other languages. That day you don't want to flash different language strings during app launch.


...oh, and how to create the actual file? Fix your app to present an "empty screen", build and launch debug version in your handset and take a screenshot in your real device by pressing "Power Button" at top and "The Other Button" at front at the same time. Finally open iPhoto in Mac OSX machine and transfer the pic from iPhone...

Thursday, July 22, 2010

How to Solve Ad Hoc release "value not permitted by a provisioning profile"

Ever since I submitted an application to App Store I've had lots of problems creating Ad Hoc release. Though first fix was simple, it's not a complete solution.

Error messages are:

Thu Jul 22 11:46:34 jouni-iDevice installd[643] : entitlement 'keychain-access-groups' has value not permitted by a provisioning profile

Thu Jul 22 11:46:34 jouni-iDevice installd[643] : entitlement 'application-identifier' has value not permitted by a provisioning profile
...
Thu Jul 22 11:47:06 jouni-iDevice SpringBoard[28] : Application 'Zattr' exited abnormally with signal 11: Segmentation fault

This time the solution was found in TUAW article "devsugar: A better way to share ad-hoc builds".

Summary: instead of normal Build use Build and Archive, find your application, find the last date, press Share Application button and - The Critical Phase - verify your identity is your Ad Hoc Distribution Provisioning Profile. Save locally and install e.g. via iPhone Configuration Utility.

...suspect Ad Hoc release problem is caused by having two different provisioning profile files using same application id. I generate three applications (development, release test, public) from same sources with some compile time flags and different provisioning profiles and app ids. Guess code signing identities got mixed.

Thursday, June 10, 2010

Apple AppStore submit observations

Read docs a dozen times, but somehow missed these:
  • Keywords can be max 100 characters - including spaces and commas
  • Select "None" for first rating to get immediately 4+ rated
  • CFBundleShortVersionString in the Info.plist file must be a period-separated list of at most three positive integers. You cannot use e.g. "1.0.0 (1)" format, except in ad hoc releases
  • Large icon filename must end with .jpeg .jpg .tif .tiff .png. It's not about file format, but filename
  • Upload screenshots in reverse order, the first shall be last

Tuesday, March 30, 2010

SpringBoard failed to launch application with error code: 7

Set up a system where same sources can produce two different applications, one for release and another for testing. The requirement was they have to be able to exist at the same time in device.

Added a second ad hoc distribution provisioning profile with new bundle identifier. Somehow simulator failed to run the application(s) any more.

Close simulator, go to Xcode menu and select "Empty caches..." menu item. Might as well "Clean All Targets" just in case.