Binary framework distribution?


(晓敏 褚) #1

The current swift package manager has several major weak points:
Incomplete Xcode compatibility. Xcode seems not supporting swift package.
No pre-building information. For example, I employ swift package manager to add a framework to my project, then no information could be reached before I build my project. This is a particularly bad experience in Xcode, as CocoaPods and Carthage DOES allow Xcode to access the framework itself and provide auto-completion and checking.
No patent framework support. Open source is great, but there ARE developers who want to share functionalities only, not the code. Apple releases iOS or macOS frameworks, but most of them are not open sourced.
A waste of time for huge frameworks. The current solution builds the framework in every project. If the framework is something like scipy, a significant longer build time is expected as compared to pre-built ones.

The existing UNIX dynamic libraries are also not good enough. They cause, somehow, pollution to the system. The /usr/include /usr/lib system spread files in different locations. And it is not easy to make an integrated framework in an application.

And if we are able to directly create and distribute binary frameworks, all of the problems are cleared. All of informations about the framework is contained in itself, we could just download the frameworks for the particular platform, and use them.


(Charlie Monroe) #2

Binary framework distribution is discouraged from due to the ABI not being finalized - i.e. the framework wouldn't be compatible with Swift 4, and perhaps even with Swift 3.1.

Xcode issues should be filed via Apple's radar system - http://bugreport.apple.com

···

On Aug 10, 2016, at 4:24 AM, 晓敏 褚 via swift-evolution <swift-evolution@swift.org> wrote:

The current swift package manager has several major weak points:
Incomplete Xcode compatibility. Xcode seems not supporting swift package.
No pre-building information. For example, I employ swift package manager to add a framework to my project, then no information could be reached before I build my project. This is a particularly bad experience in Xcode, as CocoaPods and Carthage DOES allow Xcode to access the framework itself and provide auto-completion and checking.
No patent framework support. Open source is great, but there ARE developers who want to share functionalities only, not the code. Apple releases iOS or macOS frameworks, but most of them are not open sourced.
A waste of time for huge frameworks. The current solution builds the framework in every project. If the framework is something like scipy, a significant longer build time is expected as compared to pre-built ones.

The existing UNIX dynamic libraries are also not good enough. They cause, somehow, pollution to the system. The /usr/include /usr/lib system spread files in different locations. And it is not easy to make an integrated framework in an application.

And if we are able to directly create and distribute binary frameworks, all of the problems are cleared. All of informations about the framework is contained in itself, we could just download the frameworks for the particular platform, and use them.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution