tsNet and CFBundleIdentifier Collision Error - Mac App Store

Deploying to Mac OS? Ask Mac OS specific questions here.

Moderators: Klaus, FourthWorld, heatherlaine, kevinmiller, robinmiller

Post Reply
stephenmcnutt
Livecode Opensource Backer
Livecode Opensource Backer
Posts: 94
Joined: Fri Nov 10, 2006 8:58 pm
Contact:

tsNet and CFBundleIdentifier Collision Error - Mac App Store

Post by stephenmcnutt » Mon Sep 04, 2017 10:09 pm

When attempting to upload my signed package to iTunes Connect (Mac App Store) with Apple's Application Loader, I got this error:

ERROR ITMS-90511: "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'au.com.techstrategies.external.tsNet' of 'Classroom Quizshow.app/Contents/MacOS/Externals/tsNet.bundle' is already in use by another application."

I actually figured out how to solve the problem, and I'll put the steps I used below for others. My question here is really why is my app including this tsNet external anyway? My app doesn't use the Internet, which is, I believe, what tsNet is for. Is there a way to turn off inclusion of this external? Can I just delete it after building the standalone?

Now, how to solve the error. The problem isn't unique to LiveCode, though LiveCode has resolved to fix it--though apparently hasn't yet. See bug 16343 (http://quality.livecode.com/show_bug.cgi?id=16343). The problem is that, for whatever reason, Apple requires each CFBundleIdentifier to be globally unique, including those in things like externals. So since the company that made tsNet has already used au.com.techstrategies.external.tsNet, you have to slightly change it to be unique. This is how LiveCode is going to resolve the issue, by the way, but you can do it manually until they do:

1. After building your standalone, right-click it and choose "Show Package Contents".
2. Inside the package, navigate to the location shown in the error message (Contents/MacOS/Externals/tsNet.bundle) in my case.
3. Right-click THIS (tsNet.bundle in my case) and choose "Show Package Contents".
4. Find Contents/info.plist.
5. Open it. In my case it opened in Xcode.
6. Change the CFBundleIdentifier. I added the initials of my app to the front, making it cq.au.com.techstrategies.external.tsNet.

That fixed the error I was getting in Application Loader.

jacque
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 3913
Joined: Sat Apr 08, 2006 8:31 pm
Location: Minneapolis MN
Contact:

Re: tsNet and CFBundleIdentifier Collision Error - Mac App S

Post by jacque » Tue Sep 05, 2017 6:06 pm

My question here is really why is my app including this tsNet external anyway?
Because somewhere in the app you've indicated a network connection is used, or you selected the internet library as an inclusion. If you have "search for inclusions" selected in standalone settings then something in a script looks like a url or other network communication so the standalone builder is adding TSNet. If you select inclusions manually then you can turn it off the internet library.

TSNet is an extension of libURL, so if you included the internet library in the app you'll get TSNet as well. They're linked.

Be sure to test your app if you remove the internet library in case there's a connection you forgot about.
Jacqueline Landman Gay | jacque at hyperactivesw dot com
HyperActive Software | http://www.hyperactivesw.com

Post Reply

Return to “Mac OS”