Commit f67fec79b98c3783c8c514373e20b98a857af44a

Authored by weixin_45529955
2 parents 3c100276 27ec752f

合并5.6.4隐藏订单n天之内不受影响

Showing 69 changed files with 4638 additions and 29 deletions

Too many changes to show.

To preserve performance only 69 of 69+ files are displayed.

import 'dart:convert';
import 'dart:ui';
... ... @@ -66,7 +65,7 @@ class _StoreCustomerHomeRightPageState
if (widget.customerProvider!.storeSunmodel == null) {
_getSellerGuestManage();
} else {
widget.customerProvider!.storeSunmodel!.sellerUser!.forEach((element) {
widget.customerProvider!.storeSunmodel!.sellerUser?.forEach((element) {
MessageMenuModel messageMenuModel = MessageMenuModel();
messageMenuModel.uid = element!.uid;
messageMenuModel.title = element.nickName ?? element.account;
... ... @@ -77,12 +76,16 @@ class _StoreCustomerHomeRightPageState
});
if (menuTitle.length > 0) {
menuTitle[0].select = true;
}
// _couponNetworkData();
_getGuestManageData(isShowLoading: true);
// _couponNetworkData();
_getGuestManageData(isShowLoading: true);
// _getMarketingByUid();
_getSellerCountsList();
// _getMarketingByUid();
_getSellerCountsList();
} else {
//页面数据为空
widget.customerProvider!.pageStateMyHome = PageState.Empty;
setState(() {});
}
}
});
bus.on("refresh_my_customer_home", (arg) {
... ... @@ -113,12 +116,16 @@ class _StoreCustomerHomeRightPageState
});
if (menuTitle.length > 0) {
menuTitle[0].select = true;
}
// _couponNetworkData();
_getGuestManageData(isShowLoading: true);
// _couponNetworkData();
_getGuestManageData(isShowLoading: true);
// _getMarketingByUid();
_getSellerCountsList();
// _getMarketingByUid();
_getSellerCountsList();
} else {
//没数据
widget.customerProvider!.pageStateMyHome = PageState.Empty;
setState(() {});
}
}
_getSellerCountsList({isShowLoading = false, VoidCallback? callback}) async {
... ... @@ -602,7 +609,7 @@ class _StoreCustomerHomeRightPageState
// _getMarketingByUid();
_getSellerCountsList();
},
emptyMsg: "暂时没有我的客情哦",
emptyMsg: "暂时没有分经理的客情哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍候...",
));
... ... @@ -996,7 +1003,8 @@ class _StoreCustomerHomeRightPageState
padding: EdgeInsets.symmetric(horizontal: w(10)),
itemBuilder: (context, index) {
SellerCountsListSunModel countsListSunModel = widget
.customerProvider!.managerStatisticsList![index];
.customerProvider!
.managerStatisticsList![index];
return InkWell(
onTap: () {
String? uid = '';
... ...
... ... @@ -146,15 +146,40 @@ class NoteBookModel extends ChangeNotifier {
List<String> config = str.split('-');
if (now.weekday == 1 ||
now.weekday == 2 ||
now.weekday == 3 ||
now.weekday == 4) {
//周一到周四
//n存在,并且传入的日期在今天之前的n天之外
limitNum = int.parse(config[0]);
if (config.length == 3) {
DateTime date = DateTime(now.year, now.month, now.day);
DateTime dateToday = DateTime(DateTime.now().year,
DateTime.now().month, DateTime.now().day);
Duration difference = dateToday.difference(date);
print('天数差异: ${difference.inDays}'); // 输出天数差异
if (difference.inDays <= int.parse(config[2])) {
limitNum = -1;
} else {
if (now.weekday == 1 ||
now.weekday == 2 ||
now.weekday == 3 ||
now.weekday == 4) {
//周一到周四
limitNum = int.parse(config[0]);
} else {
limitNum = int.parse(config[1]);
}
}
} else {
limitNum = int.parse(config[1]);
if (now.weekday == 1 ||
now.weekday == 2 ||
now.weekday == 3 ||
now.weekday == 4) {
//周一到周四
limitNum = int.parse(config[0]);
} else {
limitNum = int.parse(config[1]);
}
}
}
}
... ...
... ... @@ -230,15 +230,40 @@ class TableManagerModelOrReserve with ChangeNotifier {
List<String> config = str.split('-');
if (datetime.weekday == 1 ||
datetime.weekday == 2 ||
datetime.weekday == 3 ||
datetime.weekday == 4) {
//周一到周四
limitNum = int.parse(config[0]);
//n存在,并且传入的日期在今天之前的n天之外
if (config.length == 3) {
DateTime date = DateTime(datetime.year, datetime.month, datetime.day);
DateTime dateToday = DateTime(DateTime.now().year,
DateTime.now().month, DateTime.now().day);
Duration difference = dateToday.difference(date);
print('天数差异: ${difference.inDays}'); // 输出天数差异
if (difference.inDays <= int.parse(config[2])) {
limitNum = -1;
} else {
if (datetime.weekday == 1 ||
datetime.weekday == 2 ||
datetime.weekday == 3 ||
datetime.weekday == 4) {
//周一到周四
limitNum = int.parse(config[0]);
} else {
limitNum = int.parse(config[1]);
}
}
} else {
limitNum = int.parse(config[1]);
if (datetime.weekday == 1 ||
datetime.weekday == 2 ||
datetime.weekday == 3 ||
datetime.weekday == 4) {
//周一到周四
limitNum = int.parse(config[0]);
} else {
limitNum = int.parse(config[1]);
}
}
}
}
... ...
... ... @@ -1815,6 +1815,45 @@ static void launchAppGallery() async{
}
//获取唯一标识
// static Future<String> getUUID() async {
// DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
// if (Platform.isAndroid) {
// AndroidDeviceInfo androidDeviceInfo = await deviceInfoPlugin.androidInfo;
// return androidDeviceInfo.androidId;
// } else if (Platform.isIOS) {
// IosDeviceInfo iosDeviceInfo = await deviceInfoPlugin.iosInfo;
// return iosDeviceInfo.identifierForVendor;
// } else if (Platform.isOhos) {
// String udid;
// try {
// udid = await FlutterUdid.udid;
// } on PlatformException {
// udid = 'Failed to get UDID.';
// }
// return udid;
// }
// return '';
// }
//获取唯一标识
// //获取唯一标识
// static Future<String?> getUUID() async {
// DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
// if (Platform.isAndroid) {
// AndroidDeviceInfo androidDeviceInfo = await deviceInfoPlugin.androidInfo;
// return androidDeviceInfo.serialNumber;
// } else if (Platform.isIOS) {
// IosDeviceInfo iosDeviceInfo = await deviceInfoPlugin.iosInfo;
// return iosDeviceInfo.identifierForVendor;
// } else {
// OhosDeviceInfo ohosDeviceInfo = await deviceInfoPlugin.ohosInfo;
// return ohosDeviceInfo.udid;
// }
// }
//获取唯一标识
static Future<String> getUUID() async {
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
if (Platform.isAndroid) {
... ...
Subproject commit a5349371525462b1d1b6cfa4cf4d2a59503f1435
... ...
package io.flutter.plugins;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.Log;
import io.flutter.embedding.engine.FlutterEngine;
/**
* Generated file. Do not edit.
* This file is generated by the Flutter tool based on the
* plugins that support the Android platform.
*/
@Keep
public final class GeneratedPluginRegistrant {
private static final String TAG = "GeneratedPluginRegistrant";
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
try {
flutterEngine.getPlugins().add(new com.tencent.tpns.plugin.XgFlutterPlugin());
} catch (Exception e) {
Log.e(TAG, "Error registering plugin tpns_flutter_plugin, com.tencent.tpns.plugin.XgFlutterPlugin", e);
}
}
}
... ...
sdk.dir=/Users/wangdongni/Library/Android/sdk
flutter.sdk=/Users/wangdongni/fvm/versions/custom_3.27.4-ohos-dev
\ No newline at end of file
... ...
{"inputs":["/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/.dart_tool/package_config_subset"],"outputs":[]}
\ No newline at end of file
... ...
{"appPreferencesBuildSettings":{},"buildConfigurations":[{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf","ENABLE_STRICT_OBJC_MSGSEND":"YES","ENABLE_TESTABILITY":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_DYNAMIC_NO_PIC":"NO","GCC_NO_COMMON_BLOCKS":"YES","GCC_OPTIMIZATION_LEVEL":"0","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_DEBUG=1 DEBUG=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MTL_ENABLE_DEBUG_INFO":"INCLUDE_SOURCE","MTL_FAST_MATH":"YES","ONLY_ACTIVE_ARCH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"DEBUG","SWIFT_OPTIMIZATION_LEVEL":"-Onone","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e98814b7e2c3bac55ee99d78eaa8d1ec61e","name":"Debug"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf-with-dsym","ENABLE_NS_ASSERTIONS":"NO","ENABLE_STRICT_OBJC_MSGSEND":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_NO_COMMON_BLOCKS":"YES","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_PROFILE=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e98c22f26ca3341c3062f2313dc737070d4","name":"Profile"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf-with-dsym","ENABLE_NS_ASSERTIONS":"NO","ENABLE_STRICT_OBJC_MSGSEND":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_NO_COMMON_BLOCKS":"YES","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_RELEASE=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e9828903703a9fe9e3707306e58aab67b51","name":"Release"}],"classPrefix":"","defaultConfigurationName":"Release","developmentRegion":"en","groupTree":{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98d0b25d39b515a574839e998df229c3cb","path":"../Podfile","sourceTree":"SOURCE_ROOT","type":"file"},{"children":[{"children":[{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9896fda080e2571fb7ba7d2ce0ee337bed","path":"Flutter.podspec","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9861ceea3701c0d56bef436121bd5f6ce6","name":"Pod","path":"","sourceTree":"<group>","type":"group"},{"children":[{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98bdb745932e5ae4288de5f0eb08d0c755","path":"Flutter.debug.xcconfig","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982e24b78fbfdb11315753e70a9108d9b0","path":"Flutter.release.xcconfig","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9872176d5253051de5133da2c3fed997a9","name":"Support Files","path":"../Pods/Target Support Files/Flutter","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980a0a107201d1103f0928ce3dfb8660df","name":"Flutter","path":"../Flutter","sourceTree":"<group>","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d5db08823dccdd42fe057528c8a0524d","path":"../../../../../../../ios/Classes/XgFlutterPlugin.h","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98972a7dda1132963d4a2e61d609906e01","path":"../../../../../../../ios/Classes/XgFlutterPlugin.m","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98821a2abdf3de06db28fb4c4fa4fdaf99","name":"Classes","path":"Classes","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98649e42747a7d4a22b8ddefec2978b4cf","name":"ios","path":"ios","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9825f6f4cd47f567ec5529b6f98aab91ba","name":"tpns_flutter_plugin","path":"tpns_flutter_plugin","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aad0025eac6a1b68029bb80df5f66199","name":"plugins","path":"plugins","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9808948b86a55e2cce165f54ad0e7ceab3","name":".symlinks","path":".symlinks","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e234408a67f1ea78d5d5131f06c5cd5e","name":"ios","path":"ios","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bd8cab63292b0c6b6a6670cbecd8400f","name":"example","path":"example","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988994ebefb3bf8a9a9337eb9f069bd3e2","name":"..","path":"..","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ee838493a526108f7aca6f3e62ea1980","name":"..","path":"../../../../../../ios","sourceTree":"<group>","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98b5b3e73d20278576387fa427ed41d1fe","path":"../../../../../../LICENSE","sourceTree":"<group>","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98d37df5d3abe2fad1af00a1b9e1efa3ea","path":"../../../../../../ios/tpns_flutter_plugin.podspec","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988a8658ad0add029b464af8e90ffaafe8","name":"Pod","path":"","sourceTree":"<group>","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d969c79225726d27299cef5a34517f00","path":"tpns_flutter_plugin.modulemap","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989b5c4f6574c134cd009d4f78e13f8b98","path":"tpns_flutter_plugin-dummy.m","sourceTree":"<group>","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9867a2479ebfee4ba0db7d85d99d46afab","path":"tpns_flutter_plugin-Info.plist","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9899510d7d0c2f5423a778867cc0a4c8e6","path":"tpns_flutter_plugin-prefix.pch","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e964a67230a4b92da8ae0f53dacf1636","path":"tpns_flutter_plugin-umbrella.h","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987aaa6ab15200b939d6db9ecd7af0d323","path":"tpns_flutter_plugin.debug.xcconfig","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980a87e301e073b025a58f351ba3726fe9","path":"tpns_flutter_plugin.release.xcconfig","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989872bf21e89e5c10fb3937ca34948041","name":"Support Files","path":"../../../../Pods/Target Support Files/tpns_flutter_plugin","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98696a37ffd22858921afae8a958bc70c2","name":"tpns_flutter_plugin","path":"../.symlinks/plugins/tpns_flutter_plugin/ios","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cad05c186a11b21d1ffbae73a15952d0","name":"Development Pods","path":"","sourceTree":"<group>","type":"group"},{"children":[{"children":[{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9867aa7825f197b5c58a57320b4ccdc64e","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework","sourceTree":"DEVELOPER_DIR","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98942867ef9a9b82a20a4a7fc87d922201","name":"iOS","path":"","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9862d9c32904d63fdaba0f2aec66ff1562","name":"Frameworks","path":"","sourceTree":"<group>","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981fa426bd56cb09e1fe36bd427c0d2e96","path":"XGVIPPush/XGLocalNotification.h","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c4545e72ccfd4e89713319d391380205","path":"XGVIPPush/XGPush.h","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9861632e3c38432c3934bc02b675e63317","path":"XGVIPPush/XGPushPrivate.h","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9891e4d87d96de0d00611e8f31d42b223f","path":"XGVIPPush/XGVoIPService.h","sourceTree":"<group>","type":"file"},{"children":[{"fileType":"archive.ar","guid":"bfdfe7dc352907fc980b868725387e98bcd73a2d46408b235a3c96cbde8274e1","path":"XGVIPPush/libXG-SDK-Cloud.a","sourceTree":"<group>","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98fca830a1cf5be9a18414ceef8f5b82c2","path":"XGVIPPush/InAppMessage/XGInAppMessage.framework","sourceTree":"<group>","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e986bbe1922eb2a275dd8b1d3cb2cbc4b92","path":"XGVIPPush/XGMTACloud.framework","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981e28dc94f430aaa52d8d3abc46383b32","name":"Frameworks","path":"","sourceTree":"<group>","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e980d66de8d8b42641c4be80d11e5c8eea9","path":"XGVIPPush/PrivacyInfo.xcprivacy","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983dedd524fc67f02afd18f70ca025f5d7","name":"Resources","path":"","sourceTree":"<group>","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b4bee0ee05c57118d35ff349c4ab7dec","path":"ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9802a1e168515fa7a2abc2fb674a073d91","path":"TPNS-iOS.debug.xcconfig","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f22c036dab579e74ec1f3926f5f1ad03","path":"TPNS-iOS.release.xcconfig","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ccb9bf53f214b36b0264d46ec10d7876","name":"Support Files","path":"../Target Support Files/TPNS-iOS","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981c4d70330c0d1ae0c0791982b17f53ae","name":"TPNS-iOS","path":"TPNS-iOS","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f9af9aff49a2447a4bb50eb68e8aaaa2","name":"Pods","path":"","sourceTree":"<group>","type":"group"},{"guid":"bfdfe7dc352907fc980b868725387e987e4b02bc702869663ebd67d7bb17eb02","name":"Products","path":"","sourceTree":"<group>","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98910ff8878e77d76715cb080b4f911b32","path":"Pods-Runner.modulemap","sourceTree":"<group>","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9883038990d4569310f86a3d179f3dc4be","path":"Pods-Runner-acknowledgements.markdown","sourceTree":"<group>","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c00c41278f658e6ceb16df5521b68d8f","path":"Pods-Runner-acknowledgements.plist","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9864c46b4db6103b2ad8c9ee4bf4f6e7fd","path":"Pods-Runner-dummy.m","sourceTree":"<group>","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986e090dff771d1e24fa2d27e047d8e9ac","path":"Pods-Runner-Info.plist","sourceTree":"<group>","type":"file"},{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e9848ffd6ac5261907fb3297c3be0aea3fa","path":"Pods-Runner-resources.sh","sourceTree":"<group>","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98016c1c2cad6b51b01e04354e34529260","path":"Pods-Runner-umbrella.h","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e985b481060fd2f1513a1cec6f0a5803a8e","path":"Pods-Runner.debug.xcconfig","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9856bac3515a22bb0747fd79cf7dc38df0","path":"Pods-Runner.profile.xcconfig","sourceTree":"<group>","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f6590950f3857aaca97d3b1223595179","path":"Pods-Runner.release.xcconfig","sourceTree":"<group>","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9817fcba5a9cf7c16fee837584731cb581","name":"Pods-Runner","path":"Target Support Files/Pods-Runner","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d38343279834dca6061bda437330c834","name":"Targets Support Files","path":"","sourceTree":"<group>","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98677e601b37074db53aff90e47c8f96d1","name":"Pods","path":"","sourceTree":"<group>","type":"group"},"guid":"bfdfe7dc352907fc980b868725387e98","path":"/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/ios/Pods/Pods.xcodeproj","projectDirectory":"/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/ios/Pods","targets":["TARGET@v11_hash=744c7869b0b733a414919ee016ca4010","TARGET@v11_hash=cb6b9132287f25b2d4a1340a73127cdd","TARGET@v11_hash=0c9a99eb41c95cdaf229f42892d78b8b","TARGET@v11_hash=1eafe1ba098662e2e251d03b153fdb09","TARGET@v11_hash=89ebb027a6faaae45492ff06ab3cdf41"]}
\ No newline at end of file
... ...
{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9802a1e168515fa7a2abc2fb674a073d91","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e985d3b1942613d423d7dfff7a7b2985637","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f22c036dab579e74ec1f3926f5f1ad03","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e98449968c303b13dc48de197feacf10ab9","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f22c036dab579e74ec1f3926f5f1ad03","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e987afd2f48638198eaa2fffca86252de32","name":"Release"}],"buildPhases":[],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e982460493a1a8d4411519af4460e81dd84","name":"TPNS-iOS-TPNS-iOS-Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98c42e8ff0e3bda603eb698dfa85341258","name":"TPNS-iOS","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"}
\ No newline at end of file
... ...
{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9802a1e168515fa7a2abc2fb674a073d91","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"TPNS_iOS","INFOPLIST_FILE":"Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"TPNS-iOS-Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981f0150c1212cdffc5e15213066a2c564","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f22c036dab579e74ec1f3926f5f1ad03","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"TPNS_iOS","INFOPLIST_FILE":"Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"TPNS-iOS-Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98830a135fc1a5ac923cd480a6bf99c402","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f22c036dab579e74ec1f3926f5f1ad03","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"TPNS_iOS","INFOPLIST_FILE":"Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"TPNS-iOS-Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9840823166c5caff952ffdd616f62c9494","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98fbe63ad67819cb86b693a1ff92b17721","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9870abe11690d1d474d3e82408a7f8ecbe","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e980d66de8d8b42641c4be80d11e5c8eea9","guid":"bfdfe7dc352907fc980b868725387e9849ce88c25d49a4aa6ba8057d761fb3ea"}],"guid":"bfdfe7dc352907fc980b868725387e982b478e95afd5c49065aa8c0ecf813d6f","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e982460493a1a8d4411519af4460e81dd84","name":"TPNS-iOS-TPNS-iOS-Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98278609cc9be2e424351d2e0854f9e200","name":"TPNS-iOS-Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"}
\ No newline at end of file
... ...
{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98bdb745932e5ae4288de5f0eb08d0c755","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e982cf0da236cf10d087750aa1434da9227","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982e24b78fbfdb11315753e70a9108d9b0","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e98cc28f154213fd8181aa70d4c188a8335","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982e24b78fbfdb11315753e70a9108d9b0","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e981f19fefc6e52ad9e4e005a2248234387","name":"Release"}],"buildPhases":[],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"}
\ No newline at end of file
... ...
{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987aaa6ab15200b939d6db9ecd7af0d323","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"tpns_flutter_plugin","PRODUCT_NAME":"tpns_flutter_plugin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ebe0cbf2688bfcc5e319f08458cdd4e8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980a87e301e073b025a58f351ba3726fe9","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"tpns_flutter_plugin","PRODUCT_NAME":"tpns_flutter_plugin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98599193f496e415c89ee8ff8ebf708148","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980a87e301e073b025a58f351ba3726fe9","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"tpns_flutter_plugin","PRODUCT_NAME":"tpns_flutter_plugin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d3a04af7bc4b1a07985b942e4cbcdc9b","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e964a67230a4b92da8ae0f53dacf1636","guid":"bfdfe7dc352907fc980b868725387e98bb7c39f4914c88d1f573ae817d05b918","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d5db08823dccdd42fe057528c8a0524d","guid":"bfdfe7dc352907fc980b868725387e98864587ec5fabd270ac5355144ed7b02b","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98a96d7d7c07db8f24c979256e8f36ed59","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989b5c4f6574c134cd009d4f78e13f8b98","guid":"bfdfe7dc352907fc980b868725387e98c79800e99f233cf71e29002a586f8e23"},{"fileReference":"bfdfe7dc352907fc980b868725387e98972a7dda1132963d4a2e61d609906e01","guid":"bfdfe7dc352907fc980b868725387e986cad3f0ce87143700f5eb6325fa98536"}],"guid":"bfdfe7dc352907fc980b868725387e98aa3bf9247e7aff10c04f6e50695de4a5","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9867aa7825f197b5c58a57320b4ccdc64e","guid":"bfdfe7dc352907fc980b868725387e987128eda312a5c268e7a2beef251bb227"}],"guid":"bfdfe7dc352907fc980b868725387e982ad398d956d69c65c3e9baadbd392308","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e980cf92fb8be40aab442168baab164189b","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98c42e8ff0e3bda603eb698dfa85341258","name":"TPNS-iOS"}],"guid":"bfdfe7dc352907fc980b868725387e98b8cb5c431befa1ffc809f43934c87544","name":"tpns_flutter_plugin","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e982b185b493242329466b047b885b68060","name":"tpns_flutter_plugin.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"}
\ No newline at end of file
... ...
{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985b481060fd2f1513a1cec6f0a5803a8e","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e986cfdc1191a5c614e1bdc42539a91e39c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9856bac3515a22bb0747fd79cf7dc38df0","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9885a87ad4da50f1de5d577785ac0e3ebc","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f6590950f3857aaca97d3b1223595179","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9854e119313ef1e4405f400a518a6538d4","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98016c1c2cad6b51b01e04354e34529260","guid":"bfdfe7dc352907fc980b868725387e982d7dbbcd958c8fbf1056bf4bba3fe191","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9834cb8f33d5400410a3595b3dd2026337","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9864c46b4db6103b2ad8c9ee4bf4f6e7fd","guid":"bfdfe7dc352907fc980b868725387e9832c6bc24b565edfd0dc0ca8ac1225042"}],"guid":"bfdfe7dc352907fc980b868725387e98d7272ea146ac3705a162856acbae40da","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9867aa7825f197b5c58a57320b4ccdc64e","guid":"bfdfe7dc352907fc980b868725387e9817bc3a152443f07733c5d16d7b55eaab"}],"guid":"bfdfe7dc352907fc980b868725387e983f5da8ef80eb0055da7ee69ca1951d23","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e988c8373082e1182faa133de921adbd3f5","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98c42e8ff0e3bda603eb698dfa85341258","name":"TPNS-iOS"},{"guid":"bfdfe7dc352907fc980b868725387e98b8cb5c431befa1ffc809f43934c87544","name":"tpns_flutter_plugin"}],"guid":"bfdfe7dc352907fc980b868725387e98312b4bc59bbbe2c06c205bf4da6737f5","name":"Pods-Runner","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98699846e06e93b50cafdb00290784c775","name":"Pods_Runner.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"}
\ No newline at end of file
... ...
{"guid":"dc4b70c03e8043e50e38f2068887b1d4","name":"Pods","path":"/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/ios/Pods/Pods.xcodeproj/project.xcworkspace","projects":["PROJECT@v11_mod=bee1ca1b631e6a1f8c457308069016ec_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1"]}
\ No newline at end of file
... ...
{"files":{"/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/ios/Runner.xcodeproj/project.pbxproj":"ec84ee201d05127f9f40973e16d41abf","/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example/ios/Podfile":"1ca61287e6ec0d52e7f46def3db50794","/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/packages/flutter_tools/bin/podhelper.rb":"1c24564c3525b43ca5c5cc2d098ef803"}}
\ No newline at end of file
... ...
/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/
\ No newline at end of file
... ...
#
# This podspec is NOT to be published. It is only used as a local source!
# This is a generated file; do not edit or check into version control.
#
Pod::Spec.new do |s|
s.name = 'Flutter'
s.version = '1.0.0'
s.summary = 'A UI toolkit for beautiful and fast apps.'
s.homepage = 'https://flutter.dev'
s.license = { :type => 'BSD' }
s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s }
s.ios.deployment_target = '12.0'
# Framework linking is handled by Flutter tooling, not CocoaPods.
# Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs.
s.vendored_frameworks = 'path/to/nothing'
end
... ...
// This is a generated file; do not edit or check into version control.
FLUTTER_ROOT=/Users/wangdongni/fvm/versions/custom_oh_3.27.4-dev
FLUTTER_APPLICATION_PATH=/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example
COCOAPODS_PARALLEL_CODE_SIGN=true
FLUTTER_TARGET=lib/main.dart
FLUTTER_BUILD_DIR=build
FLUTTER_BUILD_NAME=1.0.0
FLUTTER_BUILD_NUMBER=1
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
DART_OBFUSCATION=false
TRACK_WIDGET_CREATION=true
TREE_SHAKE_ICONS=false
PACKAGE_CONFIG=.dart_tool/package_config.json
... ...
#!/bin/sh
# This is a generated file; do not edit or check into version control.
export "FLUTTER_ROOT=/Users/wangdongni/fvm/versions/custom_oh_3.27.4-dev"
export "FLUTTER_APPLICATION_PATH=/Users/wangdongni/Desktop/Flutter-ReserveApp/library/TPNS-Flutter-Plugin-a5349371525462b1d1b6cfa4cf4d2a59503f1435/example"
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
export "FLUTTER_TARGET=lib/main.dart"
export "FLUTTER_BUILD_DIR=build"
export "FLUTTER_BUILD_NAME=1.0.0"
export "FLUTTER_BUILD_NUMBER=1"
export "DART_OBFUSCATION=false"
export "TRACK_WIDGET_CREATION=true"
export "TREE_SHAKE_ICONS=false"
export "PACKAGE_CONFIG=.dart_tool/package_config.json"
... ...
{
"name": "Flutter",
"version": "1.0.0",
"summary": "A UI toolkit for beautiful and fast apps.",
"homepage": "https://flutter.dev",
"license": {
"type": "BSD"
},
"authors": {
"Flutter Dev Team": "flutter-dev@googlegroups.com"
},
"source": {
"git": "https://github.com/flutter/engine",
"tag": "1.0.0"
},
"platforms": {
"ios": "12.0"
},
"vendored_frameworks": "path/to/nothing"
}
... ...
{
"name": "tpns_flutter_plugin",
"version": "1.3.4",
"summary": "TPNS",
"description": "A new flutter plugin project.",
"homepage": "https://cloud.tencent.com/product/tpns/",
"license": {
"file": "../LICENSE"
},
"authors": {
"Tencent": "rockzuo@tencent.com"
},
"source": {
"git": "https://github.com/TencentCloud/TPNS-Flutter-Plugin",
"branch": "V1.3.4"
},
"source_files": "Classes/**/*",
"dependencies": {
"Flutter": [],
"TPNS-iOS": [
"1.4.0.5"
]
},
"platforms": {
"ios": "9.0"
},
"static_framework": true
}
... ...
PODS:
- Flutter (1.0.0)
- TPNS-iOS (1.4.0.5)
- tpns_flutter_plugin (1.3.4):
- Flutter
- TPNS-iOS (= 1.4.0.5)
DEPENDENCIES:
- Flutter (from `Flutter`)
- tpns_flutter_plugin (from `.symlinks/plugins/tpns_flutter_plugin/ios`)
SPEC REPOS:
trunk:
- TPNS-iOS
EXTERNAL SOURCES:
Flutter:
:path: Flutter
tpns_flutter_plugin:
:path: ".symlinks/plugins/tpns_flutter_plugin/ios"
SPEC CHECKSUMS:
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
TPNS-iOS: 757b0439d967beb8c5d6be6a8e9ad23e11d1e36c
tpns_flutter_plugin: 54270cae525b4a255f9140b9b7f745724601646a
PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011
COCOAPODS: 1.16.2
... ...
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXAggregateTarget section */
1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 94078A06C17E946ADC1F2C06726219E5 /* Build configuration list for PBXAggregateTarget "Flutter" */;
buildPhases = (
);
dependencies = (
);
name = Flutter;
};
E819DAFD9B8C0DA4E037009DE8EF9900 /* TPNS-iOS */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 99998805C635D0392567EC9BE18D6853 /* Build configuration list for PBXAggregateTarget "TPNS-iOS" */;
buildPhases = (
);
dependencies = (
0C8089F606AD1230A783BE243F0A79ED /* PBXTargetDependency */,
);
name = "TPNS-iOS";
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
0660EEF95D228A052386FBE272345035 /* Pods-Runner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DF785CCAF72D753F11EF2F739FD0167 /* Pods-Runner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
2F2C95BEDF98DC366AE8B683B2A2EE81 /* tpns_flutter_plugin-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 81DB49BA69AF7134557F8FAE8DF335A0 /* tpns_flutter_plugin-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
5A6BC2764686A0069C23D26E5B68D42F /* Pods-Runner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D647505D22C08B8E9F7A45B8E608CD15 /* Pods-Runner-dummy.m */; };
628339D03FABC5C8242236431BA715EB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; };
7700E941F2EB3354BB7392B962A3031B /* tpns_flutter_plugin-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F3D55FDA27C2182067AA4631B74C619A /* tpns_flutter_plugin-dummy.m */; };
A38A54224985A4F6A597A7124A4E4A05 /* XgFlutterPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 33C6C5E82F4331A58B9DB7397DEE54B2 /* XgFlutterPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
A57EF5DD49EEB5B6D29611EB1BEA7F23 /* XgFlutterPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = BFC6428F6299B62A0476363D0E6598F5 /* XgFlutterPlugin.m */; };
B9B6CDEC6256725F1AD7020E3B1AAB41 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; };
F11B6D852D2AA9A2195314DDB7B76565 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 552A52CD728EA0BC3A42E0C170E8BFDA /* PrivacyInfo.xcprivacy */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
58F8C27B685F22BB995CFA102E22BF41 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 3F4F25993703000226A9174AF7BB3A43;
remoteInfo = tpns_flutter_plugin;
};
67AFF64117BCEA038907AB66D8CD3011 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = E819DAFD9B8C0DA4E037009DE8EF9900;
remoteInfo = "TPNS-iOS";
};
6E14FF8616A83427376639EEDE4777D9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1EFDDC32A34D56D411E640A81DCD9E73;
remoteInfo = Flutter;
};
96C02A4446559DED1276283CE88DF41E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1EFDDC32A34D56D411E640A81DCD9E73;
remoteInfo = Flutter;
};
B3A0C77E150C5BFEC9F5D32F45D74DC1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 429EB5B6EB47BE9F4213CA909A199201;
remoteInfo = "TPNS-iOS-TPNS-iOS-Privacy";
};
DCDFE883A56B832EA0D951604B6838FB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = E819DAFD9B8C0DA4E037009DE8EF9900;
remoteInfo = "TPNS-iOS";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
078E527AF5F360F32D4242E8DE602489 /* Pods-Runner-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-Info.plist"; sourceTree = "<group>"; };
08A4EFC3611ED5FD0888BF98EA5FBFF7 /* tpns_flutter_plugin.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = tpns_flutter_plugin.podspec; path = ../../../../../../ios/tpns_flutter_plugin.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
0B925843688D2B9B508D202957FAB81B /* XGPushPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XGPushPrivate.h; path = XGVIPPush/XGPushPrivate.h; sourceTree = "<group>"; };
0CB4BE22914F355C255E51F30DA50CB1 /* Pods-Runner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Runner-acknowledgements.markdown"; sourceTree = "<group>"; };
0DF785CCAF72D753F11EF2F739FD0167 /* Pods-Runner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Runner-umbrella.h"; sourceTree = "<group>"; };
1246F3BC7472A5A0F612B765EBC1AE53 /* Flutter.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Flutter.release.xcconfig; sourceTree = "<group>"; };
139ADC8F1F2B4A48D4DA58E48F16EB8F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
13EBAC8CE490574C92D1F0B88BD8CD84 /* XGLocalNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XGLocalNotification.h; path = XGVIPPush/XGLocalNotification.h; sourceTree = "<group>"; };
263CBCB3D286604C9236ABEAE563FE4F /* Flutter.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Flutter.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
2CCA6DAF1C489730E8258F5797C8DBCB /* tpns_flutter_plugin-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "tpns_flutter_plugin-prefix.pch"; sourceTree = "<group>"; };
33C6C5E82F4331A58B9DB7397DEE54B2 /* XgFlutterPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XgFlutterPlugin.h; path = ../../../../../../../ios/Classes/XgFlutterPlugin.h; sourceTree = "<group>"; };
384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
40564192047E554630A46AD57E0B87FD /* ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist"; sourceTree = "<group>"; };
5046B34AB342C8843DA08C68D48E737B /* TPNS-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "TPNS-iOS.debug.xcconfig"; sourceTree = "<group>"; };
50BE728FF2BA0EB1D96A97EBEE18F49B /* Pods-Runner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Runner.modulemap"; sourceTree = "<group>"; };
552A52CD728EA0BC3A42E0C170E8BFDA /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = XGVIPPush/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
560E985EE8E41A989444E6E21E8E0840 /* tpns_flutter_plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = tpns_flutter_plugin.release.xcconfig; sourceTree = "<group>"; };
6300CA05A1AE52A3B5E577FC47EA3EE2 /* XGInAppMessage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XGInAppMessage.framework; path = XGVIPPush/InAppMessage/XGInAppMessage.framework; sourceTree = "<group>"; };
6310ADF4AFF33C70E1EAE8C85E4981A9 /* XGVoIPService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XGVoIPService.h; path = XGVIPPush/XGVoIPService.h; sourceTree = "<group>"; };
6696DA048BA8D0F7EF9587343AA80E22 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Runner"; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6F49B4428DD6C5310911D3B27A845681 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "TPNS-iOS.release.xcconfig"; sourceTree = "<group>"; };
81DB49BA69AF7134557F8FAE8DF335A0 /* tpns_flutter_plugin-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "tpns_flutter_plugin-umbrella.h"; sourceTree = "<group>"; };
85CE51AD2AEA97EDAB7C2E20D3C890DC /* libXG-SDK-Cloud.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = "libXG-SDK-Cloud.a"; path = "XGVIPPush/libXG-SDK-Cloud.a"; sourceTree = "<group>"; };
8AD81E7A2AD6FD241E912FB477B34910 /* tpns_flutter_plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = tpns_flutter_plugin; path = tpns_flutter_plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; };
91D1A30968B0A8A851B78418FEC1FBE3 /* XGPush.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = XGPush.h; path = XGVIPPush/XGPush.h; sourceTree = "<group>"; };
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
9EB1587B06C67E684BAD1645588CEFEF /* Flutter.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Flutter.debug.xcconfig; sourceTree = "<group>"; };
BEA31E200AAE2F57835084397F6F4B79 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../../../../../../LICENSE; sourceTree = "<group>"; };
BFC6428F6299B62A0476363D0E6598F5 /* XgFlutterPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = XgFlutterPlugin.m; path = ../../../../../../../ios/Classes/XgFlutterPlugin.m; sourceTree = "<group>"; };
D063F805FC3F93E650D8CC9EE2535010 /* XGMTACloud.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XGMTACloud.framework; path = XGVIPPush/XGMTACloud.framework; sourceTree = "<group>"; };
D647505D22C08B8E9F7A45B8E608CD15 /* Pods-Runner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Runner-dummy.m"; sourceTree = "<group>"; };
DD5E4B08EACB514AA358ABB597C196F2 /* TPNS-iOS-TPNS-iOS-Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "TPNS-iOS-TPNS-iOS-Privacy"; path = "TPNS-iOS-Privacy.bundle"; sourceTree = BUILT_PRODUCTS_DIR; };
E1AFA8AA8FF61FE300EA7925AFFCD2DE /* tpns_flutter_plugin.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = tpns_flutter_plugin.modulemap; sourceTree = "<group>"; };
EB2A85A4BE2CC8F0956517CA27B350A9 /* tpns_flutter_plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = tpns_flutter_plugin.debug.xcconfig; sourceTree = "<group>"; };
F30B28FB3E69C3616CCDDD191B69C187 /* tpns_flutter_plugin-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "tpns_flutter_plugin-Info.plist"; sourceTree = "<group>"; };
F3D55FDA27C2182067AA4631B74C619A /* tpns_flutter_plugin-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "tpns_flutter_plugin-dummy.m"; sourceTree = "<group>"; };
F4F896AFE723940CF3E9B818A7222DCF /* Pods-Runner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-acknowledgements.plist"; sourceTree = "<group>"; };
F8AFAE5B77C66D5C7BB362290948A52B /* Pods-Runner-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Runner-resources.sh"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
5D86964EA78773D5B6033160382FC5B7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
628339D03FABC5C8242236431BA715EB /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8D1B1E9758B0A46817352DFF5608BD24 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
D9D8737C02AD3AAFC27940BCA87D471A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B9B6CDEC6256725F1AD7020E3B1AAB41 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
01780FE294023D7DB9B823CD817D0C58 /* TPNS-iOS */ = {
isa = PBXGroup;
children = (
13EBAC8CE490574C92D1F0B88BD8CD84 /* XGLocalNotification.h */,
91D1A30968B0A8A851B78418FEC1FBE3 /* XGPush.h */,
0B925843688D2B9B508D202957FAB81B /* XGPushPrivate.h */,
6310ADF4AFF33C70E1EAE8C85E4981A9 /* XGVoIPService.h */,
156BA645DDFA5E70B8B37E8FFB572DAB /* Frameworks */,
CB7436A592F93FF34C5E005CD5268163 /* Resources */,
302B365DEBA25F2F3A7CBCF8F295C2EB /* Support Files */,
);
name = "TPNS-iOS";
path = "TPNS-iOS";
sourceTree = "<group>";
};
0B5F965B3E5DF8860F126552F6762721 /* plugins */ = {
isa = PBXGroup;
children = (
3BAE1FB821EF4E5F67AFD172AD72D17A /* tpns_flutter_plugin */,
);
name = plugins;
path = plugins;
sourceTree = "<group>";
};
156BA645DDFA5E70B8B37E8FFB572DAB /* Frameworks */ = {
isa = PBXGroup;
children = (
85CE51AD2AEA97EDAB7C2E20D3C890DC /* libXG-SDK-Cloud.a */,
6300CA05A1AE52A3B5E577FC47EA3EE2 /* XGInAppMessage.framework */,
D063F805FC3F93E650D8CC9EE2535010 /* XGMTACloud.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
202BC177A19C6EFDDA7D5C28DBE2945A /* Support Files */ = {
isa = PBXGroup;
children = (
9EB1587B06C67E684BAD1645588CEFEF /* Flutter.debug.xcconfig */,
1246F3BC7472A5A0F612B765EBC1AE53 /* Flutter.release.xcconfig */,
);
name = "Support Files";
path = "../Pods/Target Support Files/Flutter";
sourceTree = "<group>";
};
302B365DEBA25F2F3A7CBCF8F295C2EB /* Support Files */ = {
isa = PBXGroup;
children = (
40564192047E554630A46AD57E0B87FD /* ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist */,
5046B34AB342C8843DA08C68D48E737B /* TPNS-iOS.debug.xcconfig */,
7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */,
);
name = "Support Files";
path = "../Target Support Files/TPNS-iOS";
sourceTree = "<group>";
};
3BAE1FB821EF4E5F67AFD172AD72D17A /* tpns_flutter_plugin */ = {
isa = PBXGroup;
children = (
89C2DB8DD9AB94CF10C0685AB3026CEF /* ios */,
);
name = tpns_flutter_plugin;
path = tpns_flutter_plugin;
sourceTree = "<group>";
};
415FE012E8B578C592165D63E8E1DF90 /* .. */ = {
isa = PBXGroup;
children = (
61C9999B5003BC66F89478AEB25F0C64 /* example */,
);
name = ..;
path = ..;
sourceTree = "<group>";
};
489E481CD4B18A93A9025CB7297DB217 /* tpns_flutter_plugin */ = {
isa = PBXGroup;
children = (
CFFCDC35CE7B34ADBFB534AFCD373A58 /* .. */,
B20EA0C40385729DD7CEE141AF4A5E5D /* Pod */,
56095C1EC6D6581E542FE572720CDE6A /* Support Files */,
);
name = tpns_flutter_plugin;
path = ../.symlinks/plugins/tpns_flutter_plugin/ios;
sourceTree = "<group>";
};
4FA106D6D09DD488C04FB7AFDE47E627 /* Development Pods */ = {
isa = PBXGroup;
children = (
7BE14DF0D2E6218488538D99AE672770 /* Flutter */,
489E481CD4B18A93A9025CB7297DB217 /* tpns_flutter_plugin */,
);
name = "Development Pods";
sourceTree = "<group>";
};
56095C1EC6D6581E542FE572720CDE6A /* Support Files */ = {
isa = PBXGroup;
children = (
E1AFA8AA8FF61FE300EA7925AFFCD2DE /* tpns_flutter_plugin.modulemap */,
F3D55FDA27C2182067AA4631B74C619A /* tpns_flutter_plugin-dummy.m */,
F30B28FB3E69C3616CCDDD191B69C187 /* tpns_flutter_plugin-Info.plist */,
2CCA6DAF1C489730E8258F5797C8DBCB /* tpns_flutter_plugin-prefix.pch */,
81DB49BA69AF7134557F8FAE8DF335A0 /* tpns_flutter_plugin-umbrella.h */,
EB2A85A4BE2CC8F0956517CA27B350A9 /* tpns_flutter_plugin.debug.xcconfig */,
560E985EE8E41A989444E6E21E8E0840 /* tpns_flutter_plugin.release.xcconfig */,
);
name = "Support Files";
path = "../../../../Pods/Target Support Files/tpns_flutter_plugin";
sourceTree = "<group>";
};
61C9999B5003BC66F89478AEB25F0C64 /* example */ = {
isa = PBXGroup;
children = (
F1F5A295F0699C2CE66A05973BCAD54C /* ios */,
);
name = example;
path = example;
sourceTree = "<group>";
};
791C6E4B424AF06279F8918FA67B8ED6 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
DDA5FA1574535853DB99F3ECAD797BD3 /* Pods-Runner */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
7BE14DF0D2E6218488538D99AE672770 /* Flutter */ = {
isa = PBXGroup;
children = (
FB1041DEA5CFD8475D7944A01BC0E7F1 /* Pod */,
202BC177A19C6EFDDA7D5C28DBE2945A /* Support Files */,
);
name = Flutter;
path = ../Flutter;
sourceTree = "<group>";
};
89C2DB8DD9AB94CF10C0685AB3026CEF /* ios */ = {
isa = PBXGroup;
children = (
9E1004132C4C2C74AAFA0C7F25A760F8 /* Classes */,
);
name = ios;
path = ios;
sourceTree = "<group>";
};
9E1004132C4C2C74AAFA0C7F25A760F8 /* Classes */ = {
isa = PBXGroup;
children = (
33C6C5E82F4331A58B9DB7397DEE54B2 /* XgFlutterPlugin.h */,
BFC6428F6299B62A0476363D0E6598F5 /* XgFlutterPlugin.m */,
);
name = Classes;
path = Classes;
sourceTree = "<group>";
};
B20EA0C40385729DD7CEE141AF4A5E5D /* Pod */ = {
isa = PBXGroup;
children = (
BEA31E200AAE2F57835084397F6F4B79 /* LICENSE */,
08A4EFC3611ED5FD0888BF98EA5FBFF7 /* tpns_flutter_plugin.podspec */,
);
name = Pod;
sourceTree = "<group>";
};
C0A869DDEF078ACE8035DE743A8A0240 /* .symlinks */ = {
isa = PBXGroup;
children = (
0B5F965B3E5DF8860F126552F6762721 /* plugins */,
);
name = .symlinks;
path = .symlinks;
sourceTree = "<group>";
};
CB7436A592F93FF34C5E005CD5268163 /* Resources */ = {
isa = PBXGroup;
children = (
552A52CD728EA0BC3A42E0C170E8BFDA /* PrivacyInfo.xcprivacy */,
);
name = Resources;
sourceTree = "<group>";
};
CF1408CF629C7361332E53B88F7BD30C = {
isa = PBXGroup;
children = (
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
4FA106D6D09DD488C04FB7AFDE47E627 /* Development Pods */,
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
EF86D020AC62E9AD3544966A86DE6705 /* Pods */,
DB8AA11FFC5B082E673DD0F45B0BC24F /* Products */,
791C6E4B424AF06279F8918FA67B8ED6 /* Targets Support Files */,
);
sourceTree = "<group>";
};
CFFCDC35CE7B34ADBFB534AFCD373A58 /* .. */ = {
isa = PBXGroup;
children = (
415FE012E8B578C592165D63E8E1DF90 /* .. */,
);
name = ..;
path = ../../../../../../ios;
sourceTree = "<group>";
};
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {
isa = PBXGroup;
children = (
E4801F62A6B08CD9B5410329F1A18FDE /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
DB8AA11FFC5B082E673DD0F45B0BC24F /* Products */ = {
isa = PBXGroup;
children = (
669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */,
DD5E4B08EACB514AA358ABB597C196F2 /* TPNS-iOS-TPNS-iOS-Privacy */,
8AD81E7A2AD6FD241E912FB477B34910 /* tpns_flutter_plugin */,
);
name = Products;
sourceTree = "<group>";
};
DDA5FA1574535853DB99F3ECAD797BD3 /* Pods-Runner */ = {
isa = PBXGroup;
children = (
50BE728FF2BA0EB1D96A97EBEE18F49B /* Pods-Runner.modulemap */,
0CB4BE22914F355C255E51F30DA50CB1 /* Pods-Runner-acknowledgements.markdown */,
F4F896AFE723940CF3E9B818A7222DCF /* Pods-Runner-acknowledgements.plist */,
D647505D22C08B8E9F7A45B8E608CD15 /* Pods-Runner-dummy.m */,
078E527AF5F360F32D4242E8DE602489 /* Pods-Runner-Info.plist */,
F8AFAE5B77C66D5C7BB362290948A52B /* Pods-Runner-resources.sh */,
0DF785CCAF72D753F11EF2F739FD0167 /* Pods-Runner-umbrella.h */,
6696DA048BA8D0F7EF9587343AA80E22 /* Pods-Runner.debug.xcconfig */,
6F49B4428DD6C5310911D3B27A845681 /* Pods-Runner.profile.xcconfig */,
139ADC8F1F2B4A48D4DA58E48F16EB8F /* Pods-Runner.release.xcconfig */,
);
name = "Pods-Runner";
path = "Target Support Files/Pods-Runner";
sourceTree = "<group>";
};
E4801F62A6B08CD9B5410329F1A18FDE /* iOS */ = {
isa = PBXGroup;
children = (
384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
EF86D020AC62E9AD3544966A86DE6705 /* Pods */ = {
isa = PBXGroup;
children = (
01780FE294023D7DB9B823CD817D0C58 /* TPNS-iOS */,
);
name = Pods;
sourceTree = "<group>";
};
F1F5A295F0699C2CE66A05973BCAD54C /* ios */ = {
isa = PBXGroup;
children = (
C0A869DDEF078ACE8035DE743A8A0240 /* .symlinks */,
);
name = ios;
path = ios;
sourceTree = "<group>";
};
FB1041DEA5CFD8475D7944A01BC0E7F1 /* Pod */ = {
isa = PBXGroup;
children = (
263CBCB3D286604C9236ABEAE563FE4F /* Flutter.podspec */,
);
name = Pod;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
6A4378B3174C1A3F423BB63AA603041F /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
0660EEF95D228A052386FBE272345035 /* Pods-Runner-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7217ECAEEF291C393E8EC0C9581F02B8 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
2F2C95BEDF98DC366AE8B683B2A2EE81 /* tpns_flutter_plugin-umbrella.h in Headers */,
A38A54224985A4F6A597A7124A4E4A05 /* XgFlutterPlugin.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
3F4F25993703000226A9174AF7BB3A43 /* tpns_flutter_plugin */ = {
isa = PBXNativeTarget;
buildConfigurationList = 0C0CC3CF0A5CAC46C676F2C8D554867B /* Build configuration list for PBXNativeTarget "tpns_flutter_plugin" */;
buildPhases = (
7217ECAEEF291C393E8EC0C9581F02B8 /* Headers */,
1A01E92612A1FFD0FB5C86C05AB82816 /* Sources */,
D9D8737C02AD3AAFC27940BCA87D471A /* Frameworks */,
9AC71E0023ABCB6BC7139E99007F5814 /* Resources */,
);
buildRules = (
);
dependencies = (
AC3E69051A287D411FCC4BC4D09FE1A4 /* PBXTargetDependency */,
BF3C432F0A3212673C55E0712F7BE9B5 /* PBXTargetDependency */,
);
name = tpns_flutter_plugin;
productName = tpns_flutter_plugin;
productReference = 8AD81E7A2AD6FD241E912FB477B34910 /* tpns_flutter_plugin */;
productType = "com.apple.product-type.framework";
};
429EB5B6EB47BE9F4213CA909A199201 /* TPNS-iOS-TPNS-iOS-Privacy */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1321C0A40D4B452AA509A3DC919F7D9E /* Build configuration list for PBXNativeTarget "TPNS-iOS-TPNS-iOS-Privacy" */;
buildPhases = (
014B0D7F1A3CBB83083DCE4C10F83D39 /* Sources */,
8D1B1E9758B0A46817352DFF5608BD24 /* Frameworks */,
B5E52990D099F9AB7063775BD2A15E4A /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "TPNS-iOS-TPNS-iOS-Privacy";
productName = "TPNS-iOS-Privacy";
productReference = DD5E4B08EACB514AA358ABB597C196F2 /* TPNS-iOS-TPNS-iOS-Privacy */;
productType = "com.apple.product-type.bundle";
};
8B74B458B450D74B75744B87BD747314 /* Pods-Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 240479E6F4CDDD946D8E62C00FA210E3 /* Build configuration list for PBXNativeTarget "Pods-Runner" */;
buildPhases = (
6A4378B3174C1A3F423BB63AA603041F /* Headers */,
8CA84D77670C96991478B000FA007E6E /* Sources */,
5D86964EA78773D5B6033160382FC5B7 /* Frameworks */,
103ECE34FE6B120F52C33179E324DB6E /* Resources */,
);
buildRules = (
);
dependencies = (
75139FACE372A363D67B4942046AD7CC /* PBXTargetDependency */,
9BD5CA64C8A037F687958F3998A01C06 /* PBXTargetDependency */,
FCE28DE3C4C682A64DAF3B690E0FB4B5 /* PBXTargetDependency */,
);
name = "Pods-Runner";
productName = Pods_Runner;
productReference = 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1600;
LastUpgradeCheck = 1600;
};
buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
en,
);
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
minimizedProjectReferenceProxies = 0;
preferredProjectObjectVersion = 77;
productRefGroup = DB8AA11FFC5B082E673DD0F45B0BC24F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */,
8B74B458B450D74B75744B87BD747314 /* Pods-Runner */,
E819DAFD9B8C0DA4E037009DE8EF9900 /* TPNS-iOS */,
429EB5B6EB47BE9F4213CA909A199201 /* TPNS-iOS-TPNS-iOS-Privacy */,
3F4F25993703000226A9174AF7BB3A43 /* tpns_flutter_plugin */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
103ECE34FE6B120F52C33179E324DB6E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
9AC71E0023ABCB6BC7139E99007F5814 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
B5E52990D099F9AB7063775BD2A15E4A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F11B6D852D2AA9A2195314DDB7B76565 /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
014B0D7F1A3CBB83083DCE4C10F83D39 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1A01E92612A1FFD0FB5C86C05AB82816 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7700E941F2EB3354BB7392B962A3031B /* tpns_flutter_plugin-dummy.m in Sources */,
A57EF5DD49EEB5B6D29611EB1BEA7F23 /* XgFlutterPlugin.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8CA84D77670C96991478B000FA007E6E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5A6BC2764686A0069C23D26E5B68D42F /* Pods-Runner-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
0C8089F606AD1230A783BE243F0A79ED /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "TPNS-iOS-TPNS-iOS-Privacy";
target = 429EB5B6EB47BE9F4213CA909A199201 /* TPNS-iOS-TPNS-iOS-Privacy */;
targetProxy = B3A0C77E150C5BFEC9F5D32F45D74DC1 /* PBXContainerItemProxy */;
};
75139FACE372A363D67B4942046AD7CC /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Flutter;
target = 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */;
targetProxy = 96C02A4446559DED1276283CE88DF41E /* PBXContainerItemProxy */;
};
9BD5CA64C8A037F687958F3998A01C06 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "TPNS-iOS";
target = E819DAFD9B8C0DA4E037009DE8EF9900 /* TPNS-iOS */;
targetProxy = 67AFF64117BCEA038907AB66D8CD3011 /* PBXContainerItemProxy */;
};
AC3E69051A287D411FCC4BC4D09FE1A4 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Flutter;
target = 1EFDDC32A34D56D411E640A81DCD9E73 /* Flutter */;
targetProxy = 6E14FF8616A83427376639EEDE4777D9 /* PBXContainerItemProxy */;
};
BF3C432F0A3212673C55E0712F7BE9B5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "TPNS-iOS";
target = E819DAFD9B8C0DA4E037009DE8EF9900 /* TPNS-iOS */;
targetProxy = DCDFE883A56B832EA0D951604B6838FB /* PBXContainerItemProxy */;
};
FCE28DE3C4C682A64DAF3B690E0FB4B5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = tpns_flutter_plugin;
target = 3F4F25993703000226A9174AF7BB3A43 /* tpns_flutter_plugin */;
targetProxy = 58F8C27B685F22BB995CFA102E22BF41 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
02D6CFE0C1F33B4F137C8B963A98BC19 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EB2A85A4BE2CC8F0956517CA27B350A9 /* tpns_flutter_plugin.debug.xcconfig */;
buildSettings = {
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
GCC_PREFIX_HEADER = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch";
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap";
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
PRODUCT_MODULE_NAME = tpns_flutter_plugin;
PRODUCT_NAME = tpns_flutter_plugin;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_INSTALL_OBJC_HEADER = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
042D0DC2C49052B4D664F37DBB077B4F /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = NO;
CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_IDENTITY = "-";
CODE_SIGNING_REQUIRED = NO;
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS";
EXPANDED_CODE_SIGN_IDENTITY = "-";
IBSC_MODULE = TPNS_iOS;
INFOPLIST_FILE = "Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
PRODUCT_NAME = "TPNS-iOS-Privacy";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
WRAPPER_EXTENSION = bundle;
};
name = Profile;
};
045E947792E89940432E94F5E6A5DBED /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 139ADC8F1F2B4A48D4DA58E48F16EB8F /* Pods-Runner.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap";
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
0CFFCC29B035AA1C900AD2371AA350B6 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6F49B4428DD6C5310911D3B27A845681 /* Pods-Runner.profile.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap";
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Profile;
};
1807ED7972F5660DA45DC864522CF58E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5046B34AB342C8843DA08C68D48E737B /* TPNS-iOS.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1ED0E16DFC7967E6EC9E726E17CD3CFE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5046B34AB342C8843DA08C68D48E737B /* TPNS-iOS.debug.xcconfig */;
buildSettings = {
CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_IDENTITY = "-";
CODE_SIGNING_REQUIRED = NO;
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS";
EXPANDED_CODE_SIGN_IDENTITY = "-";
IBSC_MODULE = TPNS_iOS;
INFOPLIST_FILE = "Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = "TPNS-iOS-Privacy";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = bundle;
};
name = Debug;
};
2B9E26EAE2CD392AD762421F663075A1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
3E15765C7204CAA3AD15867283B32A69 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 560E985EE8E41A989444E6E21E8E0840 /* tpns_flutter_plugin.release.xcconfig */;
buildSettings = {
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
GCC_PREFIX_HEADER = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch";
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap";
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
PRODUCT_MODULE_NAME = tpns_flutter_plugin;
PRODUCT_NAME = tpns_flutter_plugin;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_INSTALL_OBJC_HEADER = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Profile;
};
41CECE4F69E52DC021279D1426EE0E73 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 560E985EE8E41A989444E6E21E8E0840 /* tpns_flutter_plugin.release.xcconfig */;
buildSettings = {
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
GCC_PREFIX_HEADER = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-prefix.pch";
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/tpns_flutter_plugin/tpns_flutter_plugin.modulemap";
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
PRODUCT_MODULE_NAME = tpns_flutter_plugin;
PRODUCT_NAME = tpns_flutter_plugin;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_INSTALL_OBJC_HEADER = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
41D5B72325FFBA30D764726FBE5BC83D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */;
buildSettings = {
CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_IDENTITY = "-";
CODE_SIGNING_REQUIRED = NO;
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TPNS-iOS";
EXPANDED_CODE_SIGN_IDENTITY = "-";
IBSC_MODULE = TPNS_iOS;
INFOPLIST_FILE = "Target Support Files/TPNS-iOS/ResourceBundle-TPNS-iOS-Privacy-TPNS-iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
PRODUCT_NAME = "TPNS-iOS-Privacy";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
5AF1AC88E5F655C93D1E3B5012F6FDC8 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_PROFILE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Profile;
};
63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
70F1E3D053D812E3D7E8E74934CC9053 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9EB1587B06C67E684BAD1645588CEFEF /* Flutter.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_OBJC_WEAK = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
76E053E47C7357CFF4EA96DF8337031F /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1246F3BC7472A5A0F612B765EBC1AE53 /* Flutter.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_OBJC_WEAK = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
8AF9175EC5E78703CFD1988BB36D863D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
8D3F4EAF613A47041A9D5502505BD818 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7637851C2493673EC7CF4E26FC451A28 /* TPNS-iOS.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
E456C09D0851DE90F7AD403CD6694340 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6696DA048BA8D0F7EF9587343AA80E22 /* Pods-Runner.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
ENABLE_MODULE_VERIFIER = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
"EXCLUDED_ARCHS[sdk=iphoneos*]" = "$(inherited) armv7";
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited) i386";
"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\"",
"$(inherited)",
);
"FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"\"/Users/wangdongni/fvm/versions/custom_3.32.4-ohos-0.0.1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\"",
"$(inherited)",
);
INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap";
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Flutter,
);
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
"VALID_ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD)";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
FB4B781D3E4B2E85C6448C7B77E40A53 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1246F3BC7472A5A0F612B765EBC1AE53 /* Flutter.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_OBJC_WEAK = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
0C0CC3CF0A5CAC46C676F2C8D554867B /* Build configuration list for PBXNativeTarget "tpns_flutter_plugin" */ = {
isa = XCConfigurationList;
buildConfigurations = (
02D6CFE0C1F33B4F137C8B963A98BC19 /* Debug */,
3E15765C7204CAA3AD15867283B32A69 /* Profile */,
41CECE4F69E52DC021279D1426EE0E73 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1321C0A40D4B452AA509A3DC919F7D9E /* Build configuration list for PBXNativeTarget "TPNS-iOS-TPNS-iOS-Privacy" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1ED0E16DFC7967E6EC9E726E17CD3CFE /* Debug */,
042D0DC2C49052B4D664F37DBB077B4F /* Profile */,
41D5B72325FFBA30D764726FBE5BC83D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
240479E6F4CDDD946D8E62C00FA210E3 /* Build configuration list for PBXNativeTarget "Pods-Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E456C09D0851DE90F7AD403CD6694340 /* Debug */,
0CFFCC29B035AA1C900AD2371AA350B6 /* Profile */,
045E947792E89940432E94F5E6A5DBED /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
2B9E26EAE2CD392AD762421F663075A1 /* Debug */,
5AF1AC88E5F655C93D1E3B5012F6FDC8 /* Profile */,
63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
94078A06C17E946ADC1F2C06726219E5 /* Build configuration list for PBXAggregateTarget "Flutter" */ = {
isa = XCConfigurationList;
buildConfigurations = (
70F1E3D053D812E3D7E8E74934CC9053 /* Debug */,
76E053E47C7357CFF4EA96DF8337031F /* Profile */,
FB4B781D3E4B2E85C6448C7B77E40A53 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
99998805C635D0392567EC9BE18D6853 /* Build configuration list for PBXAggregateTarget "TPNS-iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1807ED7972F5660DA45DC864522CF58E /* Debug */,
8D3F4EAF613A47041A9D5502505BD818 /* Profile */,
8AF9175EC5E78703CFD1988BB36D863D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1EFDDC32A34D56D411E640A81DCD9E73"
BuildableName = "Flutter"
BlueprintName = "Flutter"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8B74B458B450D74B75744B87BD747314"
BuildableName = "Pods_Runner.framework"
BlueprintName = "Pods-Runner"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "429EB5B6EB47BE9F4213CA909A199201"
BuildableName = "TPNS-iOS-Privacy.bundle"
BlueprintName = "TPNS-iOS-TPNS-iOS-Privacy"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E819DAFD9B8C0DA4E037009DE8EF9900"
BuildableName = "TPNS-iOS"
BlueprintName = "TPNS-iOS"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3F4F25993703000226A9174AF7BB3A43"
BuildableName = "tpns_flutter_plugin.framework"
BlueprintName = "tpns_flutter_plugin"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
... ...
<?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>SchemeUserState</key>
<dict>
<key>Flutter.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
<key>Pods-Runner.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
<key>TPNS-iOS-TPNS-iOS-Privacy.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
<key>TPNS-iOS.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
<key>tpns_flutter_plugin.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict/>
</dict>
</plist>
... ...
MIT License
Copyright (c) 2020 腾讯移动推送
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
... ...
TPNS iOS SDK ReleaseNote
版本 1.4.0.5
-------------------------------------------
1.优化:优化注册链路及定时器逻辑。
2.修复:修复已知问题。
VERSION 1.4.0.5
-------------------------------------------
1.Optimization: Optimize registration link and timer logic.
2.Fix: Fixed known issues.
版本 1.4.0.4
-------------------------------------------
1.新增:自建通道新增对relevanceScore字段的支持。
2.修复:修复已知问题。
VERSION 1.4.0.4
-------------------------------------------
1.New: tpns channel add relevanceScore support.
2.Fix: Fixed known issues.
版本 1.4.0.3
-------------------------------------------
1. 优化:优化极端场景下上报组件初始化失败的问题。
2. 修复:修复已知问题。
VERSION 1.4.0.3
-------------------------------------------
1. Optimization: Optimize the problem of mta initialization failure in bad case.
2. Fix: Fixed known issues.
版本 1.4.0.2
-------------------------------------------
1. 新增:注册流程支持业务侧自定义。
VERSION 1.4.0.2
-------------------------------------------
1. New: The registration interface supports customization on the business side.
版本 1.4.0.1
-------------------------------------------
1. 新增:xcframework新增隐私清单文件。
2. 优化:优化部分日志链路。
VERSION 1.4.0.1
-------------------------------------------
1. New: xcframework add privacy file.
2. Optimization: Optimize some log links.
版本 1.4.0.0
-------------------------------------------
1. 优化:缩短注册链路,提升注册成功率。
2. 优化:账号绑定接口添加短链策略。
3. 修复:修复已知问题。
VERSION 1.4.0.0
-------------------------------------------
1. Optimization: Shorten register links and improve the register success rate.
2. Optimization: Account api add http strategy.
3. Fix: Fixed known issues.
版本 1.3.9.8
-------------------------------------------
1. 新增:新增SDK渠道字段。
2. 修复:修复已知问题。
VERSION 1.3.9.8
-------------------------------------------
1. New: Added the SDK channel field.
2. Fix: Fixed known issues.
版本 1.3.9.7
-------------------------------------------
1. 新增:新增xcframework库类型。
2. 优化:优化自建通道对新系统特性的支持。
3. 修复:修复已知问题。
VERSION 1.3.9.7
-------------------------------------------
1. New: Added xcframework library types.
2. Optimization: Optimize the support of tpns channels for new system features.
3. Fix: Fixed known issues.
版本 1.3.9.6
-------------------------------------------
1. 修复:修复手机型号多次采集的潜在风险。
2. 优化:优化头部卡顿问题。
VERSION 1.3.9.6
-------------------------------------------
1. Fix: Fixed potential risk of multiple phone model collection.
2. Optimization: Optimized the head anr problem.
版本 1.3.9.5
-------------------------------------------
1. 修复:修复已知问题。
2. 新增:新增实时活动接口。
VERSION 1.3.9.5
-------------------------------------------
1. Fix: Fixed known issues.
2. New: Added a interface for live activity.
版本 1.3.9.4
-------------------------------------------
1. 修复:修复已知问题。
2. 新增:新增采集字段自定义接口。
VERSION 1.3.9.4
-------------------------------------------
1. Fix: Fixed known issues.
2. New: Added a custom interface for collecting fields.
版本 1.3.9.3
-------------------------------------------
1. 修复:修复已知问题。
VERSION 1.3.9.3
-------------------------------------------
1. Fix: Fixed known issues.
版本 1.3.9.2
-------------------------------------------
1. 修复:修复已知问题。
2. 优化:分离厂商通道和自建通道注册依赖,缩短注册流程。
VERSION 1.3.9.2
-------------------------------------------
1. Fix: Fixed known issues.
2. Optimization: Separate the registration dependence between the apns channel and the tpns channel, shortening the registration process.
版本 1.3.9.1
-------------------------------------------
1. 修复:修复已知问题。
2. 优化:替换上报域名,减少上报带宽消耗。
VERSION 1.3.9.1
-------------------------------------------
1. Fix: Fixed known issues.
2. Optimization: Replace the reporting domain name to reduce the reporting bandwidth consumption.
版本 1.3.9.0
-------------------------------------------
1. 修复已知问题。
2. 优化:提升业务接口性能。
VERSION 1.3.9.0
-------------------------------------------
1. Fix: Fixed known issues.
2. Optimization: Improve performance for some API interface.
版本 1.3.8.0
-------------------------------------------
1. 修复:修复了点击通知栏的自建通道消息,冷启动App,并且TPNS SDK延迟启动的情况下,偶现的上报点击事件失败的问题。
2. 优化:提升缓存文件IO性能。
3. 新增:新增VoIP能力(只支持海外用户)。
VERSION 1.3.8.0
-------------------------------------------
1. Fix: Fixed the occasional failure to report click events when clicking the self-built channel message in the notification bar, cold-starting the app, and delaying the startup of the TPNS SDK.
2. Optimization: Improve IO performance for cache file.
3. New: Added VoIP capability (only supports overseas users).
版本 1.3.7.0
-------------------------------------------
1. 优化:优化注册流程日志,方便问题排查。
2. 优化:优化抵达插件上报策略。
VERSION 1.3.7.0
-------------------------------------------
1. Optimization: Optimize the registration process log to facilitate troubleshooting.
2. Optimization: Optimize the arrival plugin reporting strategy.
版本 1.3.6.0
-------------------------------------------
1. 修复:修复冷启动模式下,SDK启动方法调用延后导致的点击数据无法上报问题。
2. 优化:更新数据上报策略,提升统计数据准确性。
3. 优化:优化SDK鉴权机制,提高安全性。
4. 增加:支持使用原生通知中心代理方法(UNUserNotificationCenterDelegate)。
VERSION 1.3.6.0
-------------------------------------------
1. Fix: Fix the problem that click data cannot be reported due to delay in calling the SDK start method under cold start mode.
2. Optimization: Update the data reporting strategy to improve the accuracy of statistical data.
3. Optimization: Optimize the SDK authentication mechanism to improve security.
4. Added: Support the use of native UNUserNotificationCenterDelegate method.
版本 1.3.5.0
-------------------------------------------
1. 优化:增加数据上报的超时时间,5s->15s。
2. 优化:优化了SDK的鉴权机制,提高了安全性。
VERSION 1.3.5.0
-------------------------------------------
1. Optimization: Increase the timeout time of data reporting from 5s to15s.
2. Optimization: Optimize the authentication mechanism of SDK to improve security.
版本 1.3.4.1
-------------------------------------------
1. 优化:提升了通知栏状态的准确性。
2. 增加:修改了应用内消息API接口
VERSION 1.3.4.1
-------------------------------------------
1. Optimization:Improved the accuracy of notification bar status.
2. Added:Modified the in-app messaging API interface.
版本 1.3.4.0
-------------------------------------------
1. 修复:修复了长链接多次重连后,网络连接偶尔失效的问题。
2. 修复:修复了App跳转导致TPNS在线状态偶尔不准确的问题。
3. 增加:增加了使用应用内消息作为补推的能力。
VERSION 1.3.4.0
-------------------------------------------
1. Fix: Fixed an issue where network connections occasionally failed after tcp connecton was reconnected multiple times.
2. Fix: Fixed an issue where App deeplink caused TPNS online status to be occasionally inaccurate.
3. Added: Added ability to use in-app messages for push message.
版本 1.3.3.0
-------------------------------------------
1. 修复:修复了集群切换没有实时生效的问题。
2. 修复:修复了tag接口频繁调用时,绑定不准确的问题。
3. 优化:升级 SDK deployment target 到 9.0。
4. 优化:提升了"账号绑定"和"注册回调"的性能。
5. 新增:新增了对RestApi的show_type字段的支持,app前台时可以不展示通知。
6. 新增:新增了长连接可支持SSL的能力。
7. 新增:对App启动类型,能区分是由"点击通知"拉起。
版本 1.3.3.0
-------------------------------------------
1. Fix: Fixed issue the switch of cluster does not take effect in real time.
2. Fix: Fixed inaccurate binding issue when the API of tag is called frequently.
3. Optimization: Upgraded the SDK deployment target to 9.0.
4. Optimization: Improved The performance of "Account Binding" and "Registration Callback".
5. Added: Added show_type property in RestApi, which can make the app do not display notifications in the foreground.
6. Added: Added SSL support for TCP connection.
7. Added: Added "click on notification" enum for app startup type.
版本 1.3.2.1
-------------------------------------------
1. 修复:Xcode 12.5下, 引用TPNSInAppMessage.framework的兼容性问题。
2. 修复:用户iCloud备份还原,两台设备具有同样TPNS Token问题。
3. 优化:切换了新集群环境的话,旧集群产生的日志不上报。
4. 增加:手机号码绑定接口,用于普通短信及智能短信发送。
5. 增加:账号绑定接口升级,新增多种预设账号类型。
6. 增加:Demo演示了"用户允许协议"后才进行Push通知弹窗的方法。
7. 增加:对startXGWithAccessID接口的错误调用,进行了日志提示。
8. 增加:对第三方SDK对appdelegate的hook冲突,进行了日志提示。
9. 删除:若干在生产环境下,不必要的日志提示。
VERSION 1.3.2.1
-------------------------------------------
1. FIX: The compatibility issue of ‘TPNSInAppMessage.framework’ under Xcode 12.5
2. FIX: The same TPNS Token problem on two different devices when user backup and restore in iCloud.
3. IMPROVEMENT: The logs generated by the old cluster will not report after we switch to a new cluster environment.
4. NEW FEATURE: Mobile phone number binding interface for ordinary SMS and smart SMS send.
5. NEW FEATURE: Account binding interface upgrade, new multiple preset account types.
7. NEW FEATURE: The way to setup “pop-up Push notification window only after ‘User Allowed Agreement’ ” is demonstrated in demo app.
7. NEW FEATURE: Log prompts for wrong call of startXGWithAccessID interface.
8. NEW FEATURE: Log prompts for conflicts of AppDelegate hook between TPNS and the third-party SDK.
9. DELETED FEATURE: Unnecessary log prompts in the production environment.
版本 1.3.1.1
-------------------------------------------
1. 修复:GCDAsync库可能导致的编译冲突。
VERSION 1.3.1.1
-------------------------------------------
1. FIX:Possible compilation conflicts caused by the GCDAsync library.
版本 1.3.1.0
-------------------------------------------
1. 修复:TPNS自建通道和APNs通道的播放声音规则不一致问题。
2. 修复:切换集群时,云控下发加密字段失效的问题。
3. 修复:偶现的统计日志上报失败问题。
4. 修复:覆盖消息功能,带thread-id的通知可能覆盖失败的问题。
5. 优化:部分错误日志的提示文案。
6. 优化:提高终端对TPNS Token的环境校验的准确性。
7. 优化:自动补发在TPNS网络连接失败时设置的角标数。
8. 优化:"静默消息"的抵达上报更及时。
9. 增加:查询标签功能。
10. 增加:申请通知权限的回调。
11. 增加:TPNS通道支持thread_id消息分组。
12. 增加:Demo新增全球集群切换的示例代码。
13. 增加:TPNS网络连接的建连成功和断开回调。
VERSION 1.3.1.0
-------------------------------------------
1. FIX:Inconsistent rules of playing sound between TPNS channel and APNs channel.
2. FIX:Invalid Encrypted Info delivered by Cloud Control when we change cluster.
3. FIX:Occasional statistical log report failure problem.
4. FIX:Override message function, notification with thread-id may override failed issue.
5. IMPROVEMENT:Some error log tips.
6. IMPROVEMENT:Check TPNS Token environment more accurately
7. IMPROVEMENT:Automatically resend the badge number failed to set that caused by TPNS network issues.
8. IMPROVEMENT:The arrival of "silent push notification" is reported more promptly
9. NEW FEATURE:Query tags.
10. NEW FEATURE:Callback for request notification permission.
11. NEW FEATURE:TPNS channel supports thread_id message grouping.
12. NEW FEATURE:Add sample code for global cluster switching in demo app.
13. NEW FEATURE:Connected and disconnected callbacks for TPNS network connections.
版本 1.3.0.0
-------------------------------------------
1. 修复:多线程时和低内存下的小概率crash的问题
2. 优化:减少不必要的MQTT网络超时检测
3. 优化:"抵达"的上报支持更高性能的方式
4. 优化:减少"应用内消息"插件包体积
5. 优化:对获取TPNS token的请求进行加密
6. 增加:账号、标签、用户属性接口的参数检查逻辑和错误回调
7. 删除:账号类型枚举,由业务自己定义
VERSION 1.3.0.0
-------------------------------------------
1. FIX:Small probability of crash under multithreading or low memory
2. IMPROVEMENT:Reduce the count of detection for unnecessary MQTT network timeout
3. IMPROVEMENT:Take a higher performance approach for the "arrival" report
4. IMPROVEMENT:Reduce the size of the "In-App Messaging" plugin package
5. IMPROVEMENT:Encrypt the request to obtain TPNS token
6. NEW FEATURE:Add parameter check logic and error callback for account, tag, and user-attribute interfaces
7. DELETED FEATURE:Delete account type enumeration, let the business define itself
版本 1.2.9.0
-------------------------------------------
1. 修复:富媒体通知可能下载图片失败的问题。
2. 修复:在App后台时,TPNS通道可能在线的问题。
3. 修复:1.2.5.2以前版本,可能出现TPNS token重复的问题。
4. 修复:可能建立长连接失败的问题。
5. 修复:"应用内消息"和个别SDK命名冲突的问题。
6. 优化:本地缓存的性能。
7. 优化:App通知开关状态的上报时机。
8. 优化:弱网下的长连接处理机制。
9. 优化:账号相关接口。
10. 优化:TPNS Demo的代码示例
11. 增加:本地通知功能。
12. 增加:对ipv6的支持。
13. 删除:对免费版的兼容代码。
VERSION 1.2.9.0
-------------------------------------------
1. FIX:Rich media notification may fail to download pictures.
2. FIX:The TPNS channel may be online while the App is background.
3. FIX:If sdk version is less than 1.2.5.2, TPNS token duplication may occur.
4. FIX:It may fail to establish a long connection.
5. FIX:"In-Application Messages" and some individual SDK naming conflicts.
6. IMPROVEMENT:Local cache performance.
7. IMPROVEMENT:Reporting timing when app notification status switch.
8. IMPROVEMENT:Long connection processing mechanism in weak network.
9. IMPROVEMENT:Account related interface.
10. IMPROVEMENT:TPNS Demo's code example.
11. NEW FEATURE:Local notification function.
12. NEW FEATURE:Ipv6 support.
13. DELETED FEATURE: Compatible code for the XinGe's free version.
VERSION 1.2.8.1
-------------------------------------------
1. 修复已知问题
版本 1.2.8.1
-------------------------------------------
1. Fixed known issues
VERSION 1.2.8.0
-------------------------------------------
1. Added "user attributes" for personalized push
2. Added "in-app messaging" , we provide several templates
3. Fixed known issues
版本 1.2.8.0
-------------------------------------------
1. 新增「用户属性」相关接口,用于个性化推送
2. 新增「应用内消息」功能,以及若干应用内消息模板
3. 修复已知问题
VERSION 1.2.7.2
-------------------------------------------
1. Added custom event reporting
2. Increased the success rate of reporting "arrivals"
3. Fixed known issues
版本 1.2.7.2
-------------------------------------------
1. 增加自定义事件上报功能
2. 增加"抵达数"上报的成功率
3. 修复已知问题
VERSION 1.2.7.1
-------------------------------------------
1. Reduced SDK startup time
2. Added new callback interface in case of registration failure
3. Optimized account and label interface
4. Fixed known issues
版本 1.2.7.1
-------------------------------------------
1. 减少 SDK 启动耗时
2. 新增注册失败的回调接口
3. 优化账号、标签接口
4. 修复已知问题
VERSION 1.2.6.1
-------------------------------------------
1. Improve stability, fix known issues caused by SDK
版本 1.2.6.1
-------------------------------------------
1. 提升稳定性,修复已知问题
VERSION 1.2.6.0
-------------------------------------------
1. Optimize access by adding a new registration callback
2. Added TPNS channel to send messages
3. Optimize data statistics
4. Fixed known issues
版本 1.2.6.0
-------------------------------------------
1. 优化接入,新增注册回调方法
2. 新增自建通道,支持TPNS通道下发消息
3. 优化数据统计
4. 修复已知问题
VERSION 1.2.5.4
-------------------------------------------
* Improve stability, fix known issues caused by SDK
版本 1.2.5.4
-------------------------------------------
* 提升稳定性,修复已知问题
VERSION 1.2.5.3
-------------------------------------------
* Support unregistration tokens for free clusters to prevent repeated pushes
* Support replacing duplicate messages in notification extensions
版本 1.2.5.3
-------------------------------------------
* 支持对信鸽免费集群进行反注册token,防止重复推送
* 新增支持在通知扩展中对重复的消息进行替换
VERSION 1.2.5.2
-------------------------------------------
* Improve accurate push, add enumeration of account types
* Improve stability, optimize log IO exception and iOS10 receive message callback exception
版本 1.2.5.2
-------------------------------------------
* 提升精准推送,新增账号类型的枚举
* 提升稳定性,优化日志IO异常和iOS10接收消息回调异常的问题
VERSION 1.2.5.1
-------------------------------------------
* Simplified SDK access, delete reporting API, SDK handles it automatically
* Improve stability, fix crash caused by SDK Cache
版本 1.2.5.1
-------------------------------------------
* 简化接入,删除上报接口,SDK自动处理
* 提升稳定性,修复缓存模块引发的Crash问题
VERSION 1.2.4.9
-------------------------------------------
* Improve stability, fix crash caused by message statistics and a memory leak
* Optimize SDK compatibility
版本 1.2.4.9
-------------------------------------------
* 提升稳定性,修复消息统计触发的崩溃问题和一处内存泄露问题
* 优化提升SDK兼容性
VERSION 1.2.4.8
-------------------------------------------
* Improve stability, fix crash caused by message statistics
版本 1.2.4.8
-------------------------------------------
* 提升稳定性,修复消息统计触发的崩溃问题
VERSION 1.2.4.7
-------------------------------------------
* Improve stability, fix crash caused by message statistics and log statistics
版本 1.2.4.7
-------------------------------------------
* 提升稳定性,修复消息统计和日志记录触发的崩溃问题
VERSION 1.2.4.6
-------------------------------------------
* Optimize SDK registration process and improve registration success rate
* Optimize rich media push, support resources without suffix
* Fix other known issues
版本 1.2.4.6
-------------------------------------------
* 优化SDK注册流程,提升注册成功率
* 优化富媒体推送,支持无后缀名的资源
* 修复其他已知问题
VERSION 1.2.4.5
-------------------------------------------
* Add SDK crash monitor
* Optimize message arrival statistics
* Optimize device count statistics
* Optimize SDK I/O performance
* Optimize and improve SDK stability
版本 1.2.4.5
-------------------------------------------
* SDK增加Crash监控
* 优化抵达数据统计
* 优化累计设备量统计
* 优化SDK I/O性能
* 优化提升SDK稳定性
VERSION 1.2.4.4
-------------------------------------------
* Optimize the SDK registration process and improve the reach of notification messages
版本 1.2.4.4
-------------------------------------------
* 优化SDK注册流程,提升通知消息触达
VERSION 1.2.4.3
-------------------------------------------
* Optimize SDK compatibility
版本 1.2.4.3
-------------------------------------------
* 优化提升SDK兼容性
VERSION 1.2.4.2
-------------------------------------------
* fix a bug about obtaining the TPNS Token
版本 1.2.4.2
-------------------------------------------
* 修复SDK获取TPNS Token的Bug
VERSION 1.2.4.1
-------------------------------------------
* Add a log upload API
* Optimize and improve SDK stability
* Optimize SDK compatibility
版本 1.2.4.1
-------------------------------------------
* 新增日志上传接口
* 优化提升SDK稳定性
* 优化提升SDK兼容性
VERSION 1.2.4.0
-------------------------------------------
* Fix the problem of single account binding callback
* Improve SDK compatibility with third parties Notification Plugin
* Newly differentiated device push environment to optimize statistics
* Optimize the cache logic for replacing App information
* Improve SDK registration success rate
版本 1.2.4.0
-------------------------------------------
* 修复单账号绑定回调的问题
* 提升SDK与第三方的兼容性
* 新增区分设备推送环境,从而优化统计数据
* 优化更换App信息的缓存逻辑
* 提升SDK注册成功率
VERSION 1.2.3.0
-------------------------------------------
* Fix a bug about DeviceToken changed
版本 1.2.3.0
-------------------------------------------
* 修复一个当设备Token变化时出现的bug
VERSION 1.2.2.1
-------------------------------------------
* Fix a bug about network connecting when other apis are called before SDK starting
版本 1.2.2.1
-------------------------------------------
* 修复一个当SDK未启动完成就调用其他接口而产生的网络连接的Bug
VERSION 1.2.2.0
-------------------------------------------
* Fix a bug about registering device to the TPNS server on iOS13
* Fix a bug about network connecting when the App status changed
版本 1.2.2.0
-------------------------------------------
* 修复iOS13上无法注册的问题
* 修复App状态切换时的网络连接的问题
VERSION 1.2.1.2
-------------------------------------------
* Fix a bug about clicking message statistics
版本 1.2.1.2
-------------------------------------------
* 修复点击数据统计bug
VERSION 1.2.1.1
-------------------------------------------
* 修复标签绑定接口在网络连接状态变化时存在的bug
VERSION 1.2.1.0
-------------------------------------------
* 新增查询信鸽服务生成的Token接口
* 修复单账号绑定失败的问题
VERSION 1.2.0.0
-------------------------------------------
* 新增独立上报数据SDK
* 优化终端注册服务
* 更新DeviceToken解析逻辑
VERSION 1.1.0.1
-------------------------------------------
* 修复用户名和密码认证逻辑
* 修复动态加载SDK的缺陷
VERSION 1.1.0.0
-------------------------------------------
* 增加PushKit插件
* 优化SDK启动耗时
VERSION 1.0.1.0
-------------------------------------------
* 增加长连接的推送
VERSION 1.0.1.0
-------------------------------------------
* 增加对PushKit的插件化支持,目前功能仅限注册,注销,上报
VERSION 1.0.0.0
-------------------------------------------
* 初始版本
... ...
//
// XGInAppMessage.h
// XGInAppMessage
//
// Created by rockzuo on 2020/8/17.
// Copyright © 2020 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
//! Project version number for XGInAppMessage.
FOUNDATION_EXPORT double XGInAppMessageVersionNumber;
//! Project version string for XGInAppMessage.
FOUNDATION_EXPORT const unsigned char XGInAppMessageVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <XGInAppMessage/PublicHeader.h>
#import "XGInAppMessageManager.h"
... ...
//
// XGInAppMessageManager.h
// XGInAppMessage
//
// Created by rockzuo on 2020/8/17.
// Copyright © 2020 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/// XGInAppMessageManager事件代理
@protocol XGInAppMessageActionDelegate <NSObject>
@optional
/// 通过下发的自定义参数去做响应
/// @param actionDic 自定义事件字符串标识
- (void)onClickWithCustomAction:(nullable NSDictionary *)actionDic;
@end
/// 消息管理类
@interface XGInAppMessageManager : NSObject
/// 开发者是否允许展示标识, 默认展示,如果您在某些场景不想展示应用内消息可将其置为YES
@property (assign, nonatomic) BOOL refuseMessage;
/// 设置消息展示的window
@property (strong, nonatomic, nullable) UIWindow *targetWindow;
/// 按钮事件响应代理
@property (weak, nonatomic, nullable) id<XGInAppMessageActionDelegate> actionDelegate;
/// 设置消息轮询时间间隔,最小值为10s,此方法需要在单例初始化之前调用
+ (void)setMessageTimerInterval:(NSTimeInterval)interval;
/// 单例方法
+ (nonnull instancetype)defaultManager;
/// 展示自定义消息
/// @param messageInfo 应用内消息结构
- (void)presentCustomMessage:(nullable NSDictionary *)messageInfo;
/// 关闭消息视图
- (void)dismissPopWindow;
@end
... ...
<?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>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
</dict>
</plist>
... ...
<?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>files</key>
<dict>
<key>Headers/XGInAppMessage.h</key>
<data>
rn7g7+Cz+vQgMuOd0fpq5SOEM5s=
</data>
<key>Headers/XGInAppMessageManager.h</key>
<data>
JJns75ZOSiQmsZjYeHApGaU1ChI=
</data>
<key>Info.plist</key>
<data>
CwlfADL+IPRRd9xG2Ka1BNsinvs=
</data>
<key>Modules/module.modulemap</key>
<data>
YX6cVDR3GXUXKRXDCJdvtZmd9vU=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/XGInAppMessage.h</key>
<dict>
<key>hash</key>
<data>
rn7g7+Cz+vQgMuOd0fpq5SOEM5s=
</data>
<key>hash2</key>
<data>
C5AsaOYS5Dt5I9FbBzyJ8ps1amf+ZYm4XpZKGZYrkic=
</data>
</dict>
<key>Headers/XGInAppMessageManager.h</key>
<dict>
<key>hash</key>
<data>
JJns75ZOSiQmsZjYeHApGaU1ChI=
</data>
<key>hash2</key>
<data>
fqTc3Ff6wka49RywA1gPsRmj00KrrS0yvOPUCZJJyDM=
</data>
</dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
<data>
YX6cVDR3GXUXKRXDCJdvtZmd9vU=
</data>
<key>hash2</key>
<data>
E6ikTRrZ2eY8SYyTfLlxr2ZXSAw6z6O4e6p7nDQwITY=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
... ...
<?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>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeOtherDataTypes</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
</array>
</dict>
</plist>
... ...
//
// XGLocalNotification.h
// XG-SDK
//
// Created by rockzuo on 2020/10/27.
// Copyright © 2020 TEG of Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
/// 通知内容类
@interface XGNotificationContent : NSObject <NSCopying>
/// 通知标题
@property (nonatomic, copy) NSString *title;
/// 通知副标题
@property (nonatomic, copy) NSString *subtitle;
/// 通知内容
@property (nonatomic, copy) NSString *body;
/// 通知角标,不需要修改则不传
@property (nonatomic, copy) NSNumber *badge;
/// 自定义弹框按钮显示的内容
@property (nonatomic, copy) NSString *action NS_DEPRECATED_IOS(8_0, 10_0);
/// 分类标识
@property (nonatomic, copy) NSString *categoryIdentifier;
/// 本地推送时可以通过userInfo设置附加信息
@property (nonatomic, copy) NSDictionary *userInfo;
/// 收到通知提示音,不设置则为默认声音(您可以本地使用一段声音,创建本地通知时指定此声音)
@property (nonatomic, copy) NSString *sound;
/// 图片、音视频富媒体元素url地址,具体类型支持请参考:https://cloud.tencent.com/document/product/548/46964
@property (nonatomic, copy) NSString *mediaUrl;
/// 线程或与推送请求相关对话的标识,可用来对推送进行分组
@property (nonatomic, copy) NSString *threadIdentifier NS_AVAILABLE_IOS(10_0);
/// 启动图片
@property (nonatomic, copy) NSString *launchImageName NS_AVAILABLE_IOS(10_0);
@end
/// 通知触发类
@interface XGNotificationTrigger : NSObject <NSCopying>
/// 是否重复,默认值NO
@property (nonatomic, assign) BOOL repeats;
/// 推送触发时间,低于iOS10使用
@property (nonatomic, copy) NSDate *fireDate NS_DEPRECATED_IOS(2_0, 10_0);
/// 推送触发时间,iOS10+使用,优先级I(dateComponents和timeInterval都有值时优先使用dateComponents)
@property (nonatomic, copy) NSDateComponents *dateComponents NS_AVAILABLE_IOS(10_0);
/// 推送触发时间,iOS10+使用,优先级II(dateComponents和timeInterval都有值时优先使用dateComponents)
/// 当repeats为YES时timeInterval时间间隔必须大于60S
@property (nonatomic, assign) NSTimeInterval timeInterval NS_AVAILABLE_IOS(10_0);
@end
/// 通知管理类
@interface XGNotificationRequest : NSObject <NSCopying>
/// 通知请求标识,移除通知会用到此标识
@property (nonatomic, copy) NSString *requestIdentifier;
/// 通知内容
@property (nonatomic, copy) XGNotificationContent *content;
/// 通知触发器
@property (nonatomic, copy) XGNotificationTrigger *trigger;
@end
/// 通知类
@interface XGLocalNotification : NSObject
/// 注册或更新推送
/// @param request XGNotificationRequest类型,管理推送相关属性
/// @note iOS10+支持在已有推送基础上设置request.requestIdentifier来更新此推送
+ (void)addNotification:(XGNotificationRequest *)request;
/// 获取计划发送的通知
/// @param completionHandler 计划发送通知回调,iOS10+返回UNNotificationRequest数组,低于iOS10返回UILocalNotification数组
+ (void)getPendingNotificationRequestsWithCompletionHandler:(void (^)(NSArray *requests))completionHandler;
/// 移除计划发送的通知
/// @param identifiers 要移除的本地推送标识的集合
+ (void)removePendingLocalNotification:(NSArray<NSString *> *)identifiers;
/// 移除所有计划发送的通知
+ (void)removeAllPendingLocalNotifications;
@end
... ...
//
// XGPushStatMTA.h
// XGPushStatMTA-SDK
//
// Originally Created by uweiyuan on 2019/7/4.
// Copyright (c) 2020 TEG of Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
XGPushStatMTA版本号
*/
#define MTA_SDK_VERSION @"2.6.0"
#pragma mark - 接口监控相关数据结构
/**
接口统计的枚举值
*/
typedef enum {
/**
接口调用成功
*/
XGPushStatMTA_SUCCESS = 0,
/**
接口调用失败
*/
XGPushStatMTA_FAILURE = 1,
/**
接口调用出现逻辑错误
*/
XGPushStatMTA_LOGIC_FAILURE = 2
} XGPushStatMTAAppMonitorErrorType;
/**
XGPushStatMTA错误码
- XGPushStatEC_OK: 无错误
- XGPushStatEC_SERVICE_DISABLE: XGPushStatMTA服务未启动,请检查是否调用[XGPushStatMTA startWithAppkey:]
- XGPushStatEC_ARGUMENT_INVALID: 参数错误,比如eventID为空,或者在没有结束计时事件的情况下又重新开始计时事件
- XGPushStatEC_INPUT_LENGTH_LIMIT: 参数过长,详细情况请查看自定义事件API的注释
*/
typedef NS_ENUM(NSInteger, XGPushStatMTAErrorCode) {
XGPushStatEC_OK = 0,
XGPushStatEC_SERVICE_DISABLE = -1,
XGPushStatEC_ARGUMENT_INVALID = 1000,
XGPushStatEC_INPUT_LENGTH_LIMIT = 1001,
};
#pragma mark - XGPushStatMTA统计功能相关接口
/// XGPushStatMTA核心类
@interface XGPushStatMTA : NSObject
#pragma mark - 获取XGPushStatMTA版本号
/**
获取XGPushStatMTA版本号
@return 返回XGPushStatMTA版本号
*/
+ (NSString *)getSdkVersion;
#pragma mark - 启动XGPushStatMTA
/**
启动XGPushStatMTA
@param appkey 从网页申请的appKey
*/
+ (void)startWithAppkey:(NSString *)appkey;
#pragma mark - XG
@end
... ...
//
// XGPushStatMTAConfig.h
// TA-SDK
//
// Originally Created by uweiyuan on 2019/7/4.
//
//
#import <Foundation/Foundation.h>
/**
上报策略枚举值
*/
typedef enum {
/**
实时上报
*/
XGPushStatMTA_STRATEGY_INSTANT = 1,
/**
批量上报,达到缓存临界值时触发发送
*/
XGPushStatMTA_STRATEGY_BATCH = 2,
/**
应用启动时发送
*/
XGPushStatMTA_STRATEGY_APP_LAUNCH = 3,
/**
仅在WIFI网络下发送
*/
XGPushStatMTA_STRATEGY_ONLY_WIFI = 4,
/**
每间隔一定最小时间发送,默认24小时
*/
XGPushStatMTA_STRATEGY_PERIOD = 5,
/**
开发者在代码中主动调用发送行为
*/
XGPushStatMTA_STRATEGY_DEVELOPER = 6,
/**
仅在WIFI网络下发送, 发送失败以及非WIFI网络情况下不缓存数据
*/
XGPushStatMTA_STRATEGY_ONLY_WIFI_NO_CACHE = 7,
/*
不缓存数据,批量上报+间隔上报组合。适用于上报特别频繁的场景。
*/
XGPushStatMTA_STRATEGY_NO_CACHE_BATCH_PERIOD = 8
} XGPushStatMTAStatReportStrategy;
@interface XGPushStatMTAConfig : NSObject
#pragma mark - 常规配置项
/**
取得XGPushStatMTA配置的共享实例
修改实例的属性必须在调用XGPushStatMTA启动函数之前执行
@return XGPushStatMTAConfig的共享实例
*/
+ (instancetype)getInstance;
/**
debug开关
开以后,终端会输出debug日志,默认关闭
*/
@property BOOL debugEnable;
/**
Session过期时间,默认30秒
*/
@property uint32_t sessionTimeoutSecs;
/**
上报策略
*/
@property (nonatomic) XGPushStatMTAStatReportStrategy reportStrategy;
/**
是否自动统计整个APP的使用时长,默认打开
*/
@property BOOL autoTM;
/**
若打开此项,XGPushStatMTA会在ViewController的
viewDidAppear和viewWillDisappear
方法中,自动统计页面时长。
默认打开
注:若您自行实现了ViewController中
的viewDidAppear和viewWillDisappear
这两个方法。请在这两个方法中分别调用父类
的对应方法。否则此功能可能无法正常工作。
*/
@property BOOL autoTrackPage;
/**
应用的统计AppKey
*/
@property (nonatomic, copy) NSString *appkey;
/**
渠道名,默认为"appstore"
*/
@property (nonatomic, copy) NSString *channel;
/**
最大缓存的未发送的统计消息,默认1024条
*/
@property uint32_t maxStoreEventCount;
/**
统计上报策略为BATCH时,触发上报时最小缓存消息数,默认30条
*/
@property uint32_t minBatchReportCount;
/**
发送失败最大重试数,默认3次
*/
@property uint32_t maxSendRetryCount;
/**
上报策略为PERIOD时发送间隔,单位分钟,默认一天(1440分钟)
*/
@property uint32_t sendPeriodMinutes;
/**
允许同时统计的时长事件数,默认1024条
*/
@property uint32_t maxParallelTimingEvents;
/**
智能上报
开启以后设备接入WIFI会实时上报
否则按照全局策略上报
默认打开
*/
@property BOOL smartReporting;
/**
最大上报的单条event长度,超过不上报
单位Byte
默认4096,即4KB
*/
@property uint32_t maxReportEventLength;
/**
XGPushStatMTA是否启动
*/
@property BOOL statEnable;
/**
设备的idfa,建议有广告权限的app设置此字段
默认为空
*/
//@property (nonatomic, copy) NSString *ifa;
/**
用户自定义的App版本
默认为空
若设置了这个字段,SDK会取这个字段作为APP版本上报
若没设置,则取工程配置文件中的‘Bundle versions string, short’字段作为APP版本上报
若没没设置‘Bundle versions string, short’字段,则取‘Bundle version’字段上报
*/
@property (nonatomic, copy) NSString *customerAppVersion;
/**
用户自定义的设备标识
*/
@property (nonatomic, copy) NSString *customerUserID;
/**
一个Session内允许上报的最大事件数
传入-1表示无限制
不建议修改这个字段
默认无限制
*/
@property int32_t maxSessionStatReportCount;
/**
mid,会存放到mid字段(推荐赋值APNS的token)
*/
@property (nonatomic, copy) NSString *mid;
/**
guid,预留字段,无特定含义
*/
@property (nonatomic, assign) NSUInteger guid;
/**
获取在XGPushStatMTA前端控制台配置的参数
调用这个函数前需要在XGPushStatMTA前端控制台中‘应用配置管理项’下的‘自定义参数’中配置才能生效
首次配置或者更改参数配置后,需要3-5分钟才能生效
@param key 参数的key
@param v 没取到参数时返回的默认值
@return 参数的值或者默认值
*/
- (NSString *)getCustomProperty:(NSString *)key default:(NSString *)v;
/**
自定义上报地址
*/
@property (nonatomic, copy) NSString *statReportURL;
/// tpns accessID
@property (nonatomic, assign) uint32_t tpnsAccessID;
/// tpns sdk版本
@property (nonatomic, copy) NSString *tpnsSDKVersion;
/// 是否检查上报域名
@property (nonatomic, assign) BOOL checkReportDomain;
/// 当前允许的上报域名
@property (nonatomic, copy) NSString *enableReportDomainStr;
@end
... ...
//
// XGMTACloud.h
// XGMTACloud
//
// Created by uwei on 2019/7/4.
// Copyright © 2019 TEG of Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for XGMTACloud.
FOUNDATION_EXPORT double XGMTACloudVersionNumber;
//! Project version string for XGMTACloud.
FOUNDATION_EXPORT const unsigned char XGMTACloudVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <XGMTACloud/PublicHeader.h>
#import "MTA.h"
#import "MTAConfig.h"
... ...
<?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>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>
... ...
<?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>files</key>
<dict>
<key>Headers/MTA.h</key>
<data>
9s4ugmDpzDlua3YuSHFrXvBawPY=
</data>
<key>Headers/MTAConfig.h</key>
<data>
S8DzAUabb2Z7Sduq23UWpuF+ewQ=
</data>
<key>Info.plist</key>
<data>
fFF7V7oybiH46AfSaN9QD1Akp7s=
</data>
<key>nmstool</key>
<data>
wLg/Aa6oNHo4FU6kPdw1r871tcE=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/MTA.h</key>
<dict>
<key>hash</key>
<data>
9s4ugmDpzDlua3YuSHFrXvBawPY=
</data>
<key>hash2</key>
<data>
mQf43/NVg2TdbkU94+0M0J/M1Kpa3ju++RoHwKlEsgo=
</data>
</dict>
<key>Headers/MTAConfig.h</key>
<dict>
<key>hash</key>
<data>
S8DzAUabb2Z7Sduq23UWpuF+ewQ=
</data>
<key>hash2</key>
<data>
RuaaY0SDotozeySmHb0CAT2C8OkiioWobXqXViEWsnw=
</data>
</dict>
<key>nmstool</key>
<dict>
<key>hash</key>
<data>
wLg/Aa6oNHo4FU6kPdw1r871tcE=
</data>
<key>hash2</key>
<data>
qfFQQuovYJgAeKuatkNigxnKzT51XZlTZEkx6pFNoNw=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
... ...
//
// TPNS核心接口
// TPNS-SDK
//
// Created by xiangchen on 13-10-18.
// Update by uweiyuan on 4/08/17.
// Copyright (c) 2019 TEG of Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#import <UserNotifications/UserNotifications.h>
#endif
#pragma mark - XGPush代理,提供注册及反注册结果回调,消息接收及消息点击回调,设置角标回调
/**
@brief 监控TPNS服务启动和设备token注册的一组方法
*/
@protocol XGPushDelegate <NSObject>
@optional
#pragma mark - ********注册相关回调********
/**
@brief 注册推送服务回调(TPNS SDK1.2.6.0+)
@param deviceToken APNs 生成的Device Token
@param xgToken TPNS 生成的 Token,推送消息时需要使用此值。TPNS 维护此值与APNs 的 Device Token的映射关系
@param error 错误信息,若error为nil则注册推送服务成功
@note 1.3.9.9及以上版本请使用厂商token回调获取deviceToken,回调方法为xgPushDidRegisterForRemoteNotificationsWithDeviceToken:
*/
- (void)xgPushDidRegisteredDeviceToken:(nullable NSString *)deviceToken xgToken:(nullable NSString *)xgToken error:(nullable NSError *)error;
/**
@brief 注册推送服务失败回调(TPNS SDK1.2.7.1+)
@param error 注册失败错误信息
*/
- (void)xgPushDidFailToRegisterDeviceTokenWithError:(nullable NSError *)error;
/**
@brief 反注册回调,当您调用了终止TPNS服务接口stopXGNotification时会收到此回调
@param isSuccess TPNS是否终止
@param error TPNS推动终止错误的信息
*/
- (void)xgPushDidFinishStop:(BOOL)isSuccess error:(nullable NSError *)error;
#pragma mark - ********通知相关回调********
/**
@brief 统一消息出口,此接口对不同操作系统版本的消息接口进行了封装
@param notification 通知内容,需要根据返回类型来确定
@param completionHandler 接收到消息的回调,必须要调用
@note 自建通道消息也会通过此回调转发给应用侧使用,自建通道消息体结构与APNs通知消息体结构相同
*/
- (void)xgPushDidReceiveRemoteNotification:(nonnull id)notification withCompletionHandler:(nullable void (^)(NSUInteger))completionHandler;
/// 统一点击回调(TPNS SDK1.2.7.1+)
/// @param response 如果iOS 10+/macOS 10.14+则为UNNotificationResponse,低于目标版本则为NSDictionary
- (void)xgPushDidReceiveNotificationResponse:(nonnull id)response withCompletionHandler:(nonnull void (^)(void))completionHandler;
#pragma mark - ********其他相关回调********
/**
@brief 厂商(APNs)token回调1.3.9.9新增
@param deviceToken 厂商(APNs)token,可变长度,不要硬编码它们的大小,若为空则代表获取失败
@note 厂商token字符串类型可使用[[XGPushTokenManager defaultTokenManager] deviceTokenString]获取
*/
- (void)xgPushDidRegisterForRemoteNotificationsWithDeviceToken:(nullable NSData *)deviceToken;
/**
@brief 监控设置TPNS服务器下发角标的情况
@param isSuccess isSuccess 上报是否成功
@param error 设置失败的信息
*/
- (void)xgPushDidSetBadge:(BOOL)isSuccess error:(nullable NSError *)error;
/**
@brief 通知权限弹窗的回调
@param isEnable 用户是否允许
@param error 错误信息
*/
- (void)xgPushDidRequestNotificationPermission:(bool)isEnable error:(nullable NSError *)error;
/**
@brief TPNS日志回调方法
@param logInfo 日志信息
@note 可以在此方法获取TPNS的log日志。此方法和XGPush->enableDebug无关。
*/
- (void)xgPushLog:(nullable NSString *)logInfo;
/**
@brief TPNS采集字段回调方法,如果需要知道TPNS采集的字段可实现此方法
@param field 字段信息
@param description 字段描述
*/
- (void)xgPushDidCollectField:(nonnull NSString *)field andDescription:(nonnull NSString *)description;
/// TPNS网络连接成功
- (void)xgPushNetworkConnected;
/// TPNS网络连接断开
- (void)xgPushNetworkDisconnected;
#pragma mark - ********XGPushDelegate,建议废弃的代理回调********
/**
@brief 监控TPNS服务地启动情况(已废弃)
@param isSuccess TPNS是否启动成功
@param error TPNS启动错误的信息
*/
- (void)xgPushDidFinishStart:(BOOL)isSuccess
error:(nullable NSError *)error
__deprecated_msg("This method is no longer called, using xgPushDidRegisteredDeviceToken:xgToken:error: instead");
/**
@brief 设备token注册TPNS服务的回调
@param deviceToken APNs 生成的Device Token
@param error 错误信息
*/
- (void)xgPushDidRegisteredDeviceToken:(nullable NSString *)deviceToken
error:(nullable NSError *)error
__deprecated_msg("recommended to use xgPushDidRegisteredDeviceToken:xgToken:error: instead");
/**
@brief 监控TPNS服务上报推送消息的情况
@param isSuccess 上报是否成功
@param error 上报失败的信息
*/
- (void)xgPushDidReportNotification:(BOOL)isSuccess
error:(nullable NSError *)error __deprecated_msg("You should no longer call it, SDK handles it automatically.");
/**
@brief 处理iOS 10、macOS10.14 UNUserNotification.framework的对应的方法
@param center [UNUserNotificationCenter currentNotificationCenter]
@param notification 通知对象
@param completionHandler 回调对象,必须调用
*/
- (void)xgPushUserNotificationCenter:(nonnull UNUserNotificationCenter *)center
willPresentNotification:(nullable UNNotification *)notification
withCompletionHandler:(nonnull void (^)(UNNotificationPresentationOptions options))completionHandler __IOS_AVAILABLE(10.0)
__OSX_AVAILABLE(10.14)
__deprecated_msg("recommended to use xgPushDidReceiveRemoteNotification:withCompletionHandler: instead");
/**
@brief 处理iOS 10、macOS10.14 UNUserNotification.framework的对应的方法
@param center [UNUserNotificationCenter currentNotificationCenter]
@param response 用户对通知消息的响应对象
@param completionHandler 回调对象,必须调用
*/
- (void)xgPushUserNotificationCenter:(nonnull UNUserNotificationCenter *)center
didReceiveNotificationResponse:(nullable UNNotificationResponse *)response
withCompletionHandler:(nonnull void (^)(void))completionHandler __IOS_AVAILABLE(10.0)__OSX_AVAILABLE(10.14)
__deprecated_msg("recommended to use xgPushDidReceiveNotificationResponse:withCompletionHandler: instead");
@end
#pragma mark - XGPush类,提供注册及反注册,设置角标等方法
@class XGNotificationConfigure;
/**
@brief 管理TPNS服务的对象,负责注册推送权限、消息的管理、调试模式的开关设置等
*/
@interface XGPush : NSObject
/**
@brief 获取TPNS管理的单例对象
@return TPNS对象
*/
+ (nonnull instancetype)defaultManager;
/**
@brief 关于TPNS SDK接口协议的对象
*/
@property (weak, nonatomic, nullable, readonly) id<XGPushDelegate> delegate;
/**
@brief 应用启动的代理对象
@note 当SDK框架出现自动化处理的异常时,可以通过此属性进行设置,对应用代理对象处理逻辑进行补足
*/
@property (weak, nonatomic, nullable) id<UIApplicationDelegate> appDelegate;
/**
@brief 这个开关表明是否打印TPNS SDK的日志信息
*/
@property (assign, getter=isEnableDebug) BOOL enableDebug;
/**
@brief 调用startXG注册前,赋值此参数可将集成渠道信息传给我们
@note sdkChannel取值如下none、flutter、rn、unity、apicloud、donut、msdk、other
*/
@property (copy, nonatomic, nullable) NSString *sdkChannel;
/**
@brief 管理应用角标
@note 需要在主线程调用
*/
@property (nonatomic) NSInteger xgApplicationBadgeNumber;
/**
@brief 传递didFinishLaunchingWithOptions的launchOptions,用于推送拉起app"启动数"统计
@note 在startXGWithAccessID之前调用,使用[launchOptions mutableCopy]传值
*/
@property (nonatomic, strong) NSMutableDictionary *_Nullable launchOptions;
/**
@brief TPNS管理对象,管理推送的配置选项,例如,注册推送的样式
*/
@property (strong, nonatomic, nullable) XGNotificationConfigure *notificationConfigure;
#pragma mark - ********注册及反注册方法********
/**
@brief 通过使用在TPNS官网注册的应用的信息,启动TPNS服务
@param accessID 通过TPNS管理台申请的 AccessID
@param accessKey 通过TPNS管理台申请的 AccessKey
@param delegate 回调对象
@note 接口所需参数必须要正确填写,反之TPNS服务将不能正确为应用推送消息
*/
- (void)startXGWithAccessID:(uint32_t)accessID accessKey:(nonnull NSString *)accessKey delegate:(nullable id<XGPushDelegate>)delegate;
/**
@brief 停止TPNS服务
@note
调用此方法将导致当前设备不再接受TPNS服务推送的消息.如果再次需要接收TPNS服务的消息推送,则必须需要再次调用startXG:withAccessKey:delegate:方法重启TPNS服务
*/
- (void)stopXGNotification;
#pragma mark - ********实时活动********
/**
@brief 实时活动回调结果
@param result 返回请求的liveActivity的id和token @{@"activityId":@"idValue", @"token":@"tokenValue"}
*/
typedef void (^XGPushLiveActivityCompletion)(NSDictionary *_Nonnull result, NSError *_Nullable error);
/**
@brief 开始实时活动,pushToken有变化时需重新调用
@param activityId liveActivity的名字
@param token liveActivity对应的pushToken,该token有变化时需要及时调用此方法更新
@param completionHandler 请求回执,error为nil代表请求成功
@note 实时活动结束时需要及时调用该方法且pushToken传nil
*/
- (void)startLiveActivityWithId:(nonnull NSString *)activityId
pushToken:(nullable NSString *)token
withCompletionHandler:(nullable XGPushLiveActivityCompletion)completionHandler __API_AVAILABLE(ios(16.1));
#pragma mark - ********其他相关方法********
/**
@brief 上报当前App角标数到TPNS服务器
@param badgeNumber 应用的角标数,传递前请计算好结果值(业务逻辑或者其他SDK可能会影响角标数)
@note 1.此接口是为了实现角标+1的功能,服务器会在这个数值基础上进行角标数新增的操作,调用成功之后,会覆盖之前值。
2.如果使用RestAPI推送,对应badge_type:-2时生效。
3.调用此接口不会改变当前角标值。
*/
- (void)setBadge:(NSInteger)badgeNumber;
/**
@brief 查询设备通知权限是否被用户允许
@param handler 查询结果的返回方法
@note iOS 10 or later 回调是异步地执行
*/
- (void)deviceNotificationIsAllowed:(nonnull void (^)(BOOL isAllowed))handler;
/**
@brief 查看SDK的版本
@return sdk版本号
*/
- (nonnull NSString *)sdkVersion;
/**
@brief 上报日志信息 (TPNS SDK1.2.4.1+)
@param handler 异步地返回上报结果
@note 1.回调参数可能会被触发多次,如果存在多个日志文件
2.回调的result, 上传成功为true, 失败为false
3.回调的errorMessage,如果上传成功,则返回日志文件地址。如果上传失败,则返回错误信息。
*/
- (void)uploadLogCompletionHandler:(nullable void (^)(BOOL result, NSString *_Nullable errorMessage))handler;
/**
@brief 清除TPNS缓存 (TPNS SDK1.2.7.1+)
@return 清除结果
*/
- (BOOL)clearTPNSCache;
/**
@brief 设置采集字段信息 (TPNS SDK1.3.9.4+)
@note 格式为@{@"采集字段key":@"字段值value"},目前key取值仅支持"idfv","deviceName","deviceModel","apsEnvironment"
@note 此接口需在startXG之前调用
*/
- (void)customFieldDic:(nonnull NSDictionary *)fieldDic;
@end
#pragma mark - XGPushTokenManager代理,用于接收账号和标签操作的回调
/**
@brief 设备token绑定的类型,绑定指定类型之后,就可以在TPNS前端按照指定的类型进行指定范围的推送
- XGPushTokenBindTypeNone: 当前设备token不绑定任何类型,可以使用token单推,或者是全量推送(不推荐使用 )
- XGPushTokenBindTypeAccount: 当前设备token与账号绑定之后,可以使用账号推送
- XGPushTokenBindTypeTag: 当前设备token与指定标签绑定之后,可以使用标签推送
@note 此枚举是老版本接口(bind/unbind/update identifier)用于区分业务(账号/标签)的枚举,新版本账号/标签接口已拆分,无需使用此枚举
*/
typedef NS_ENUM(NSUInteger, XGPushTokenBindType) {
XGPushTokenBindTypeNone = (0),
XGPushTokenBindTypeAccount = (1 << 0),
XGPushTokenBindTypeTag = (1 << 1)
};
/**
@brief 定义了一组关于设备token绑定,解绑账号和标签的回调方法,用以监控绑定和解绑的情况
*/
@protocol XGPushTokenManagerDelegate <NSObject>
@optional
#pragma mark - ********账号相关代理回调,TPNS SDK1.2.8.0+********
/**
@brief 对应upsertAccountsByDict:的回调(TPNS SDK1.2.9.0+)
@param accountsDict 账号字典
@param error 绑定账号的结果信息
*/
- (void)xgPushDidUpsertAccountsByDict:(nonnull NSDictionary *)accountsDict error:(nullable NSError *)error;
/**
@brief 对应delAccountsByKeys:的回调(TPNS SDK1.2.9.0+)
@param accountsKeys 账号集合
@param error 解绑账号的结果信息
*/
- (void)xgPushDidDelAccountsByKeys:(nonnull NSSet<NSNumber *> *)accountsKeys error:(nullable NSError *)error;
/**
@brief 对应clearAccounts的回调(TPNS SDK1.2.8.0+)
@param error 清除账号的结果信息
*/
- (void)xgPushDidClearAccountsError:(nullable NSError *)error;
#pragma mark - ********标签相关代理回调,TPNS SDK1.2.8.0+********
/**
@brief 对应appendTags:的回调(TPNS SDK1.2.8.0+)
@param tags 标签数组
@param error 绑定标签的结果信息
*/
- (void)xgPushDidAppendTags:(nonnull NSArray<NSString *> *)tags error:(nullable NSError *)error;
/**
@brief 对应delTags:的回调(TPNS SDK1.2.8.0+)
@param tags 标签数组
@param error 解绑标签的结果信息
*/
- (void)xgPushDidDelTags:(nonnull NSArray<NSString *> *)tags error:(nullable NSError *)error;
/**
@brief 对应clearTags的回调(TPNS SDK1.2.8.0+)
@param error 清除标签的结果信息
*/
- (void)xgPushDidClearTagsError:(nullable NSError *)error;
/**
@brief 对应clearAndAppendTags:的回调(TPNS SDK1.2.8.0+)
@param tags 标签数组
@param error 更新标签的结果信息
*/
- (void)xgPushDidClearAndAppendTags:(nonnull NSArray<NSString *> *)tags error:(nullable NSError *)error;
/**
@brief 对应queryTags:的回调
@param tags 标签数组
@param totalCount 绑定的所有标签总数
@param error 查询标签的结果信息
*/
- (void)xgPushDidQueryTags:(nullable NSArray<NSString *> *)tags totalCount:(NSUInteger)totalCount error:(nullable NSError *)error;
#pragma mark - ********用户属性相关代理回调,个性化推送使用********
/**
@brief 对应upsertAttributes:的回调(TPNS SDK1.2.9.0+)
@param attributes 用户属性
@param keys 无效用户属性键的数组, 未在管理台配置
@param error token对象绑定的结果信息
*/
- (void)xgPushDidUpsertAttributes:(nonnull NSDictionary *)attributes invalidKeys:(nullable NSArray *)keys error:(nullable NSError *)error;
/**
@brief 对应delAttributes:的回调(TPNS SDK1.2.8.0+)
@param attributeKeys 用户属性key组成的集合
@param keys 无效用户属性键的数组, 未在管理台配置
@param error token对象解绑的结果信息
*/
- (void)xgPushDidDelAttributeKeys:(nonnull NSSet *)attributeKeys invalidKeys:(nullable NSArray *)keys error:(nullable NSError *)error;
/**
@brief 对应clearAttributes的回调(TPNS SDK1.2.8.0+)
@param error token对象删除所有用户属性的结果信息
*/
- (void)xgPushDidClearAttributesWithError:(nullable NSError *)error;
/**
@brief 对应clearAndAppendAttributes:的回调(TPNS SDK1.2.8.0+)
@param attributes 用户属性
@param keys 无效用户属性键的数组, 未在管理台配置
@param error token对象更新的结果信息
*/
- (void)xgPushDidClearAndAppendAttributes:(nonnull NSDictionary *)attributes invalidKeys:(nullable NSArray *)keys error:(nullable NSError *)error;
#pragma mark - ********建议废弃的账号、标签相关代理回调********
/**
@brief 对应clearAndAppendAccounts:的回调(TPNS SDK1.2.9.0+)
@param accountsDict 账号数组
@param error 更新账号的结果信息
*/
- (void)xgPushDidClearAndAppendAccountsByDict:(nonnull NSDictionary *)accountsDict
error:(nullable NSError *)error
__deprecated_msg("recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:");
/**
@brief 对应appendAccounts:的回调(TPNS SDK1.2.8.0+)
@param accounts 账号数组
@param error 绑定账号的结果信息
*/
- (void)xgPushDidAppendAccounts:(nonnull NSArray<NSDictionary *> *)accounts
error:(nullable NSError *)error
__deprecated_msg("recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:");
/**
@brief 对应delAccounts:的回调(TPNS SDK1.2.8.0+)
@param accounts 账号数组
@param error 解绑账号的结果信息
*/
- (void)xgPushDidDelAccounts:(nonnull NSArray<NSDictionary *> *)accounts
error:(nullable NSError *)error
__deprecated_msg("recommended to use delAccountsByKeys: to add accounts,and delegete update to xgPushDidDelAccountsByKeys:error:");
/**
@brief 对应clearAndAppendAccounts:的回调(TPNS SDK1.2.8.0+)
@param accounts 账号数组
@param error 更新账号的结果信息
*/
- (void)xgPushDidClearAndAppendAccounts:(nonnull NSArray<NSDictionary *> *)accounts
error:(nullable NSError *)error
__deprecated_msg("recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:");
/**
@brief 监控token对象绑定的情况
@param identifier token对象绑定的标识
@param type token对象绑定的类型
@param error token对象绑定的结果信息
*/
- (void)xgPushDidBindWithIdentifier:(nonnull NSString *)identifier
type:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg(
"recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:;use appendTags: to "
"add tags, and delegete update to xgPushDidAppendTags:error:");
/**
@brief 监控token对象解绑的情况
@param identifier token对象解绑的标识
@param type token对象解绑的类型
@param error token对象解绑的结果信息
*/
- (void)xgPushDidUnbindWithIdentifier:(nonnull NSString *)identifier
type:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg("recommended to use delAccounts: to delete accounts,and delegete update to xgPushDidDelAccounts:error:; use delTags: to delete "
"tags, and delegete update to xgPushDidDelTags:error:");
/**
@brief 监控token对象identifiers绑定的情况
@param identifiers token对象绑定的标识
@param type token对象绑定的类型
@param error token对象绑定的结果信息
*/
- (void)xgPushDidBindWithIdentifiers:(nonnull NSArray *)identifiers
type:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg(
"recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:;use appendTags: to "
"add tags, and delegete update to xgPushDidAppendTags:error:");
/**
@brief 监控token对象identifiers解绑的情况
@param identifiers token对象解绑的标识
@param type token对象解绑的类型
@param error token对象解绑的结果信息
*/
- (void)xgPushDidUnbindWithIdentifiers:(nonnull NSArray *)identifiers
type:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg("recommended to use delAccounts: to delete accounts,and delegete update to xgPushDidDelAccounts:error:; use delTags: to delete "
"tags, and delegete update to xgPushDidDelTags:error:");
/**
@brief 监控token对象更新已绑定标识的情况
@param identifiers token对象更新后的标识
@param type token对象更新类型
@param error token对象更新标识的结果信息
*/
- (void)xgPushDidUpdatedBindedIdentifiers:(nonnull NSArray *)identifiers
bindType:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg("recommended to use upsertAccountsByDict: to add accounts,and delegete update to xgPushDidUpsertAccountsByDict:error:; use "
"clearAndAppendTags: to clear and append tags, and delegete update to xgPushDidClearAndAppendTags:error:");
/**
@brief 监控清除token对象绑定标识的情况
@param type token对象清除的类型
@param error token对象清除标识的结果信息
*/
- (void)xgPushDidClearAllIdentifiers:(XGPushTokenBindType)type
error:(nullable NSError *)error
__deprecated_msg("recommended to use clearAccounts to clear accounts,and delegete update to xgPushDidClearAccountsError:; use clearTags to clear "
"tags, and delegete update to xgPushDidClearTagsError:");
@end
#pragma mark - XGPushTokenManager,提供账号和标签的绑定与解绑操作
@interface XGPushTokenManager : NSObject
/**
@brief 创建设备token的管理对象,用来管理token的绑定与解绑操作
@return 设备token管理对象
@note 此类的 APIs 调用都是以 Token 在TPNS服务上完成注册为前提
*/
+ (nonnull instancetype)defaultTokenManager;
- (nonnull instancetype)init NS_UNAVAILABLE;
/**
@brief 设备token管理操作的代理对象
*/
@property (weak, nonatomic, nullable) id<XGPushTokenManagerDelegate> delegate;
/**
@brief 返回当前设备token的字符串,由苹果APNs生成
*/
@property (copy, nonatomic, nullable, readonly) NSString *deviceTokenString;
/**
@brief 返回当前TPNS 服务生成的token字符串
*/
@property (copy, nonatomic, nullable, readonly) NSString *xgTokenString;
#pragma mark - ********账号相关方法,TPNS SDK1.2.8.0+********
/**
@brief 添加或更新账号(TPNS SDK1.2.9.0+)
@param accountsDict 账号字典
@note 若原来没有该类型账号,则添加;若原来有,则覆盖
@note 账号类型和账号名称一起作为联合主键
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 需要使用字典类型,key为账号类型,value为账号,示例:@{@(accountType):@"account"};
Objective-C的写法 : @{@(0):@"account0",@(1):@"account1"};
Swift的写法:[NSNumber(0):@"account0",NSNumber(1):@"account1"]
@note 账号类型详情可参考文档: https://cloud.tencent.com/document/product/548/50102
*/
- (void)upsertAccountsByDict:(nonnull NSDictionary<NSNumber *, NSString *> *)accountsDict;
/**
@brief 添加或更新用户手机号,等于调用upsertAccountsByDict:@{@(1002):@"具体手机号"}。(TPNS SDK1.3.2.0+)
@param phoneNumber E.164标准,格式为+[国家或地区码][手机号],例如+8613711112222。SDK内部加密传输。
@note 若原来没有该手机号,则添加;若原来有,则覆盖
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 如需要删除手机号,调用delAccountsByKeys:[[NSSet alloc] initWithObjects:@(1002), nil]
*/
- (void)upsertPhoneNumber:(nonnull NSString *)phoneNumber;
/**
@brief 删除账号(TPNS SDK1.2.9.0+)
@param accountsKeys 账号类型组成的集合
@note 删除指定账号类型下的所有账号
@note 使用集合且key是固定要求
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
*/
- (void)delAccountsByKeys:(nonnull NSSet<NSNumber *> *)accountsKeys;
/**
@brief 清空已有账号(TPNS SDK1.2.8.0+)
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
*/
- (void)clearAccounts;
#pragma mark - ********标签相关方法,TPNS SDK1.2.8.0+********
/**
@brief 添加标签((TPNS SDK1.2.8.0+)
@param tags 标签数组
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note tags为标签字符串数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
*/
- (void)appendTags:(nonnull NSArray<NSString *> *)tags;
/**
@brief 删除标签(TPNS SDK1.2.8.0+)
@param tags 指定解绑标识,标签字符串不允许有空格或者是tab字符
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用;若需要清除所有标识,建议使用 clearAllIdentifiers:;
@note tags为标签字符串数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
*/
- (void)delTags:(nonnull NSArray<NSString *> *)tags;
/**
@brief 清空已有标签(TPNS SDK1.2.8.0+)
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
*/
- (void)clearTags;
/**
@brief 清空已有标签,然后批量添加标签(TPNS SDK1.2.8.0+)
@param tags 标签标识字符串数组,标签字符串不允许有空格或者是tab字符
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note tags为标签字符串数组,最多不超过500个(标签字符串不允许有空格或者是tab字符,长度不超过50)
*/
- (void)clearAndAppendTags:(nonnull NSArray<NSString *> *)tags;
/**
@brief 查询当前设备(tpns token为准)绑定的标签
@param offset 此次查询的偏移大小
@param limit 此次查询的分页大小, 最大200
@note 举例:"limit 3 offset 1" 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据
举例: offset为0,则返回最新的标签集合
*/
- (void)queryTags:(NSUInteger)offset limit:(NSUInteger)limit;
#pragma mark - ********用户属性相关方法,个性化推送使用********
/**
 @brief 添加或更新用户属性( key-value结构,若原来没有该key的用户属性value,则新增; 若原来有该key的用户属性value,则更新该value)(TPNS SDK1.2.8.0+)
 @param attributes 用户属性字符串字典,字符串不允许有空格或者是tab字符
 @note 需要先在管理台配置用户属性的键,才能操作成功
 @note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
 @note 字符串不允许有空格或者是tab字符
 @note 使用字典且key是固定要求,Objective-C的写法 : @{@"gender": @"Female", @"age": @"29"};Swift的写法:["gender":"Female", "age": "29"]
 */
- (void)upsertAttributes:(nonnull NSDictionary<NSString *, NSString *> *)attributes;
/**
 @brief 删除用户属性(TPNS SDK1.2.8.0+)
@param attributeKeys 用户属性key组成的集合
 @note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
 @note 需要先在管理台配置用户属性的键,才能操作成功
 @note 字符串不允许有空格或者是tab字符
 @note 使用集合且key是固定要求
 */
- (void)delAttributes:(nonnull NSSet<NSString *> *)attributeKeys;
/**
 @brief 清空已有用户属性(TPNS SDK1.2.8.0+)
 @note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
 */
- (void)clearAttributes;
/**
 @brief 清空已有用户属性,然后批量添加用户属性(TPNS SDK1.2.8.0+)
 @param attributes 用户属性字符串字典,字符串不允许有空格或者是tab字符
 @note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
 @note 需要先在管理台配置用户属性的键,才能操作成功
 @note 字符串不允许有空格或者是tab字符
 @note 使用字典且key是固定要求,Objective-C的写法 : @{@"gender": @"Female", @"age": @"29"};Swift的写法:["gender":"Female", "age": "29"]
 */
- (void)clearAndAppendAttributes:(nonnull NSDictionary<NSString *, NSString *> *)attributes;
#pragma mark - ********数据分析相关,需要集成XGMTACloud.framework********
/**
@brief 自定义事件上报
@param eventID 事件ID
@param kvs 键值对,例如@{@"para1": @"value1" }
*/
- (void)trackCustomKeyValueEvent:(nonnull NSString *)eventID kvs:(nullable NSDictionary *)kvs;
@end
#pragma mark - XGNotificationAction,可以在通知栏中点击的事件对象
/**
@brief 点击行为对象的属性配置
- XGNotificationActionOptionNone: 无
- XGNotificationActionOptionAuthenticationRequired: 需要认证的选项
- XGNotificationActionOptionDestructive: 具有破坏意义的选项
- XGNotificationActionOptionForeground: 打开应用的选项
*/
typedef NS_ENUM(NSUInteger, XGNotificationActionOptions) {
XGNotificationActionOptionNone = (0),
XGNotificationActionOptionAuthenticationRequired = (1 << 0),
XGNotificationActionOptionDestructive = (1 << 1),
XGNotificationActionOptionForeground = (1 << 2)
};
/**
* @brief 定义了一个可以在通知栏中点击的事件对象
*/
@interface XGNotificationAction : NSObject
/**
@brief 在通知消息中创建一个可以点击的事件行为
@param identifier 行为唯一标识
@param title 行为名称
@param options 行为支持的选项
@return 行为对象
@note 通知栏带有点击事件的特性,只有在iOS 8+、macOS 10.14+ 以上支持,iOS 8、macOS10.14 or earlier的版本,此方法返回空
*/
+ (nullable id)actionWithIdentifier:(nonnull NSString *)identifier title:(nonnull NSString *)title options:(XGNotificationActionOptions)options;
/**
@brief 点击行为的标识
*/
@property (nonatomic, copy, readonly, nullable) NSString *identifier;
/**
@brief 点击行为的标题
*/
@property (nonatomic, copy, readonly, nullable) NSString *title;
/**
@brief 点击行为的特性
*/
@property (readonly, nonatomic) XGNotificationActionOptions options;
@end
#pragma mark - XGNotificationCategory,管理一组关联的Action,以实现不同分类对应不同的Actions
/**
@brief 分类对象的属性配置
- XGNotificationCategoryOptionNone: 无
- XGNotificationCategoryOptionCustomDismissAction: 发送消失事件给UNUserNotificationCenter(iOS 10+、macOS 10.14+ or later)对象
- XGNotificationCategoryOptionAllowInCarPlay: 允许CarPlay展示此类型的消息
*/
typedef NS_OPTIONS(NSUInteger, XGNotificationCategoryOptions) {
XGNotificationCategoryOptionNone = (0),
XGNotificationCategoryOptionCustomDismissAction = (1 << 0),
XGNotificationCategoryOptionAllowInCarPlay = (1 << 1)
};
/**
* 通知栏中消息指定的分类,分类主要用来管理一组关联的Action,以实现不同分类对应不同的Actions
*/
@interface XGNotificationCategory : NSObject
/**
@brief 创建分类对象,用以管理通知栏的Action对象
@param identifier 分类对象的标识
@param actions 当前分类拥有的行为对象组
@param intentIdentifiers 用以表明可以通过Siri识别的标识
@param options 分类的特性
@return 管理点击行为的分类对象
@note 通知栏带有点击事件的特性,只有在iOS 8+ 、macOS 10.14+ 以上支持,iOS 8 、macOS 10.14 or earlier的版本,此方法返回空
*/
+ (nullable id)categoryWithIdentifier:(nonnull NSString *)identifier
actions:(nullable NSArray<id> *)actions
intentIdentifiers:(nullable NSArray<NSString *> *)intentIdentifiers
options:(XGNotificationCategoryOptions)options;
/**
@brief 分类对象的标识
*/
@property (nonnull, readonly, copy, nonatomic) NSString *identifier;
/**
@brief 分类对象拥有的点击行为组
*/
@property (nonnull, readonly, copy, nonatomic) NSArray<XGNotificationAction *> *actions;
/**
@brief 可用以Siri意图的标识组
*/
@property (readonly, copy, nonatomic, nullable) NSArray<NSString *> *intentIdentifiers;
/**
@brief 分类的特性
*/
@property (readonly, nonatomic) XGNotificationCategoryOptions options;
@end
#pragma mark - XGNotificationConfigure,配置消息通知的样式和行为特性
/**
@brief 注册通知支持的类型
- XGUserNotificationTypeNone: 无
- XGUserNotificationTypeBadge: 支持应用角标
- XGUserNotificationTypeSound: 支持铃声
- XGUserNotificationTypeAlert: 支持弹框
- XGUserNotificationTypeCarPlay: 支持CarPlay,iOS 10.0+
- XGUserNotificationTypeCriticalAlert: 支持紧急提醒播放声音, iOS 12.0+
- XGUserNotificationTypeProvidesAppNotificationSettings: 让系统在应用内通知设置中显示按钮, iOS 12.0+
- XGUserNotificationTypeProvisional: 能够将非中断通知临时发布到 Notification Center, iOS 12.0+
- XGUserNotificationTypeNewsstandContentAvailability: 支持 Newsstand, iOS 3.0–8.0
*/
typedef NS_OPTIONS(NSUInteger, XGUserNotificationTypes) {
XGUserNotificationTypeNone = (0),
XGUserNotificationTypeBadge = (1 << 0),
XGUserNotificationTypeSound = (1 << 1),
XGUserNotificationTypeAlert = (1 << 2),
XGUserNotificationTypeCarPlay = (1 << 3),
XGUserNotificationTypeCriticalAlert = (1 << 4),
XGUserNotificationTypeProvidesAppNotificationSettings = (1 << 5),
XGUserNotificationTypeProvisional = (1 << 6),
XGUserNotificationTypeNewsstandContentAvailability = (1 << 3)
};
/**
@brief 管理推送消息通知栏的样式和特性
*/
@interface XGNotificationConfigure : NSObject
/**
@brief 配置通知栏对象,主要是为了配置消息通知的样式和行为特性
@param categories 通知栏中支持的分类集合
@param types 注册通知的样式
@return 配置对象
*/
+ (nullable instancetype)configureNotificationWithCategories:(nullable NSSet<id> *)categories types:(XGUserNotificationTypes)types;
- (nonnull instancetype)init NS_UNAVAILABLE;
/**
@brief 返回消息通知栏配置对象
*/
@property (readonly, strong, nonatomic, nullable) NSSet<XGNotificationCategory *> *categories;
/**
@brief 返回注册推送的样式类型
*/
@property (readonly, nonatomic) XGUserNotificationTypes types;
/**
@brief 默认的注册推送的样式类型
*/
@property (readonly, nonatomic) XGUserNotificationTypes defaultTypes;
@end
#pragma mark - XGPush Deprecated
/**
@brief 管理TPNS服务的对象,负责注册推送权限、消息的管理、调试模式的开关设置等
*/
@interface XGPush (Deprecated)
/**
@brief 返回TPNS服务的状态
*/
@property (assign, readonly)
BOOL xgNotificationStatus __deprecated_msg("Instead, you should get the status by xgPushDidRegisteredDeviceToken:xgToken:error:");
/**
@brief 设备在TPNS服务中的是否处于注册状态
*/
@property (assign, readonly)
BOOL deviceDidRegisteredXG __deprecated_msg("Instead, you should get the status by xgPushDidRegisteredDeviceToken:xgToken:error:");
/**
@brief 通过使用在TPNS官网注册的应用的信息,启动TPNS服务
@param appID 通过TPNS管理台申请的 AccessID
@param appKey 通过TPNS管理台申请的 AccessKey
@param delegate 回调对象
@note 接口所需参数必须要正确填写,反之TPNS服务将不能正确为应用推送消息
*/
- (void)startXGWithAppID:(uint32_t)appID
appKey:(nonnull NSString *)appKey
delegate:(nullable id<XGPushDelegate>)delegate __deprecated_msg("You should use startXGWithAccessID instead");
#if TARGET_OS_IPHONE
- (void)reportXGNotificationInfo:(nonnull NSDictionary *)info __deprecated_msg("You should no longer call it, SDK handles it automatically.");
#endif
/**
@brief 上报推送消息的用户行为
@param response 用户行为
@note 此接口即统计推送消息中开发者预先设置或者是系统预置的行为标识,可以了解到用户是如何处理推送消息的,又统计消息的点击次数
*/
- (void)reportXGNotificationResponse:(nullable UNNotificationResponse *)response __IOS_AVAILABLE(10.0)__OSX_AVAILABLE(10.14)
__deprecated_msg("You should no longer call it, SDK handles it automatically.");
@end
#pragma mark - XGPushTokenManager Deprecated
@interface XGPushTokenManager (Deprecated)
/**
@brief 创建设备token的管理对象,用来管理token的绑定与解绑操作
@return 设备token管理对象
@note 此类的 APIs 调用都是以 Token 在TPNS服务上完成注册为前提
*/
#pragma mark - ********建议废弃的账号、标签相关方法********
/**
@brief 清空已有账号,然后批量添加账号(TPNS SDK1.2.9.0+)
@param accountsDict 账号字典
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 需要使用字典类型,key为账号类型,value为账号,示例:@{@(accountType):@"account"};
Objective-C的写法 : @{@(0):@"account0",@(1):@"account1"};
Swift的写法:[NSNumber(0):@"account0",NSNumber(1):@"account1"]
*/
- (void)clearAndAppendAccountsByDict:(nonnull NSDictionary<NSNumber *, NSString *> *)accountsDict
__deprecated_msg("recommended to use upsertAccountsByDict:");
/**
@brief 添加账号(TPNS SDK1.2.8.0+)
@param accounts 账号数组
@note 账号类型和账号名称一起作为联合主键
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"accountType":@(0),@"account":identifier}];
Swift的写法:[["accountType":NSNumber(0),"account":identifier]]
*/
- (void)appendAccounts:(nonnull NSArray<NSDictionary *> *)accounts __deprecated_msg("recommended to use upsertAccountsByDict:");
/**
@brief 删除账号(TPNS SDK1.2.9.0+)
@param accounts 账号数组
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"accountType":@(0),@"account":identifier}];
Swift的写法:[["accountType":NSNumber(0),"account":identifier]]
*/
- (void)delAccounts:(nonnull NSArray<NSDictionary *> *)accounts __deprecated_msg("recommended to use delAccountsByKeys:");
/**
@brief 清空已有账号,然后批量添加账号(TPNS SDK1.2.8.0+)
@param accounts 账号数组
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"accountType":@(0),@"account":identifier}];
Swift的写法:[["accountType":NSNumber(0),"account":identifier]]
*/
- (void)clearAndAppendAccounts:(nonnull NSArray<NSDictionary *> *)accounts __deprecated_msg("recommended to use upsertAccountsByDict:");
/**
@brief 为token对象设置绑定类型和标识
@param identifier 指定绑定标识
@param type 指定绑定类型
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 对于标签操作,标签字符串不允许有空格或者是tab字符
*/
- (void)bindWithIdentifier:(nonnull NSString *)identifier
type:(XGPushTokenBindType)type __deprecated_msg("recommended to use upsertAccountsByDict: or appendTags:");
/**
@brief 根据类型和标识为token对象解绑
@param identifier 指定解绑标识
@param type 指定解绑类型
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用;若需要清除所有标识,建议使用 clearAllIdentifiers:
@note 对于标签操作,标签字符串不允许有空格或者是tab字符
*/
- (void)unbindWithIdentifer:(nonnull NSString *)identifier
type:(XGPushTokenBindType)type __deprecated_msg("recommended to use delAccounts: or delTags:");
/**
@brief 为token对象设置绑定类型和标识
@param identifiers 指定绑定标识,标签字符串不允许有空格或者是tab字符
@param type 指定绑定类型
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 对于标签操作identifiers为标签字符串数组(标签字符串不允许有空格或者是tab字符)
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"account":identifier, @"accountType":@(0)}];
Swift的写法:[["account":identifier, "accountType":NSNumber(0)]]
*/
- (void)bindWithIdentifiers:(nonnull NSArray *)identifiers
type:(XGPushTokenBindType)type __deprecated_msg("recommended to use upsertAccountsByDict: or appendTags:");
/**
@brief 根据类型和标识为token对象解绑
@param identifiers 指定解绑标识,标签字符串不允许有空格或者是tab字符
@param type 指定解绑类型
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用;若需要清除所有标识,建议使用 clearAllIdentifiers:;
@note 对于标签操作identifiers为标签字符串数组(标签字符串不允许有空格或者是tab字符)
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"account":identifier, @"accountType":@(0)}];
Swift的写法:[["account":identifier, "accountType":NSNumber(0)]]
*/
- (void)unbindWithIdentifers:(nonnull NSArray *)identifiers
type:(XGPushTokenBindType)type __deprecated_msg("recommended to use delAccounts: or delTags:");
/**
@brief 根据类型,覆盖原有的标识;若之前没有绑定标识,则会执行新增标识
@param identifiers 标签标识字符串数组,标签字符串不允许有空格或者是tab字符
@param type 标识类型
@note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
@note 对于标签操作,标签字符串不允许有空格或者是tab字符
@note 对于账号操作,需要使用字典数组且key是固定要求,Objective-C的写法 : @[@{@"account":identifier, @"accountType":@(0)}];
Swift的写法:[["account":identifier, "accountType":NSNumber(0)]]
*/
- (void)updateBindedIdentifiers:(nonnull NSArray *)identifiers
bindType:(XGPushTokenBindType)type __deprecated_msg("recommended to use upsertAccountsByDict: or clearAndAppendTags:");
/**
 @brief 清除所有用户属性
 @note 此接口应该在xgPushDidRegisteredDeviceToken:xgToken:error:返回正确之后被调用
 */
- (void)clearAllIdentifiers:(XGPushTokenBindType)type __deprecated_msg("recommended to use clearAccounts or clearTags");
@end
... ...