Post

Replies

Boosts

Views

Activity

Create C++ static library with Swift interoperability for iOS. How?
Hello all! My application written with C++ for iOS. Want to make some functionality in static library for the purpose of reuse it in different C++ projects. Want to make universal library for using StoreKit2. Global idea is to wrap StoreKit2 Swift out with CPP interoperability. Now trying to make clear for my self how to create C++ static library with Swift interoperability for iOS in XCode. There are only Objective-C option when you creating static library in XCode for iOS. Is it correct: Create Static Library with Objective-C in XCode Remove all default Objective-C files Add C++ files Add C++/Swift interoperability in build settings Add swift classes Beside all of it some questions: When C++ static library contain Swift code with interoperability will it require some special settings for project (Swift standard lib or some other settings)? Or it could be used like any other C++ libraries? What is the optimal build settings in this case to reduce dependencies when using it different projects? Is there any examples of the same approach for iOS development?
0
0
246
Jan ’25
CMake duplicate symbol '_main' when building Swift/CPP interop. Why?
Hello all! Writing own example of using Swift/CPP interoperability. Got stacked with this error when building it: [1/2 3.8/sec] Building CXX object CMakeFiles/UsingSwiftCPPInterop_v1.dir/main.cpp.o [2/2 3.0/sec] Linking Swift executable UsingSwiftCPPInterop_v1 FAILED: UsingSwiftCPPInterop_v1 CMakeFiles/UsingSwiftCPPInterop_v1.dir/Swift/atestmodule.swift.o duplicate symbol '_main' in: ../CMakeFiles/UsingSwiftCPPInterop_v1.dir/main.cpp.o ../CMakeFiles/UsingSwiftCPPInterop_v1.dir/Swift/atestmodule.swift.o ld: 1 duplicate symbols clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. What is missing by me? The code of CMake project published here My build envieionment: CMake 3.29.3 MacOS 14.7.1 In this project Swift files linked directly to project/target. Should it be separated to library target o there must be some parameters that is telling clang to compile it without main?
1
0
351
Nov ’24
StoreKit2 with C++ application. How?
Hello all! My application written with C++ and using StoreKit1. For now my application using bridge C++/Objective-CPP/Objective-C/Swift. Since StoreKit1 declared "deprecated" got a question of how to implement correctly StoreKit2 in C++ application, mostly everything about Renewable Subscriptions. StoreKit2 have no direct API in Objective-C, it's available only in Swift. Which is the way the best and correct way: -- for on-device writing C library and in it implement Swift? In this case how to add correctly StoreKit2 into library itself? -- for on-device somehow write kind of wrapper for Swift StoreKit 2 within translation of all of objects in Objective-C and implement it with C++/Objective-CPP bridge? In this case how to add correctly StoreKit2 in C++ project written with CMake? Here https://github.com/compnerd/swift-cmake-examples/tree/main the one of the examples of interoperability C++/Swift with CMake. But how to use exactly with StoreKit2? -- only using server side solution?
5
0
519
Sep ’24
Using Rust in iOS/MacOS applications with XCode. How?
Hello all! Got written examples of using Rust in iOS/MacOS applications with Objective-C/Swift: Using Rust in Objective-C project Using Rust in Swift project All of them working perfectly, but there are necessity to use 2 different IDE for it XCode and IntellyJ IDE. It's making difficulties in maintaining projects and for building it. The question is about using Rust in XCode directly. Is there any way to use Rust in XCode without any other IDE?
0
3
1.4k
Jan ’24
Requested but did not find extension point with identifier
Hello! Developing application with NetworkExtension. Got this errors: 2023-07-04 09:11:11.963 embeddedBinaryValidationUtility[1384:20739] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore 2023-07-04 09:11:11.964 embeddedBinaryValidationUtility[1384:20739] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore warning: The CFBundleVersion of an app extension (null) must match that of its containing parent app ('0.1'). What does it mean? What is missed by me? My Info.plist or Extension.entitlements contain: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.networking.networkextension</key> <array> <string>content-filter-provider</string> <string>packet-tunnel-provider</string> </array> <key>com.apple.security.app-sandbox</key> <true/> </dict> </plist> and <key>NSExtension</key> <dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.networkextension.packet-tunnel</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).AppProxyProvider</string> </dict> When trying to run application have this error: What is missing?
1
0
1.6k
Jul ’23
NEPacketTunnelProvider: determine destination DNS and IP. How?
Hello! Right now developing NE extension. Need to determine DNS (means need to know where this package need to be delivered by Domain Name) and IP from the packet itself. How to do it with NEPacketTunnelProvider? There need to solve issue: if there destination Domain Name equal domain1.com then forward it to forwarder1.com if there destination Domain Name equal domain2.com then forward it to forwarder2.com And etc ... Is it in this class https://developer.apple.com/documentation/networkextension/nepacket ? Or should it be done with NEFilterProvider?
10
0
1.3k
Jun ’23
Network Extension for iOS and MacOS. Is there any difference?
Hello! Need to develop Network Etension Packet Tunnel Provider for MacOS. Previously been developing NE for iOS. There are some limits and mobile application special things. Got some questions because of it: What kind of limits for NE in MacOS? Is it the same like for iOS? (Memory, traffic, etc). How it interacting with main application? Is there something very specific for MacOS implementaion of NE? Is there examples or manuals of NE especially designated for MacOS?
5
0
1k
May ’23