Почему Xcode 7 показывает *.tbd вместо *.dylib нужна?
Xcode 7 В Target > BuildPhases > Link Binary With Libraries > tap + button
при выборе фреймворков для добавления, вы не можете найти *.dylib нужна, вы увидите *.вместо этого ТБД.
в чем причина этого?
**для людей, которым нужен dylib, следуйте из этого post
- выбрать "Добавить"
- один раз в окне выбора файла сделайте "CMD"+Shift+G (перейдите в папку) & type /usr/lib/
- от /user / lib вы можете найти *.dylib files
2 ответа:
я прочесал Google, но единственное, что я могу найти до сих пор, это следующее цитата из форумов разработчиков Apple:
для тех, кто очень любопытный .файлы будут определены новые "текстовые заглушки библиотеки", которые обеспечивают гораздо более компактную версию заглушки библиотеки для использования в SDK, и помогают значительно уменьшить его размер файла.
надеюсь, больше документации будет приходить скоро.
обновление
в качестве примера, вот все содержимое libsqlite3.tbd. Это просто текстовый файл. Обратите внимание, что имя установки -libsqlite3.dylib нужна.
--- archs: [ armv7, armv7s, arm64 ] platform: ios install-name: /usr/lib/libsqlite3.dylib current-version: 216.4 compatibility-version: 9.0 exports: - archs: [ armv7, armv7s, arm64 ] symbols: [ __sqlite3_lockstate, __sqlite3_purgeEligiblePagerCacheMemory, __sqlite3_system_busy_handler, __sqlite_auto_profile, __sqlite_auto_profile_syslog, __sqlite_auto_trace, __sqlite_auto_trace_syslog, _sqlite3OsShmHasMultipleLinks, _sqlite3OsShmRenamedWhileOpen, _sqlite3OsShmWasTruncated, _sqlite3OsShmWasUnlinkedWhileOpen, _sqlite3VersionNumber, _sqlite3VersionString, _sqlite3_aggregate_context, _sqlite3_aggregate_count, _sqlite3_auto_extension, _sqlite3_backup_finish, _sqlite3_backup_init, _sqlite3_backup_pagecount, _sqlite3_backup_remaining, _sqlite3_backup_step, _sqlite3_bind_blob, _sqlite3_bind_blob64, _sqlite3_bind_double, _sqlite3_bind_int, _sqlite3_bind_int64, _sqlite3_bind_null, _sqlite3_bind_parameter_count, _sqlite3_bind_parameter_index, _sqlite3_bind_parameter_name, _sqlite3_bind_text, _sqlite3_bind_text16, _sqlite3_bind_text64, _sqlite3_bind_value, _sqlite3_bind_zeroblob, _sqlite3_blob_bytes, _sqlite3_blob_close, _sqlite3_blob_open, _sqlite3_blob_read, _sqlite3_blob_reopen, _sqlite3_blob_write, _sqlite3_busy_handler, _sqlite3_busy_timeout, _sqlite3_cancel_auto_extension, _sqlite3_changes, _sqlite3_clear_bindings, _sqlite3_close, _sqlite3_close_v2, _sqlite3_collation_needed, _sqlite3_collation_needed16, _sqlite3_column_blob, _sqlite3_column_bytes, _sqlite3_column_bytes16, _sqlite3_column_count, _sqlite3_column_decltype, _sqlite3_column_decltype16, _sqlite3_column_double, _sqlite3_column_int, _sqlite3_column_int64, _sqlite3_column_name, _sqlite3_column_name16, _sqlite3_column_text, _sqlite3_column_text16, _sqlite3_column_type, _sqlite3_column_value, _sqlite3_commit_hook, _sqlite3_compileoption_get, _sqlite3_compileoption_used, _sqlite3_complete, _sqlite3_complete16, _sqlite3_config, _sqlite3_context_db_handle, _sqlite3_create_collation, _sqlite3_create_collation16, _sqlite3_create_collation_v2, _sqlite3_create_function, _sqlite3_create_function16, _sqlite3_create_function_v2, _sqlite3_create_module, _sqlite3_create_module_v2, _sqlite3_data_count, _sqlite3_data_directory, _sqlite3_db_config, _sqlite3_db_filename, _sqlite3_db_handle, _sqlite3_db_mutex, _sqlite3_db_readonly, _sqlite3_db_release_memory, _sqlite3_db_status, _sqlite3_declare_vtab, _sqlite3_enable_shared_cache, _sqlite3_errcode, _sqlite3_errmsg, _sqlite3_errmsg16, _sqlite3_errstr, _sqlite3_exec, _sqlite3_expired, _sqlite3_extended_errcode, _sqlite3_extended_result_codes, _sqlite3_file_control, _sqlite3_finalize, _sqlite3_free, _sqlite3_free_table, _sqlite3_get_autocommit, _sqlite3_get_auxdata, _sqlite3_get_table, _sqlite3_global_recover, _sqlite3_initialize, _sqlite3_intarray_bind, _sqlite3_intarray_create, _sqlite3_interrupt, _sqlite3_last_insert_rowid, _sqlite3_libversion, _sqlite3_libversion_number, _sqlite3_limit, _sqlite3_log, _sqlite3_malloc, _sqlite3_malloc64, _sqlite3_memory_alarm, _sqlite3_memory_highwater, _sqlite3_memory_used, _sqlite3_mprintf, _sqlite3_msize, _sqlite3_mutex_alloc, _sqlite3_mutex_enter, _sqlite3_mutex_free, _sqlite3_mutex_leave, _sqlite3_mutex_try, _sqlite3_next_stmt, _sqlite3_open, _sqlite3_open16, _sqlite3_open_v2, _sqlite3_os_end, _sqlite3_os_init, _sqlite3_overload_function, _sqlite3_prepare, _sqlite3_prepare16, _sqlite3_prepare16_v2, _sqlite3_prepare_v2, _sqlite3_profile, _sqlite3_progress_handler, _sqlite3_randomness, _sqlite3_realloc, _sqlite3_realloc64, _sqlite3_release_memory, _sqlite3_reset, _sqlite3_reset_auto_extension, _sqlite3_result_blob, _sqlite3_result_blob64, _sqlite3_result_double, _sqlite3_result_error, _sqlite3_result_error16, _sqlite3_result_error_code, _sqlite3_result_error_nomem, _sqlite3_result_error_toobig, _sqlite3_result_int, _sqlite3_result_int64, _sqlite3_result_null, _sqlite3_result_text, _sqlite3_result_text16, _sqlite3_result_text16be, _sqlite3_result_text16le, _sqlite3_result_text64, _sqlite3_result_value, _sqlite3_result_zeroblob, _sqlite3_rollback_hook, _sqlite3_rtree_geometry_callback, _sqlite3_rtree_query_callback, _sqlite3_set_authorizer, _sqlite3_set_auxdata, _sqlite3_shutdown, _sqlite3_sleep, _sqlite3_snprintf, _sqlite3_soft_heap_limit, _sqlite3_soft_heap_limit64, _sqlite3_sourceid, _sqlite3_sql, _sqlite3_status, _sqlite3_status64, _sqlite3_step, _sqlite3_stmt_busy, _sqlite3_stmt_readonly, _sqlite3_stmt_status, _sqlite3_strglob, _sqlite3_stricmp, _sqlite3_strnicmp, _sqlite3_table_column_metadata, _sqlite3_temp_directory, _sqlite3_test_control, _sqlite3_thread_cleanup, _sqlite3_threadsafe, _sqlite3_total_changes, _sqlite3_trace, _sqlite3_transfer_bindings, _sqlite3_update_hook, _sqlite3_uri_boolean, _sqlite3_uri_int64, _sqlite3_uri_parameter, _sqlite3_user_data, _sqlite3_value_blob, _sqlite3_value_bytes, _sqlite3_value_bytes16, _sqlite3_value_double, _sqlite3_value_int, _sqlite3_value_int64, _sqlite3_value_numeric_type, _sqlite3_value_text, _sqlite3_value_text16, _sqlite3_value_text16be, _sqlite3_value_text16le, _sqlite3_value_type, _sqlite3_version, _sqlite3_vfs_find, _sqlite3_vfs_register, _sqlite3_vfs_unregister, _sqlite3_vmprintf, _sqlite3_vsnprintf, _sqlite3_vtab_config, _sqlite3_vtab_on_conflict, _sqlite3_wal_autocheckpoint, _sqlite3_wal_checkpoint, _sqlite3_wal_checkpoint_v2, _sqlite3_wal_hook ] ...
Я нашел это и другое .ТБД файлы
Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
вы также можете увидеть .tbd-файл, если вы перейдете на вкладку Общие вашего проекта Xcode, а затем добавите библиотеку в связанные фреймворки и библиотеки. Этот.tbd файл будет скопирован к вашему проекту.
Итак, оказывается .файл dylib-это фактическая библиотека двоичного кода, которую использует ваш проект и находится в каталоге /usr/lib/ на устройстве пользователя. Этот.файл tbd, с другой стороны, это просто текстовый файл, который включен в ваш проект и служит ссылкой на требуемый .dylib binary. Поскольку этот текстовый файл намного меньше, чем двоичная библиотека, это делает размер загрузки SDK меньше.
На данный момент я только предполагаю из информации, поэтому, пожалуйста, поправьте меня, если я ошибаюсь.