2016-06-07 50 views
6

Nelle configurazioni dalla mia build iOS, non è possibile disabilitare il bitcode. Mentre in Xcode è possibile impostare ENABLE_BITCODE = NOCome posso impedire a Xamarin di creare la mia app con codice bit abilitato?

Ho bisogno di questo perché i miei framework collegati non sono compilati con bitcode, e oggigiorno Apple non consente più le applicazioni compilate con codice bit-bit.

+0

Sono un po 'seduto sulla stessa barca, appena invertito. La mia libreria include Bitcode mentre il mio progetto principale no. Ho provato a impostare la proprietà MtouchEnableBitcoe su "true" ma "Bitcode non è attualmente supportato su iOS", come mi ha prontamente indicato il messaggio di errore. Spero davvero che possiamo trovare una soluzione per questo al più presto. –

+0

Il bitcode è supportato in Xamarin. Forse pubblica il tuo errore/problema su stackoverflow e inviami il link;) – Jelle

+0

La mia discussione è proprio qui: http://stackoverflow.com/questions/37689054/sudden-error-when-uploading-to-itunesconnect-itms-90635 -invalid-mach-o-format Quando ho impostato la proprietà MtouchEnableBitcode su true Xamarin Studio mi dice letteralmente "Errore nell'esecuzione dell'attività Mtouch: Bitcode non è attualmente supportato su iOS" Mi manca qualcosa qui? –

risposta

6

Nella vostra .csproj per l'applicazione iOS, ricerca del PropertyGroup per la configurazione di rilascio che è necessario disattivare il codice bit per, vale a dire:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> 

all'interno di quel gruppo, vedere se un MtouchEnableBitcode esiste già e modificarlo, altrimenti aggiungere:

<MtouchEnableBitcode>false</MtouchEnableBitcode> 
+0

Per qualche motivo la mia app non è ancora valida dice Apple: 'ERRORE ITMS-90668: "Eseguibile Bundle non valido. Il file eseguibile SoToGo.Touch.app/Frameworks/FrameWorkName.framework/FrameWorkName contiene bitcode incompleto. completa il codice bit, apri Xcode e scegli Archivia nel menu Prodotto. "' Come posso disabilitare il bitcode per un riferimento nativo (Framework)? – Jelle

+0

@Jelle Se si 'otool' la libreria del proprio framework, qual è l'indirizzo e la dimensione del segmento llvm? qualcosa come: 'otool -arch arm64 FrameWorkName.framework/FrameWorkName | grep __bitcode -A 3' – SushiHangover

+0

Mi manca un argomento per lo otool: uno di -fahlLtdoOrTMRIHCGScisP o --version deve essere specificato – Jelle

1

sono in grado di costruire l'applicazione con codice binario che disabilitata con l'aggiunta di righe seguenti al csproj file del progetto iOS immediatamente prima della chiusura </Project> t ag.

<Target Name="BeforeCodesign"> 
    <Exec Command="$(_SdkDevPath)\Toolchains\XcodeDefault.xctoolchain\usr\bin\bitcode_strip %(_Frameworks.FullPath) -r -o %(_Frameworks.FullPath)" /> 
</Target> 
+0

Sta funzionando per me. Grazie !!! –

1

mio team ed io ho fatto quello che Vittal Pai e SushiHangover suggerito, ma abbiamo dovuto affrontare un altro errore:

Command "\Applications\Xcode.app\Contents\Developer\Toolchains\XcodeDefault.xctoolchain\usr/bin\bitcode_strip PathToOurFrameWorks -r -o PathToOurFrameWorks" ended with code 3

^E 'tradotto da Francese quindi per favore non mi mordono troppo difficile :)

L'unico modo per farlo funzionare era importare il progetto dal nostro GitHub a un Mac con VS 2017 e poi ricostruirlo lì.

L'errore è ancora presente nella versione di Windows ma è andato sulla versione Mac.

+0

Forse aggiornando all'ultimo Xamarin.VS sul tuo computer Windows? – Jelle