Сборка git2-rs не удалась на iOS [закрыто]IOS

Программируем под IOS
Ответить
Anonymous
 Сборка git2-rs не удалась на iOS [закрыто]

Сообщение Anonymous »

Я пытаюсь создать мобильный клиент git с помощью Rust. До сих пор. Android и macOS собираются успешно. А вот iOS с треском провалилась:

Код: Выделить всё

    Undefined symbols for architecture arm64:
"_crc32", referenced from:
_crc_object in libapp.a[445](43a19b30e9e69d8f-indexer.o)
_crc_object in libapp.a[445](43a19b30e9e69d8f-indexer.o)
_hash_and_save in libapp.a[445](43a19b30e9e69d8f-indexer.o)
_inject_object in libapp.a[445](43a19b30e9e69d8f-indexer.o)
_inject_object in libapp.a[445](43a19b30e9e69d8f-indexer.o)
_inject_object in libapp.a[445](43a19b30e9e69d8f-indexer.o)
"_deflate", referenced from:
_write_deflate in libapp.a[505](f6e81ea219c0b9f3-filebuf.o)
_git_zstream_get_output_chunk in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_comp in libapp.a[603](f89bd02e425f6856-comp.o)
"_deflateEnd", referenced from:
_git_filebuf_cleanup in libapp.a[505](f6e81ea219c0b9f3-filebuf.o)
_git_zstream_free in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_dtor in libapp.a[603](f89bd02e425f6856-comp.o)
"_deflateInit_", referenced from:
_git_filebuf_open_withsize in libapp.a[505](f6e81ea219c0b9f3-filebuf.o)
_git_zstream_init in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_init in libapp.a[603](f89bd02e425f6856-comp.o)
"_deflateReset", referenced from:
_git_zstream_reset in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
"_iconv", referenced from:
_git_fs_path_iconv in libapp.a[506](f6e81ea219c0b9f3-fs_path.o)
"_iconv_close", referenced from:
_git_fs_path_iconv_clear in libapp.a[506](f6e81ea219c0b9f3-fs_path.o)
"_iconv_open", referenced from:
_git_fs_path_iconv_init_precompose in libapp.a[506](f6e81ea219c0b9f3-fs_path.o)
"_inflate", referenced from:
_git_zstream_get_output_chunk in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_decomp in libapp.a[603](f89bd02e425f6856-comp.o)
"_inflateEnd", referenced from:
_git_zstream_free in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_dtor in libapp.a[603](f89bd02e425f6856-comp.o)
"_inflateInit_", referenced from:
_git_zstream_init in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
_comp_method_zlib_init in libapp.a[603](f89bd02e425f6856-comp.o)
"_inflateReset", referenced from:
_git_zstream_reset in libapp.a[526](f6e81ea219c0b9f3-zstream.o)
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Это новый чип Apple для macOS. Раньше не удавалось собрать Android, но теперь это исправлено с настройкой этих переменных среды.

Код: Выделить всё

# Tauri Android
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
export ANDROID_HOME="$HOME/Library/Android/sdk"
export NDK_HOME="$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)"
export ANDROID_NDK="$NDK_HOME"
export ANDROID_NDK_ROOT="$NDK_HOME"
export CMAKE="$ANDROID_HOME/cmake/4.1.1/bin/cmake"
export PATH=$PATH:$HOME/Library/Android/sdk/platform-tools
export PATH="$HOME/.bin:$PATH"
export PATH="$HOME/Library/Android/sdk/platform-tools":$PATH
export ANDROID_NDK_HOME="$NDK_HOME"
export TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64
export AR=$TOOLCHAIN/bin/llvm-ar

# Use unify tooling
#export CC=/usr/bin/gcc
#export AS=$CC
export CXX=$TOOLCHAIN/bin/clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip

# This fixes building ruby gem with native extension
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)

export PATH=$PATH:$ANDROID_HOME/cmake/4.1.1/bin
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$TOOLCHAIN/bin

#export OPENSSL_DIR=/opt/homebrew/Cellar/openssl@3/3.5.2
Я ожидаю, что это работает и на iOS. Это приложение Tauri с ReactJS в качестве внешнего интерфейса.
Минимальная воспроизводимость
Создайте новое приложение Tauri с помощью инструмента CLI create-tauri-app. Минимальный файл Cargo.toml:

Код: Выделить всё

[dependencies]
git2 = { version = "0.20", features = ["vendored-libgit2"] }
tokio = { version = "1", features = ["rt"] }
ssh-key = { version = "0.6", features = ["alloc", "ed25519", "rsa", "p256", "rand_core"] }
log = "0.4"
openssl = { version = "0.10", features = ["vendored"] }
Файл build.rs:

Код: Выделить всё

fn main() {
println!("cargo:rustc-link-lib=z");
println!("cargo:rustc-link-lib=iconv");
tauri_build::build()
}
Сборка для iOS:

Код: Выделить всё

$ cargo tauri ios init
$ cargo tauri ios dev
Есть подсказки?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ils-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»