[swift-users] [Swift Package Manager] Use of Info-plist; use for apps
Zach Waldowski
zach at waldowski.me
Tue Aug 22 08:29:01 CDT 2017
I haven’t yet had the pleasure of investigating what’s available in
3.2/4.0’s swiftpm, but I did once hack this together in the 3.x
toolchain using a dummy module:
Hierarchy:
Sources/
-- InfoPlist
---- Dummy.c
---- include/
------ InfoPlist.h
InfoPlist.h:
```
__attribute__((used, section("__TEXT,__info_plist")))
static const char __darwin_info_plist[] = "<##escaped XML string##>";
__attribute__((used))
static inline void includeInfoPlist(void) {
(void)(__darwin_info_plist);
}
```
partial main.swift:
```
import InfoPlist
includeInfoPlist()
```
I sure do hope there’s a better way to do this now, but just throwing it
out there for posterity.
Sincerely,
Zachary Waldowski
zach at waldowski.me[mailto:zach at waldowski.me]
On Tue, Aug 22, 2017, at 03:30 AM, Quinn The Eskimo! via swift-users
wrote:
>
> On 22 Aug 2017, at 06:13, Daryle Walker via swift-users
> <swift-users at swift.org> wrote:
>
> > I recall there’s a way to make a command-line tool in macOS have an “Info.plist” file, which is compiled/linked in the executable’s data segment.
>
> Correct. Xcode has explicit support for this, namely the “Create
> Info.plist Section in Binary” build setting
> (`CREATE_INFOPLIST_SECTION_IN_BINARY`). This uses the file from the
> standard “Info.plist File” (`INFOPLIST_FILE`) build setting.
>
> > Is there a way to do this through “swift build”?
>
> The above is implemented in terms of the `-sectcreate __TEXT __info_plist
> /path/to/file` linker option, which you can read about in
> <x-man-page://1/ld>. If you create a dummy Xcode command line tool
> project, you can look at the build transcript to see how it works.
>
> I kinda presume that SPM has a way to pass in custom linker options but I
> don’t have direct experience with that.
>
> Share and Enjoy
> --
> Quinn "The Eskimo!" <http://www.apple.com/developer/>
> Apple Developer Relations, Developer Technical Support, Core OS/Hardware
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
More information about the swift-users
mailing list