Fork me on GitHub

Flutter ~ Dart语法特性

一. Dart 的基本语法

1、程序入口

  • Dart 的入口也是 main 函数,且没有返回值。
  • 传递给 main 的命令行参数,会存放在 List<String> args 中。
  • 定义字符串可以使用单引号或双引号。
  • 每行语句必须使用分号结尾。
1
2
3
main(List<String> args) {
print("Hello World");
}

2、声明变量

  • 明确声明:变量类型 变量名称 = 赋值;

  • 类型推导:var / dynamic / const / final 变量名称 = 赋值;

    阅读更多...

iOS开发之 ~ iOS14 广告标识IDFA

用手机自带Safari 打开 iOS14_Beta_Profile 可以进行下载描述文件安装体验iOS14系统

适配方案:

1.需要在info.plist 中添加 NSUserTrackingUsageDescription 对应的描述文案

2.iOS14下新增了IDFA 权限申请 API 添加申请权限的代码,代码如下:

​ 首先要导入系统框架

1
2
@import AdSupport;
@import AppTrackingTransparency;

​ 适配代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
+ (NSString *)idfa
{
__block NSString *advertisingId = @"";

if (@available(iOS 14, *)) {
if (ATTrackingManager.trackingAuthorizationStatus != ATTrackingManagerAuthorizationStatusAuthorized) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
NSLog(@"用户选择了同意授权IDFA权限 %@", advertisingId);
advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
} else {
NSLog(@"用户选择了拒绝授权IDFA权限");
}
}];
} else {
advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
} else {
// ios14以下

if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
} else {
NSLog(@"请在设置 -> 隐私 -> 广告 -> 限制广告跟踪打开广告跟踪功能");
}
}
return advertisingId;
}
阅读更多...

iOS开发之 ~ dSYM 文件结构

1. 获取Crash文件

  • iPhone设备上获取: 设置 -> 隐私 -> 分析与改进 -> 分析数据 -> 找到对应应用的.ips文件(获取到的 .ips 改后缀为 .crash 即可)

  • Xcode 上查看: Xcode -> Window -> Devices and Simulators -> 选中Crash的设备 -> View Device Logs -> This Device -> 找到对应的进程crash文件 -> 右键Export Log -> 保存到需要保存的位置

阅读更多...

iOS开发之 ~ NSUUID , CFUUID 唯一标识符

CFUUID

从iOS2.0开始,CFUUID就已经出现了。它是CoreFoundatio包的一部分,因此API属于C语言风格。CFUUIDCreate 方法用来创建CFUUIDRef,并且可以获得一个相应的NSString字符串

如下代码:

1
2
3
4
5
6
CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);

NSString *cfuuidString = (NSString
*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));

CFRelease(cfuuid);

获得的这个CFUUID值系统并没有存储。每次调用CFUUIDCreate,系统都会返回一个新的唯一标示符。

阅读更多...

iOS开发之 ~ IDFA唯一标识符 (二)

在此浅谈一下App再提交AppStore的时候,需要选择你的应用是否用到了IDFA,用到IDFA的场景是哪一种?下面来描述一下.此文也有参考别人的博客!

以上4项代表的含义:

1. 在 App 内投放广告

服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。

阅读更多...

iOS开发之 ~ IDFA唯一标识符 (一)

通过网上查资料看,我发现有一部分人使用IDFA用来做设备唯一标识,我个人觉的不是很好!有很大的缺陷,为什么呢?下面来详细解说

要使用IDFA首先要导入系统库 @import AdSupport;

1
@property(nonatomic, readonly) NSUUID *advertisingIdentifier;

IDFA是每个设备特有的字母数字串,仅用于服务广告。(官方解释)

可以理解为广告标识符,在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。广告标示符是由系统存储着的。
适用于对外:例如广告推广,换量等跨应用的用户追踪等。

阅读更多...

Mac ~ 如何解决 app已损坏,打不开。你应该将它移到废纸篓

如遇:「xxx.app已损坏,打不开.你应该将它移到废纸篓」,并非你安装的软件已损坏,而是Mac系统的安全设置问题,因为这些应用都是破解或者汉化的,那么解决方法就是临时改变Mac系统安全设置。

出现这个问题的解决方法:

修改系统配置:系统偏好设置 -> 安全性与隐私。修改为任何来源

如果没有这个选项的话,打开终端,执行以下对应命令

阅读更多...
  • Copyrights © 2012-2022 Soto Pu

请我喝杯咖啡吧~

支付宝
微信