Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 770 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Messias,

 

Meu problema foi mais no lado do Lazarus e componentes que qualquer outra coisa meu background é muito mais voltado para o unix que para o windows, quando vi que o lazarus estava procurando bibliotecas 32 bits nem mesmo pensei duas vezes, baixei os seguintes fontes: libxml, libxslt, openssl, xmlsec, e zlib e compilei para ambas arquiteturas (32 e 64) essa parte sempre foi fácil com a criação dos FAT binaries bastando informar na configuração as flags para isso (CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64"). Um dos problemas que o pessoal pode estar tendo para compilar as bibliotecas manualmente é que é necessário instalar o comanda-line tools do Xcode e o compilador gcc não é mais utilizado sendo abandonado por um novo flavour. Não dá para utilizar o openssl padrão nem a zlib com a xmlsec, tem que baixar e compilar os fontes. 

 

As bibliotecas compiladas eu mandei gravar em outro diretório, pois como utilizo muito mais o Xcode não quis criar nenhum problema com as bibliotecas padrão que utilizo dentro do Xcode, outro motivo é que normalmente quando o Xcode é atualizado ou o próprio sistema é atualizado as bibliotecas podem ser substituídas pelas utilizadas pela Apple o que quebraria o carregamento no Lazarus posteriormente. Assim mudei os prefixos de opção de diretório de todas as bibliotecas compiladas para gravar os arquivos em um diretório somente para o lazarus. A xmlsec é um pouco mais chata de compilar pois ainda depende da libtool em 32 bits coisa que a apple não fornece mais, entretanto podes instalar a libtool universal (fat binary com arquiteturas 32 e 64). Com tudo compilado e instalado voltei para o Lazarus e essa parte sim eu apanhei feio, não conseguia de modo algum fazer com que ele visse as bibliotecas novas, ele insistia em abrir as antigas em /usr/lib tentei até link simbólico com nomes de bibliotecas diferentes mas não funcionou, fiquei quase dois dias nisso quando vi que ele nem mesmo tentava acessar o arquivo informado pela constante LIBXML2_SO = 'libxml2.dylib' não importando o que estivesse nessa constante (paths, links, etc). Tirei então esta diretiva de todas as funções externas ficando somente algo do tipo:

 

function xmlDelEncodingAlias (const alias: PAnsiChar) : Longint; cdecl; external;

 

Isso se não for um problema meu no lazarus por algum erro meu e sim um erro no lazarus dentro do Mac então pode ser resolvido colocando diretivas cddcl; external {$IFNDEF DARWIN}LIBXML2_SO{$ENDIF} novamente nestas funções externas. E para contornar o problema de especificar a biblioteca correta coloquei no inicio dos arquivos a diretiva de linkagem para o freepascal:

 

{$linklib libxml2.dylib} {/caminho_para_sua_biblioteca/libxml2.dylib}

 

Obviamente a biblioteca deve ser a correta para as tres units (libxml2, libxmlsec e libxslt)

 

Uma vez feito isso o modulo instalou sem demais problemas, quanto a CTe eu tirei a declaração do ActiveX e também instalou sem problemas, o lazarus ainda reclamou depois quando portei o GbBoleto para o Mac, eu já havia instalado o ACBrBoleto porem não sei como ele está em relação a homologação nem leitura de arquivos de retorno, como esse projeto é só para algumas máquinas na empresa que estarão rodando em Mac o resto continua em linux e windows eu achei melhor utilizar a GbBoleto pois ja havia feito várias modificações nela para que o boleto fosse impresso somente em duas vias e a primeira via sendo um texto customizado da empresa controlado por um arquivo de inclusão que é modificado conforme o cliente (informa se há parcelas de outras compras ainda a vencer, etc) e novos produtos.

 

Com relação a assinatura de notas a bem da verdade nem mesmo vou utilizar esta parte, pelo menos não para este projeto, nem mesmo utilizo o ACBr para isso nas outras máquinas, a assinatura é feita por funções php no servidor, os clientes (alguns linux e windows) só emitem o xml para o servidor que coloca na fila e faz o restante do processo e esta parte já está sendo alterada para nem mesmo gerarem o xml sem assinatura mas sim informarem o servidor diretamente para ele gerar a nota do inicio ao fim. Todo esse projeto sendo portado para lazarus dentro do Mac vai ser somente para 4 máquinas da gerência, entre elas duas do departamento financeiro, toda a ACBr no final vai ser utilizada somente para a leitura de NFe de fornecedores, CTe de transporte para mercadorias de entrada e uma das máquinas vai estar fazendo também a parte de leitura de retorno bancário e geração de remessa. A maioria das vendas acontece direto de dispositivos móveis (ipads e iphones) conectando no banco de dados do servidor diretamente.

 

Eu não sei se eu entendi mal o que pretendes fazer ou o moderador Julio que leu teu post e respondeu não entendeu muito bem o que tu querias fazer, pois ele respondeu achando que queres compilar para IOs (sistema operacional dos iPhones e iPads) mas no teu post original constava somente Mac OS X pelo que eu li. Agora se o teu objetivo é mesmo compilar para IOs acho que está indo para um objetivo muito mais complicado, e na minha visão acho que nem mesmo vale a pena pois no IOs pode ter o banco de dados rodando localmente (SQLite) e ai estamos falando somente de um dispositivo para controlar toda a empresa, ou rodar o banco de dados em um servidor e utilizar vários dispositivos móveis e computadores somente para alimentar o servidor com os dados. Neste segundo cenário é muito mais fácil e seguro na minha opinião deixar o servidor criar os arquivos xml assinados (e mandar estes arquivos por email quando necessário com notas, danfes, dactes, CTe's etc.). 

 

Mudando o assunto, tens utilizado o Lazarus no mac normalmente? Toda vez que eu abro o lazarus as janelas do Object Inspector e do Source Editor ficam mais largas, não sei se isso acontece contigo. Ele normalmente abre o source editor com o ultimo arquivo utilizado, mas a largura da janela vai crescendo e fica maior que a tela inclusive, quando chega ao ponto de ficar maior que a tela eu reduzo a largura da mesma para a largura que fica boa no meu monitor, mas da próxima vez que eu carrego o Lazarus novamente essa largura já é maior que a anterior.

 

Uma última pergunta fora do tópico do mac (não quero criar um tópico somente para uma pergunta que provavelmente é um erro meu) quando eu importei o componente GbBoleto para o lazarus do mac, eu utilizei o Fortes Report (mesmo que o ACBr boleto utiliza) e também a synapse para o envio de emails com o boleto para clientes que estiverem em atraso. A synapse é um conjunto de bibliotecas mas não é instalado na IDE, para utiliza-la só é necessário informar o path dos arquivos e colocar as unidades na diretiva units utilizadas. Entretanto isso gerava uma dupla referencia pois a ACBr criava o arquivo .ppu dentro do diretório da ACBr e o GBBoleto criava o mesmo arquivo, aparecia a opção de ignorar a redundância mas a ide não compilava de jeito nenhum, resolvi então remover a parte de enviar email direto do componente GbBoleto e deixar isto a cargo do programa principal sendo necessário então dentro do programa principal exportar o boleto e criar o email. Isso é um problema do lazarus em não deixar dois componentes diferentes utilizarem uma mesma unidade de outro componente que não é de design time ou é um erro meu ao especificar o path já existente para a IDE? No delphi eu sei que o path pode ser global de todo a ide ou local somente de um componente ou projeto, isso existe no lazarus do mac?

 

Fico por aqui, qualquer hora eu testo a assinatura de nfe e lhe informo se funciona sem mistérios no mac ou tem mesmo problemas. Se tiver alguma duvida de como fiz a compilação de cada biblioteca (comandos completos) me avise.

 

Atenciosamente,

Krahe

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 7 anos depois...
  • Moderadores
2 horas atrás, Fabio Torturella disse:

eae ta funcionando pra mac ate hoje? compartilha ai 
sera que daria pra usar aqueles tipo WINE bottler? 

 

se usar o wine vai ser omesmo que o windows.

tem que usar nativo

coloca e instala e reporta aqui os erros.

mas faz anos eihn 2014

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 770 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...