GetStream / stream-swift

Swift client for Stream API
https://getstream.io
BSD 3-Clause "New" or "Revised" License
35 stars 26 forks source link

Fix issues when distributing to App Store #3

Closed nimajalali closed 5 years ago

nimajalali commented 5 years ago

When uploading an application that leverages the stream-swift SDK via Carthage we get numerous errors from the App Store.

App Store Connect Operation Error
ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.cocoapods.Moya' under the iOS application 'SomeApp.app'."

App Store Connect Operation Error
ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.antitypical.Result' under the iOS application 'SomeApp.app'."

App Store Connect Operation Error
ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.vluxe.Starscream' under the iOS application 'SomeApp.app'."

App Store Connect Operation Error
ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'org.alamofire.Alamofire' under the iOS application 'SomeApp.app'."

App Store Connect Operation Error
ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'Swime' under the iOS application 'SomeApp.app'."

App Store Connect Operation Error
ERROR ITMS-90056: "This bundle Payload/SomeApp.app/Frameworks/GetStream.framework/Frameworks/Swime.framework is invalid. The Info.plist file is missing the required key: CFBundleVersion."

App Store Connect Operation Error
ERROR ITMS-90056: "This bundle Payload/SomeApp.app/Frameworks/Swime.framework is invalid. The Info.plist file is missing the required key: CFBundleVersion."

App Store Connect Operation Error
ERROR ITMS-90205: "Invalid Bundle. The bundle at 'SomeApp.app/Frameworks/Faye.framework' contains disallowed nested bundles."

App Store Connect Operation Error
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'SomeApp.app/Frameworks/Faye.framework' contains disallowed file 'Frameworks'."

App Store Connect Operation Error
ERROR ITMS-90205: "Invalid Bundle. The bundle at 'SomeApp.app/Frameworks/GetStream.framework' contains disallowed nested bundles."

App Store Connect Operation Error
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'SomeApp.app/Frameworks/GetStream.framework' contains disallowed file 'Frameworks'."

Reading up on these issues I found this https://github.com/Carthage/Carthage/issues/2292#issuecomment-390371178. Which lead me to removing the Carthage copy-frameworks command from the GetStream and Faye targets.

Swime: To fully fix distribution issues we also need this PR to land https://github.com/sendyhalim/Swime/pull/9 and then update stream-swift to use the latest changes. Unfortunately a simple upgrade to the version number will cause build failures since Swime now targets iOS 11.0 and stream-swift targets iOS 9.0, I've asked why this was necessary here.

GetStream version: 1.1.5 Xcode version: 10.1 (10B61) Swift version: 4 Platform(s) running GetStream: iOS macOS version running Xcode: 10.13.6 (17G5019)

@buh

buh commented 5 years ago

@nimajalali thanks for your PR! I'll check. I will think about Swime dependency, probably I can replace it with something else, if the author won't fix issue on own side.

nimajalali commented 5 years ago

Opened a PR on Swime to target iOS 9.0 https://github.com/sendyhalim/Swime/pull/11