Categories
iPhone app Software development

Code signing error in Xcode

Reading Time: 2 minutes

Last Updated on December 9, 2020 by stlplace

(Update 08-Dec-2020) Things I learned today (or tomorrow am 🙂

  1. One team can have at most two distribution certs
  2. In Xcode sign in as agent without the (mail.com or gmail.com after @) because it appears my apple id is just the id without all the @ + dot com stuff. That alone cost me probably one hour. Plus the one hour I tried to export cert in old MacBook, then move it over to the new MacBook. So totally 2 hours wasted… after those two steps, I was able to go back to automatically signing and validate my archive (ipa) for myNestEgg…

Managing a Distribution Certificate

No signing certificate “iOS Distribution” found

Create, export, and delete signing certificates

====

For organizations, if a distribution certificate is missing a private key or not in your keychain, you can email the creator of the signing certificate. Ask the creator to export the signing certificate on their Mac so you can install it on your Mac. (To install a certificate in your keychain, double-click the exported certificate file.)

====

What is app signing?

Creating the iOS Distribution Certificate

iOS – Creating a Distribution Certificate and .p12 File

(Original 06-Feb-2013) Had my share of code signing problem (esp. the enterprise distribution certificate) in my Xcode development. Luckily, stackoverflow rescued me as always. It seems a lot problem is due to the Xcode upgrade, project name change, provision profile/distribute certificate expiring etc. And the solution is usually delete or comment out the offending line. Like below. To go to the project file, I usually do in the command line, “cd projectName.xcodeproj”, then “vi project.pbxproj”.

http://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof

http://stackoverflow.com/questions/5758154/code-sign-error-provisioning-profile-cant-be-found

I encountered another problem related to the provisioning profile expiration, the distribute certificate appears twice in the Keychain, even after I deleted it explicitly. It turns out the old distribute certificate came back after I opened the project in Xcode (presumedly it came back when the old provision profile associated with the project got loaded). So the workaround is to delete the old distribute certificate again after opening the project in Xcode.

http://stackoverflow.com/questions/5932522/codesign-error-certificate-identity-appearing-twice

Btw, saw an interesting idea from Mobile Iron regarding the enterprise distribution certificate. Normally the certificate expires in a year. In last 30 days it will prompt the user something like “the provision profile will expire in a few days…”, not good user experience. There is no way to renew it before it expires either. So the workaround suggested by MI is create 2 certificates, and create the second 6 months before the expiration and have user update the app. This way, essentially the app got extended 6 months. And so on. There is one catch in Xcode 4.3.3 I am using. It only recognizes the provision profile that was created earlier (or expires earlier). The workaround there is delete the earlier provision profile 😀

Categories
advice and tips

Thoughts from the NPR “Struggling smarts” story

Reading Time: < 1 minute

Last Updated on February 1, 2013 by omaha

I heard this story from NPR a while back, I meant to share it with my daughter’s teacher, did not do it as the New Town incident happened on that day. This is again discussed this morning at Hope Montessori morning presentation. I gave it some thought on this topic from time to time. I think it’s not east vs. west thing, also we need to consider the “brain freeze” when we put a person who usually is shy about public speaking to the blackboard, explain something to the class.

The most important lesson is, we (both teachers and parents) should encourage “good efforts”. I recall I had a very difficult class in Rolla, and from what I heard, the professor could give some not so good scores in the end. I tried my best, basically take the notes, spend a lot time working on homework problems, sometimes barely get it done before the class starts (I recall we meets 2 or 3 times a week). I did not do well in some of the early tests (3 tests before the final), in one test I did especially poor as I misread the problem as I was trying to finish all the problems in a short time. I explained it to the professor. He obviously understood it. As the semester concludes to my surprise he gave me “A” on the course. I think he gave it mostly because he thought I tried my best.

 

Categories
advice and tips

Morning meeting at Hope

Reading Time: < 1 minute

Last Updated on February 1, 2013 by omaha

A lot of good points.

We congrats/celebrate with kids (did something, e.g., potty training), we don’t “reward” them (Sarah).

The “grit” (persistence) is very important, recent research found American kids are more tend to give up (Susie). Also, toddlers (community) do not have watch, the teachers give toddlers plenty of time to make mistakes and learn. When she saw the infant feed her/himself, or pour milk, she know they are going to succeed in life. The library incident example (toddler want to touch the phone, the mom said if he does, she won’t bring him to library again, the librarian said she will fine him for $100). The lesson: be honest when we communicate with kids. Sarah: the kids knew the first 9 times (parents said) does not count. A parent learned from Mishra (no need to repeat, just remind we already said it).

Sarah: we make mistakes, just be honest and say sorry to kids (e.g., we shout at kids).

Another parent: the “salad” video (hope kids video, maybe put Serenity’s video on iPad so that we can watch more often).

Sarah also mentioned as the older toddler gets more leadership role and feel more confident in the class, it’s also a good preparation for her/him to go pre-school (that self-confidence will help them do well in the new environment).