tsNet and CFBundleIdentifier Collision Error - Mac App Store
Posted: 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.
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.