NetDesk 1.5.0 — source release

This commit is contained in:
NetDesk committed 2026-10-18 02:02:46 +00:00
commit 40318aafdd
227 files changed
+80798

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
#
# NetDesk by Akronlogic — CocoaPods spec that links the compiled Rust core
# (NetDeskCore.xcframework) into the Flutter iOS Runner.
#
# This file is a TEMPLATE kept under version control in packaging/ios/.
# packaging/build-ios.sh copies it to ui/ios/netdesk_core.podspec next to the
# freshly-assembled NetDeskCore.xcframework, then adds
# pod 'netdesk_core', :path => '.'
# to ui/ios/Podfile so `flutter build ipa` links it automatically.
#
# The xcframework is a *static* library (libnetdesk_core.a, one slice per
# platform: ios-arm64 device + ios-arm64-simulator). CocoaPods auto-selects the
# right slice per build, so there are no hardcoded slice paths here.
#
Pod::Spec.new do |s|
s.name = 'netdesk_core'
s.version = '0.1.0'
s.summary = 'NetDesk native Rust core (static) for iOS — Akronlogic.'
s.description = <<-DESC
The compiled NetDesk engine: signaling, end-to-end crypto, the media
transport and VideoToolbox H.264 hardware decode (core/src/decode_vt.rs).
Vendored as a static xcframework; the Flutter UI binds to it over dart:ffi /
flutter_rust_bridge in Phase 3.
DESC
s.homepage = 'https://akronlogic.com'
s.license = { :type => 'Proprietary', :text => 'Copyright Akronlogic. All rights reserved.' }
s.author = { 'Akronlogic' => 'https://akronlogic.com' }
s.platform = :ios, '13.0'
s.source = { :path => '.' }
# The Rust core, assembled by packaging/build-ios.sh (xcodebuild -create-xcframework).
s.vendored_frameworks = 'NetDeskCore.xcframework'
# System frameworks the VideoToolbox decode path links with
# #[link(kind = "framework")] in core/src/decode_vt.rs. A static Rust lib
# records these in its metadata but does NOT pull them in at the final app
# link, so they must be named here.
# CoreMedia — CMVideoFormatDescription / CMSampleBuffer / CMBlockBuffer
# VideoToolbox — VTDecompressionSession*
# CoreVideo — CVPixelBuffer*
# CoreFoundation — CFDictionary/CFString/CFRelease (core-foundation-sys)
s.frameworks = 'VideoToolbox', 'CoreMedia', 'CoreVideo', 'CoreFoundation'
# Vendored static xcframework, no public headers yet (the C ABI header is
# generated with cbindgen when Phase 3's core/src/ffi.rs lands — see
# docs/build-ios.md). CocoaPods links the archive normally; once the Phase-3
# Dart bindings reference the symbols they are retained automatically.
#
# Before those bindings exist, nothing references the archive, so the linker
# may drop it. That is harmless for the build. If you want to *prove* the
# archive links end-to-end before Phase 3, force it in by uncommenting:
#
# s.user_target_xcconfig = {
# 'OTHER_LDFLAGS' => '-force_load "${PODS_XCFRAMEWORKS_BUILD_DIR}/netdesk_core/libnetdesk_core.a"'
# }
#
# (Do not combine -force_load with Phase-3 symbol references, or you may hit
# duplicate-symbol errors — pick one.)
s.pod_target_xcconfig = {
'DEFINES_MODULE' => 'YES',
# Keep the Rust/FFI symbols discoverable for dart:ffi lookups.
'STRIP_STYLE' => 'non-global',
}
end