Hello all!
My application written with C++/CMake and when building have some troubles with adding test environment for StoreKit every time - it need to be done manually.
Is there any way to add StoreKit environment settings with CMake and when executed command like this $ cmake -g Xcode ... StoreKit test environment were automatically added?
Post
Replies
Boosts
Views
Activity
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?
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?
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?
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?
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?
Hello all!
Is there any way to switch off font ligatures functionlity in MacOS? There are in many editors "=>" exchanging onto "arrow", "==" exchanging on one long sign of "euality" and etc. This feature is making terrible developer exprience.
Hello all!
Got confused with some behavior of VPN applications on MacOS. Some of application instatiate NE System extension for each of protocol.
Why? Is it best practice? Or it's requirements?
My appology for this questions if it's looking strange or weird. The System Extension on MacOS is very new field of development for me.
Hello!
There are fully operated iOS Network Extension written with NEPacketTunnelProvider. It's working on iOS device. From previous discussion on this forum got some info abpit similarity for iOS and MacOS. If it's working for iOS, is there something to change in code or just supy with MacOS provisiosnoing profile instead of iOS?
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?
Hello!
There are few projects that built with differend versions of XCode. Is there any way to use few versions of XCode and somehow to switch active?
Hello all!
Trying to find any info about how to create iOS/MacOS application written with CMake/C++ within Network Extension. There are few questions:
How to setup CMake project for correct application building with XCode?
Is there any examples of it?
Some of details about XCode part covered in this thread But there are nothing about settings for CMake.
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?
Hello all!
Does anyone know where to find the entire list of all commands and parameters of command line tools? Need to automate the application building process and need to know what could be done and how.
Hello all!
My project ic C++ project with CMake and need to create in CMakeLists.txt functionality of automatic code sign for specific team and product. Is there any way to do it?
Is there any examples or manuals?
My CMake is 3.26.3