iOS
林新发
Keep Reading , Keep Writing , Keep Coding.
展开
-
关于iOS XCode的entitlements文件
entitlements,全称 code signing entitlements。苹果官方的说明:https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.htmlEntitlements confer specific capabilities or security permissions t原创 2020-08-03 15:28:56 · 9759 阅读 · 0 评论 -
XCode9之后命令打包需要使用OptionExport.plist
文章目录一、关于OptionExport.plist二、OptionExport.plist范例三、OptionExport.plist各字段说明四、补充一、关于OptionExport.plistOptionExport.plist是一个配置文件,里面配置了证书信息什么的。XCode9以后如果使用命令打包,就需要有这个配置文件。创建ExportOptions.plist的方式有两种:1 XCode执行发布,生产ipa同时会同时生成这个文件。2 也可以手动创建ExportOptions.plis原创 2020-08-02 16:25:19 · 1990 阅读 · 0 评论 -
iOS Info.plist知多少
文章目录一、什么是Info.plist二、Info.plist长什么样1 Info.plist的打开方式2 每个key的含义三、Info.plist中的常见的keys类别1 Core Foundation Keys2 Lanch Services Keys3 Cocoa Keys4 App Extension Keys四、读取Info.plist一、什么是Info.plistiOS中很多功能需要配置Info.plist才能实现,如设置后台运行、支持打开的文件类型等。了解Info.plist中各字段及其含原创 2020-08-01 21:38:27 · 16732 阅读 · 0 评论 -
游戏性能指标参考,游戏质量白皮书下载
移动全平台性能测试分析专家PerfDog性能狗官网:https://perfdog.qq.com/2019年中国移动游戏质量白皮书下载下载地址:https://wetest.qq.com/white-paper/download/原创 2020-07-30 17:37:37 · 1935 阅读 · 0 评论 -
Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
文章目录一、SystemInfo.deviceModel二、SystemInfo.deviceName三、SystemInfo.deviceType四、SystemInfo.deviceUniqueIdentifierSystemInfo.graphicsDeviceIDSystemInfo.graphicsDeviceType五、SystemInfo.graphicsDeviceName六、SystemInfo.graphicsDeviceVendor七、SystemInfo.graphicsDevice原创 2020-07-23 10:27:47 · 11448 阅读 · 2 评论 -
记一次iOS闪退问题的定位:NSLog闪退
记一次iOS闪退问题的定位,同事接了极光SDK,调用setAlias接口的时候闪退了,通过爱思助手拿到日志如下Jul 17 10:17:48 iPhone12 inhouse[7514] <Notice>: [Bugly] Fatal signal(11) raised.Jul 17 10:17:48 iPhone12 inhouse[7514] <Notice>: [Bugly] Trapped fatal signal 'SIGSEGV(11)' ( "0 l原创 2020-07-17 11:32:13 · 1525 阅读 · 0 评论 -
Unity iOS接SDK前先要了解的知识(Objective-C)
文章目录一、前言二、Objective-C代码的文件扩展名:.h、.m和.mm三、#include与#import四、@interface与@implementation五、方法前的+和-五、创建和初始化对象:alloc、init六、NSString字符串七、匿名函数一、前言Unity项目开发,iOS平台要接SDK的话,就需要写Objective-C代码,对于没使用过Objective-C的小伙伴可能会害怕,不要怕,我整理了接SDK需要了解的关键的Objective-C知识。二、Objective-C原创 2020-07-16 19:41:01 · 1848 阅读 · 0 评论 -
Unity iOS接SDK,定制UnityAppController
开发 Unity3d 手机游戏的时候,不免要和第三方 SDK 打交道。于是总是需要实现自己的 AppController 来维护 SDK 的生命周期。Unity3d 提供了一套插件机制,可以很方便地在项目中使用自己的 CustomAppController 继承并重写默认的 UnityAppController 的方法。在 Unity 插件目录下创建以下文件:Assets/Plugins/iOS/CustomAppController.mm文件名必须是 xxxxAppController.mm,x原创 2020-07-15 08:56:27 · 2596 阅读 · 0 评论 -
微信分享显示“未验证应用”问题(辅助标签:Universal Link)
文章目录一、前言二、关于Universal Links三、如何添加Universal Links1、勾选 Associated Domains2、添加Universal Links3、配置apple-app-site-association4、上传apple-app-site-association到服务器(服务器需要支持https)5、工程中添加处理方法6、向微信注册你的应用程序id和Universal Links一、前言微信官方说明:《微信开放平台移动应用 SDK 更新提醒》二、关于Univers原创 2020-06-15 19:55:23 · 14172 阅读 · 0 评论 -
Application.persistentDataPath在iOS手机中的目录在哪里
iOS手机要先越狱,然后就可以进入下面这个目录/var/mobile/Containers/Data/Application/包名/Documents它就是对应的Application.persistentDataPath目录原创 2020-06-10 17:16:07 · 3296 阅读 · 0 评论 -
手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)
Android篇1 IMEI和MEID(1) IMEI(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,只有Android手机才获取的到,是由15位数字组成的"电子串号",比如像这样 359881030314356,它与每台移动电话机一一对应,而且该码是全世界唯一的。它是GSM设备返回的,并且是写在主板上的,...原创 2019-11-05 13:58:18 · 73814 阅读 · 17 评论 -
python解析mobileprovision文件
做iOS应用开发的时候,肯定会涉及到证书文件,也肯定会涉及到一个.mobileprovision的文件,.mobileprovision文件中有个几个关键的信息:Name,UUID,TeanName我们可以用notepad++等文本编辑器打开并看到,但是每次都要打开notepad++并进行关键字查找,这样效率有点低,可以写个python脚本进行自动解析import ostags = {"N...原创 2019-05-13 14:29:01 · 3230 阅读 · 1 评论 -
如何编译各平台使用的库-以编译tolua为例
转载注明出处: https://www.jianshu.com/p/5a35602adef8?appinstall=0做U3D手机游戏,最热门的技术组合是c#+lua,使用lua是因为可以热更新,而将c#与lua粘合起来的框架,目前最热门的是tolua框架,tolua框架有两部分组成,一个是c#部分,一个是c部分,整个框架在游戏代码中的位置是这样子的。如下图所示:tolua C 起到承上启...转载 2019-05-09 20:09:48 · 3281 阅读 · 0 评论 -
Unity iOS定制 UnityAppController
开发 Unity3d 手机游戏的时候,不免要和第三方 SDK 打交道。于是总是需要实现自己的 AppController 来维护 SDK 的生命周期。Unity3d 提供了一套插件机制,可以很方便地在项目中使用自己的 CustomAppController继承并重写默认的 UnityAppController的方法。0x00 CustomAppController在 Unity 插件目录下创...转载 2019-06-13 10:53:12 · 3277 阅读 · 0 评论 -
Mono为何能跨平台
概念JIT 编译 (JIT compilation),运行时需要代码时,将 Microsoft 中间语言 (MSIL) 转换为机器码的编译。CLR (Common Language Runtime)是通用语言运行时。和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离。机器码 (machine code),学名机器语言指令,...转载 2019-04-24 14:00:10 · 1237 阅读 · 0 评论 -
Unity iOS本地插件的制作
iOS中,将C、C++、Objective-C代码,以及实现面向iOS编译的库作为本地插件使用。以制作一个获取地理位置的本地插件为例。创建名为 “LocationPlugin.mm” 的文件,放在Assets/Plugins/iOS文件夹下,代码如下:// LocationPlugin.mm#import <Foundation/Foundation.h>#import &l...原创 2019-04-13 22:32:34 · 998 阅读 · 0 评论 -
iOS加固,需要用到root权限,证书无法识别的问题
问题命令行下切换成root账户sudo -i退出root账户exit执行加固之类,提示找不到证书,证书已经双击安装了,为什么找不到呢error: No profile for team 'XXXXXXX_TeamID' matching 'dis_xxx证书' found: Xcode couldn't find any provisioning profiles matchin...原创 2019-07-04 16:12:27 · 877 阅读 · 0 评论 -
脚本检查iOS app证书过期时间信息
转载注明出处:https://www.jianshu.com/p/5f92668af6b7日常iOS开发中,有时候需要检查ipa文件的证书信息。unzip -q MyApp.ipacodesign -d --extract-certificates Payload/*.appopenssl x509 -inform DER -in codesign0 -noout -nameopt -on...转载 2019-08-08 19:41:21 · 2485 阅读 · 0 评论 -
iOS上传app到AppStore Connect提示Missing Purpose String in info.plist
翻译一下就是解决办法:在info.plist中加入如下配置<key>NSLocationAlwaysUsageDescription</key><string>游戏需要您同意才能使用地理位置获取的接口</string><key>NSLocationWhenInUseUsageDescription</key>&...原创 2019-08-09 14:25:49 · 977 阅读 · 0 评论 -
Uniy iOS兼容ipv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网iOS 9.0、OS X 10.11 以上的系统 在IPv6的环境下是支持IP地址访问网络的。所以大家测试机如果是 iOS9.0以上的系统,可以直接通过IP访问。这是因为iOS 9.0之后 NSURLSession和CFNetwork能把IPv4的地址 合成IPv6的地址(在DNS64/NAT64网络环境中)。i...原创 2019-10-16 11:11:46 · 512 阅读 · 0 评论 -
iOS消息推送(APNS的推送机制、信鸽)
APNS的推送机制与Android上我们自己实现的推送服务不一样,Apple对设备的控制非常严格,消息推送的流程必须要经过APNs:这里 Provider 是指某个应用的Developer,当然如果开发者使用信鸽的服务,把发送消息的请求委托给信鸽,那么这里的Provider就是信鸽的推送服务程序了。上图可以分为三步:第一步:信鸽推送服务程序把要发送的消息、目的设备的唯一标识打包,发给APN...原创 2019-08-16 16:51:02 · 1231 阅读 · 0 评论 -
unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
下载UniWebView这个插件支持Android、IOS和Mac,不支持Windows。百度网盘下载链接:https://pan.baidu.com/s/1wM7frlsW4qdiUA0WHu7exA提取码:sel8Unity Asset Store下载链接:https://assetstore.unity.com/packages/tools/network/uniwebview-...原创 2019-08-13 09:41:36 · 16595 阅读 · 2 评论 -
XCode连苹果真机查看运行log
方法一:XCode1 在mac电脑上安装XCode2 将苹果手机连到mac电脑, 在苹果手机上点击信任3 打开XCode,然后点击Window/Devices and Simulators就可以看到log了,需要过滤log的话,点击日志面板,然后按command+f就可以过滤查询了方法二:爱思助手1 在windows电脑上安装爱思助手2 苹果手机连接windows...原创 2018-12-19 11:46:52 · 11831 阅读 · 1 评论 -
iOS企业版app部署到自己服务器(不通过AppStore,在iOS设备上直接安装ipa)
iOS企业版app部署到服务器上说明针对iOS升级得iOS7 以后,plist文件必须放到https的服务器上了,http不可以用了。解决方式:找一个第三方https外链的网盘(比如阿里云之类的),将plist文件放到网盘上,ipa安装包可以放在自己的http服务器上。不通过在AppStore,在iOS设备上直接安装ipa的原理通过itms-services协议,在safari浏览器可...原创 2019-03-13 20:09:05 · 7579 阅读 · 8 评论 -
Unity打ipa提审AppStore,邮件回复Invalid architecturese
Dear Developer,We identified one or more issues with a recent delivery for your app, “xxxxxx”. Please correct the following issues, then upload again.Invalid architectures - This app has invalid ar...原创 2019-03-04 11:09:07 · 614 阅读 · 0 评论 -
查看XCode的SDK版本
终端中运行xcodebuild -showsdks原创 2019-03-06 16:30:36 · 5191 阅读 · 0 评论 -
iOS开发中静态库和动态库
转载注明出处:https://www.cnblogs.com/mtystar/p/6082363.html0x01 静态库与动态库的区别1.静态库和动态库的存在形式上的区别静态库 .a .framework 动态库 .dylib (在Xcode 8里面,看到后缀为.tbd的库,它的本质都是.dylib文件) .framework 2.静态库和动态库在使用上的区别...转载 2019-02-12 11:25:52 · 580 阅读 · 0 评论 -
Unity打iOS,编译选项是不是一定要选择il2cpp
先说结论:是的,目前unity只有il2cpp模式的编译才支持64位系统,mono是不支持的。苹果在2016年1月就要求所有新上架游戏必须支持64位架构,所以必须要选il2cpp。转载:https://zhuanlan.zhihu.com/p/19972689科普:Unity3D最大的一个特点是一次制作,多平台部署,而这一核心功能是靠Mono实现的。可以说Mono是Unity3D...原创 2019-02-15 14:05:12 · 4963 阅读 · 2 评论 -
libstdc++适配Xcode10与iOS12
编译报错当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭如果你的工程中如果依赖libstdc++,无论是你本身的功能用 C++ 跨平台编写,还是你引入了某个 SDK 其内部依赖这个libstdc++,都会导致整个工程编译不通过,报出Undefined symbols,C+...转载 2019-02-14 17:06:26 · 530 阅读 · 0 评论 -
局域网内,unity5.x mac版本,iOS打包插件怎么装
Unity官网上,对于Unity5.x和之前的版本,要下载打包插件,必须在Unity中点击File/BuildSettings,选择对应的平台,然后点击Open Download Page进行插件的下载,而局域网内这样就不方便了。可以在外网mac中先下载unity5.x并下载iOS打包插件,然后进入 应用程序/Unity,把PlayerbackEngines目录拷贝到局域网内,放在同样的位置即...原创 2019-02-14 16:07:57 · 867 阅读 · 0 评论 -
如何拿到别人的ipa包
iOS9以下的自己越狱后,通过PP助手备份到电脑或者直接通过pp助手直接下载原创 2019-01-02 09:45:02 · 1323 阅读 · 0 评论 -
iOS armv7, armv7s, arm64区别与应用32位、64位配置
转载注明出处:https://www.jianshu.com/p/567d3b730608iOS armv7, armv7s, arm64区别与应用32位、64位配置历程2015年2月1日不允许不支持arm64的应用的提交; iOS10发布后,如果你的应用中使用到了32位的类、库,没有相应支持64位机型的库,则首次启动后会弹窗式提示:“ xxx可能使iPhone变慢...”; iO...转载 2018-12-29 11:36:18 · 5295 阅读 · 0 评论 -
Xcode archive 打包ipa过程图解
导入iOS证书p12到钥匙串,双击p12文件,登录,导入证书1.选择Generic iOS Device,选择其他模拟器是不能Archive的2.Xcode 工具条 Product 下点击 Archive3.如果弹出下面框,输入本机密码,始终允许4.点击Export5.点击Enterprise6.点击Next7.选择证书,点击Next8....转载 2018-11-14 17:36:46 · 4510 阅读 · 1 评论 -
关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
转载注明出处:https://blog.csdn.net/joosonmao/article/details/21172835刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。 1.概念介绍如果你拥有一个开...转载 2018-11-07 10:04:06 · 5311 阅读 · 0 评论 -
IOS马甲包混淆
转载注明出处:https://blog.csdn.net/lyzz0612/article/details/80390362本文只适用于机审 4.3,区分机审和人审请找你们后端或运维看看审核期间有没有IP登陆。1. 机审原理我们虽然无法得知苹果实际的机审原理,但从程序员的角度还是能分析出一些东西的。1.1 首先OC和C++代码编译出的二进制文件,有点经验和反编译过的应该都知道:删注...转载 2018-11-06 19:27:50 · 2211 阅读 · 1 评论 -
Android和iOS包批量重签名
Android篇环境要求1 安装winrar,然后配置winrar的环境变量,要用到winrar指令2 配置java的bin目录到环境变量,要用到jarsigner指令重签名步骤说明:1 从母包复制一个子包2 删除子包的签名文件META-INFO3 根据需要修改子包的文件,比如渠道号文件之类4 重签名子包对应的python脚本import os...原创 2018-07-16 19:53:34 · 888 阅读 · 0 评论 -
mac升级XCode到10.1 (iOS 12.1 SDK),Unity5.x无法访问原项目的问题:APFS硬盘格式无法识别
最近AppStore要求打的包必须包含iOS12.1 SDK,也就是Xcode9打得包上传不了了,我们得用XCode 10.1SDK与XCode是什么关系两者的关系就像操作系统和软件的关系,操作系统给应用程序提供平台,你用软件实现你想用的功能。Xcode给SDK提供平台,你用SDK来编程,Xcode只是一个IDE,用于开发的一个工具而已,你也可以不用Xcode来开发。只是它是苹果官方比...原创 2019-02-12 16:55:23 · 2199 阅读 · 0 评论 -
Unity适配iphone刘海屏
首先,我们是通过获取iOS设备的的Device Type,根据特定的型号来判断为是否是刘海屏的,比如如果DeviceType是:iPhone10.3 或 iPhone10.6 或 iPhone11.6,那么就认为是刘海屏的。我们需要写objective-c接口来获取DeviceType//IOSGameTools.mm#include <string.h>#includ...原创 2019-02-21 10:47:55 · 6997 阅读 · 4 评论 -
objective-c的%s和%@
%s和%@%s是c标准的字符串而%@是objective-C的字符串NSString 补充%@ 对象 %d 十进制整数 %i 十进制整数 %u 十进制无符号整型 %o 八进制整数 %x 十六进制整数 %e 指数形式的浮点数 %f 浮点数 %s 字符串 %c 字符 %p 指针格式转换NSString *tempA = @"123";NSStrin...原创 2019-02-26 15:48:44 · 1095 阅读 · 0 评论 -
objective-c的nil和NULL
Symbol Value Meaning NULL (void *)0 literal null value for C pointers nil (id)0 literal null value for Objective-C objects nil:对象为空定义某一实例对象为空值。例如:NSObject* obj = nil;if (...原创 2019-02-26 15:22:00 · 445 阅读 · 0 评论