ios - Biblioteca estática e Swift




iphone xcode (3)

Então, eu estou trabalhando em um projeto iOS no Swift e queria criar uma biblioteca estática com algumas coisas úteis.

Meu problema é que, quando tento criar minha lib no Xcode (versão 6.3), tenho uma "Falha na compilação" seguida por: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character 'X' in: -Xlinker

Eu nunca vi isso e não é minha primeira lib estática. Então, eu estava pensando que poderia estar ligado ao fato de estar usando exclusivamente a classe Swift.

O que é que vocês acham ? Agradeço antecipadamente.


Consumidor Swift -> biblioteca estática Swift

Xcode versão 10.2.1

Criar biblioteca estática Swift

Crie um projeto de biblioteca ou crie um destino de biblioteca

File -> New -> Project... -> Cocoa Touch Static Library
//or
Project editor -> Add a Target -> Cocoa Touch Static Library 

Adicionar arquivos .swift

Select `.swift` file -> Select File Inspectors Tab -> Target Membership -> Select the target
//or
Project editor -> select a target -> Build Phases -> Compile Sources -> add files

Biblioteca de compilação - ⌘ Command + B ou Product -> Build

Nota 1: Certifique-se de criar a biblioteca para a mesma arquitetura de processo que o código do cliente.
Nota 2: exponha sua API que deve estar visível para o consumidor usando modificadores de acesso public ou open [Sobre]

Encontrar saída gerada [Build location]

Products group -> lib<product_name>.a -> Show in Finder

O diretório inclui

  • lib<product_name>.a - uma biblioteca estática construída
  • Pasta <product_name>.swiftmodule que inclui:
    • .swiftdoc - docs
    • .swiftmodule - interface / definições públicas

Consumidor Swift com a biblioteca estática Swift

Drag and drop o binário no projeto Xcode [About]

Link Binary [símbolos indefinidos] [Link vs Incorporar]

Project editor -> select a target -> General -> Linked Frameworks and Libraries -> add -> Add Others... -> point to `lib<target_name>.a` file
//or
Project editor -> select a target -> Build Phases -> Link Binary With Libraries -> add -> Add Others... -> point to `lib<target_name>.a` file

Adicionar Library Search paths [Biblioteca não encontrada para] [Caminho recursivo]

Project editor -> select a target -> Build Settings -> Search Paths -> Library Search paths -> add path to the parent of `lib<target_name>.a` file

Adicionar Import Paths [Nenhum módulo] [Caminho recursivo]

Project editor -> select a target -> Build Settings -> Swift Compiler - Search Paths -> Import Paths -> add path to the parent of `.swiftmodule` folder

Importar módulo para o código do cliente Swift [module_name]

import module_name

[Mais exemplos]


A partir do Xcode 9 beta 4, o Xcode suporta nativamente bibliotecas estáticas com fontes Swift.






ios8.3