diff --git a/client/cmake/ios.cmake b/client/cmake/ios.cmake index 7b6b2cfd..d3be7d47 100644 --- a/client/cmake/ios.cmake +++ b/client/cmake/ios.cmake @@ -62,7 +62,6 @@ set_target_properties(${PROJECT} PROPERTIES MACOSX_BUNDLE_ICON_FILE "AppIcon" MACOSX_BUNDLE_INFO_STRING "AmneziaVPN" MACOSX_BUNDLE_BUNDLE_NAME "AmneziaVPN" - MACOSX_BUNDLE_GUI_IDENTIFIER "${BUILD_IOS_APP_IDENTIFIER}" MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_PROJECT_VERSION_TWEAK}" MACOSX_BUNDLE_LONG_VERSION_STRING "${APPLE_PROJECT_VERSION}-${CMAKE_PROJECT_VERSION_TWEAK}" MACOSX_BUNDLE_SHORT_VERSION_STRING "${APPLE_PROJECT_VERSION}" @@ -76,15 +75,23 @@ set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "NO" XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" - XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON + XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY "NO" + XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY "YES" + XCODE_LINK_BUILD_PHASE_MODE KNOWN_LOCATION - XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/Frameworks" + XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/../Frameworks" XCODE_EMBED_APP_EXTENSIONS networkextension - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Distribution" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY[variant=Debug] "Apple Development" + + #XCODE_ATTRIBUTE_CODE_SIGN_STYLE Automatic XCODE_ATTRIBUTE_CODE_SIGN_STYLE Manual - XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER "match AppStore org.amnezia.AmneziaVPN" - XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER[variant=Debug] "match Development org.amnezia.AmneziaVPN" + + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Distribution: Privacy Technologies OU (X7UJ388FXK)" + #XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY[variant=Debug] "Apple Development" + + + XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER "Mac AppStore AmneziaVPN" + #XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER[variant=Debug] "Mac AppStore AmneziaVPN" + ) set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_SWIFT_VERSION "5.0" @@ -133,6 +140,31 @@ set_property(TARGET ${PROJECT} PROPERTY XCODE_EMBED_FRAMEWORKS "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework" ) + + set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos) target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework") +get_target_property(QtCore_location Qt6::Core LOCATION) +message("QtCore_location") +message(${QtCore_location}) + +get_filename_component(QT_BIN_DIR_DETECTED "${QtCore_location}/../../../../../bin" ABSOLUTE) + +#if(CMAKE_BUILD_TYPE STREQUAL "Release") + add_custom_command(TARGET ${PROJECT} POST_BUILD + COMMAND ${QT_BIN_DIR_DETECTED}/macdeployqt $ -appstore-compliant -qmldir=${CMAKE_CURRENT_SOURCE_DIR} + ) + + SET(SIGN_CMD codesign --deep --force --sign 'Apple Distribution: Privacy Technologies OU \(X7UJ388FXK\)' --timestamp --options runtime $) + message(${SIGN_CMD}) + + + add_custom_command(TARGET ${PROJECT} POST_BUILD + COMMAND ${SIGN_CMD} + ) + + # add_custom_command(TARGET ${PROJECT} POST_BUILD + # COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/ios/scripts/sign_macos_appstore.sh $ + # ) +#endif() diff --git a/client/ios/app/Info.plist.in b/client/ios/app/Info.plist.in index 7587b4ce..590c946b 100644 --- a/client/ios/app/Info.plist.in +++ b/client/ios/app/Info.plist.in @@ -11,7 +11,7 @@ CFBundleExecutable ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIdentifier - ${MACOSX_BUNDLE_GUI_IDENTIFIER} + org.amnezia.AmneziaVPN CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/client/ios/app/main.entitlements b/client/ios/app/main.entitlements index d9f00bb1..052abf4b 100644 --- a/client/ios/app/main.entitlements +++ b/client/ios/app/main.entitlements @@ -2,19 +2,38 @@ + com.apple.application-identifier + X7UJ388FXK.org.amnezia.AmneziaVPN + com.apple.developer.networking.networkextension packet-tunnel-provider - com.apple.security.application-groups - - group.org.amnezia.AmneziaVPN - - com.apple.security.files.user-selected.read-write - + keychain-access-groups - $(AppIdentifierPrefix)group.org.amnezia.AmneziaVPN + $(DEVELOPMENT_TEAM).* + + com.apple.developer.team-identifier + $(DEVELOPMENT_TEAM) + + com.apple.security.app-sandbox + + + com.apple.security.application-groups + + $(DEVELOPMENT_TEAM).$(GROUP_ID_MACOS) + + + com.apple.security.network.client + + + com.apple.security.network.server + + + com.apple.security.files.user-selected.read-write + + diff --git a/client/ios/networkextension/AmneziaVPNNetworkExtension.entitlements b/client/ios/networkextension/AmneziaVPNNetworkExtension.entitlements index 92432b56..fee97bb6 100644 --- a/client/ios/networkextension/AmneziaVPNNetworkExtension.entitlements +++ b/client/ios/networkextension/AmneziaVPNNetworkExtension.entitlements @@ -2,6 +2,12 @@ + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + com.apple.developer.networking.networkextension packet-tunnel-provider diff --git a/client/ios/networkextension/CMakeLists.txt b/client/ios/networkextension/CMakeLists.txt index 76bd33e2..6bd47927 100644 --- a/client/ios/networkextension/CMakeLists.txt +++ b/client/ios/networkextension/CMakeLists.txt @@ -3,16 +3,18 @@ enable_language(Swift) set(CLIENT_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) add_executable(networkextension) + +configure_file( + ${CMAKE_CURRENT_LIST_DIR}/Info.plist.in + ${CMAKE_CURRENT_BINARY_DIR}/Info.plist +) + set_target_properties(networkextension PROPERTIES XCODE_PRODUCT_TYPE com.apple.product-type.app-extension BUNDLE_EXTENSION appex - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in - MACOSX_BUNDLE_INFO_STRING "AmneziaVPNNetworkExtension" - MACOSX_BUNDLE_BUNDLE_NAME "AmneziaVPNNetworkExtension" - MACOSX_BUNDLE_GUI_IDENTIFIER "${BUILD_IOS_APP_IDENTIFIER}.network-extension" - MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_PROJECT_VERSION_TWEAK}" - MACOSX_BUNDLE_LONG_VERSION_STRING "${APPLE_PROJECT_VERSION}-${CMAKE_PROJECT_VERSION_TWEAK}" + #MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist + MACOSX_BUNDLE_SHORT_VERSION_STRING "${APPLE_PROJECT_VERSION}" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${BUILD_IOS_APP_IDENTIFIER}.network-extension" @@ -27,12 +29,18 @@ set_target_properties(networkextension PROPERTIES XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/../../Frameworks" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Distribution" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY[variant=Debug] "Apple Development" - + #XCODE_ATTRIBUTE_CODE_SIGN_STYLE Automatic XCODE_ATTRIBUTE_CODE_SIGN_STYLE Manual - XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER "match AppStore org.amnezia.AmneziaVPN.network-extension" - XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER[variant=Debug] "match Development org.amnezia.AmneziaVPN.network-extension" + + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Distribution: Privacy Technologies OU (X7UJ388FXK)" + #XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY[variant=Debug] "Apple Development" + + + XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER "Mac AppStore AmneziaVPN.network-extension" + #XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER[variant=Debug] "Mac AppStore AmneziaVPN.network-extension" + + XCODE_ATTRIBUTE_INFOPLIST_FILE "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" + XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/../../../../Frameworks @loader_path/../../../../Frameworks" ) set_target_properties(networkextension PROPERTIES @@ -52,6 +60,36 @@ find_library(FW_MOBILE_CORE MobileCoreServices) find_library(FW_UI_KIT UIKit) find_library(FW_LIBRESOLV libresolv.9.tbd) +# set(OpenVPNAdapter_DIR "${CLIENT_ROOT_DIR}/3rd/") + +# find_library(OPENVPN_ADAPTER_LIBRARY OpenVPNAdapter PATHS ${OpenVPNAdapter_DIR}) +# target_link_libraries(networkextension PRIVATE ${OPENVPN_ADAPTER_LIBRARY}) + +# add_custom_command(TARGET networkextension PRE_BUILD +# COMMAND ${CMAKE_COMMAND} -E make_directory $/../Frameworks +# ) + + +# add_custom_command(TARGET networkextension POST_BUILD +# COMMAND ${CMAKE_COMMAND} -E echo "Copying ${OPENVPN_ADAPTER_LIBRARY} to $/../Frameworks/" +# COMMAND ${CMAKE_COMMAND} -E copy_if_different +# ${OPENVPN_ADAPTER_LIBRARY} +# $/../Frameworks/ +# COMMAND ${CMAKE_COMMAND} -E echo "Copy complete" +# ) + + + + +# set_property(TARGET networkextension PROPERTY XCODE_EMBED_FRAMEWORKS +# "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework" +# ) + +# set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos) +# target_link_libraries("networkextension" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework") + + + #target_link_libraries(networkextension PRIVATE ${FW_ASSETS_LIBRARY}) #target_link_libraries(networkextension PRIVATE ${FW_MOBILE_CORE}) #target_link_libraries(networkextension PRIVATE ${FW_UI_KIT}) diff --git a/client/ios/networkextension/Info.plist.in b/client/ios/networkextension/Info.plist.in index 54d9d8d9..4be5d9ac 100644 --- a/client/ios/networkextension/Info.plist.in +++ b/client/ios/networkextension/Info.plist.in @@ -8,17 +8,17 @@ ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIdentifier - ${MACOSX_BUNDLE_GUI_IDENTIFIER} + ${BUILD_IOS_APP_IDENTIFIER}.network-extension CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${MACOSX_BUNDLE_BUNDLE_NAME} + AmneziaVPNNetworkExtension CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + ${APPLE_PROJECT_VERSION} CFBundleVersion - ${MACOSX_BUNDLE_BUNDLE_VERSION} + ${CMAKE_PROJECT_VERSION_TWEAK} ITSAppUsesNonExemptEncryption @@ -27,7 +27,7 @@ ${CMAKE_OSX_DEPLOYMENT_TARGET} CFBundleDisplayName - ${MACOSX_BUNDLE_INFO_STRING} + AmneziaVPNNetworkExtension NSExtension @@ -38,9 +38,9 @@ com.wireguard.ios.app_group_id - group.${BUILD_IOS_APP_IDENTIFIER} + group.org.amnezia.AmneziaVPN com.wireguard.macos.app_group_id - ${BUILD_VPN_DEVELOPMENT_TEAM}.group.${BUILD_OSX_APP_IDENTIFIER} + ${BUILD_VPN_DEVELOPMENT_TEAM}.group.org.amnezia.AmneziaVPN - \ No newline at end of file + diff --git a/client/macos/networkextension/AmneziaVPNNetworkExtension.entitlements b/client/macos/networkextension/AmneziaVPNNetworkExtension.entitlements index b4f08784..6f2345de 100644 --- a/client/macos/networkextension/AmneziaVPNNetworkExtension.entitlements +++ b/client/macos/networkextension/AmneziaVPNNetworkExtension.entitlements @@ -4,7 +4,12 @@ com.apple.application-identifier $(DEVELOPMENT_TEAM).$(NETEXT_ID_MACOS) - + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + com.apple.developer.networking.networkextension packet-tunnel-provider