exyte / fan-menu

Menu with a circular layout based on Macaw
MIT License
728 stars 58 forks source link

iTunes Connect upload error : CFBundleIdentifier Collision #21

Closed remithaunay closed 6 years ago

remithaunay commented 6 years ago

Uploading my app on iTunes Connect is giving an error with the FanMenu framework used inside, (integrated through Carthage)

ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.exyte.Macaw' under the iOS application 'MyApp.app'." ERROR ITMS-90205: "Invalid Bundle. The bundle at 'MyApp.app/Frameworks/FanMenu.framework' contains disallowed nested bundles." ERROR ITMS-90206: "Invalid Bundle. The bundle at 'MyApp.app/Frameworks/FanMenu.framework' contains disallowed file 'Frameworks'."

Is it something that you're aware of ?

f3dm76 commented 6 years ago

Hello, first of all, thanks for using fan-menu.

Could you please provide your Carthage config? Maybe it contains both Macaw and Fan-menu, and this is why it is added twice. In any case, it would help to take a look at it.

Also, it seems like you are not the only one to encounter a similar issue, did you happen to come across this answer? https://stackoverflow.com/questions/29608264/error-itms-90451-cfbundleidentifier-collision-error?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

remithaunay commented 6 years ago

Hello ! thanks for your quick answer.

I figured out the issue and it is indeed because our Carthage configuration contains both frameworks. Actually, we also use Macaw in our app apart from FanMenu, So I had to remove manually Macaw from FanMenu with a Build Phase script:

cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/FanMenu.framework"
rm -fr Frameworks/

The best solution would be to not embed Macaw in FanMenu. The internet gave me a lot of answers like the one you linked but it's all about extensions. I really think our issue is an edge case and the copy-framework inside a framework should be avoided, as it does not appear to be a good practice

Would you be open to consider removing that ?

f3dm76 commented 6 years ago

People should be able to just specify fan-menu and use it. They should not be forced to know about its dependencies and manually add them all to their Carthage config. If we remove Macaw dependency from fan-menu, people will be forced to do exactly that. Could you please provide more information as to why you consider this to be a "good practice"?

remithaunay commented 6 years ago

Please look at answers from Matt, a Carthage developer, here and where his links send you to.

amarunko commented 6 years ago

Hi, @remithaunay , sorry for response delay. I removed Carthage dependencies from the project. I tested with linked binaries, for me, everything works fine. Please, use last changes from the master branch, thanks.