一、自动配置打包工具
[MenuItem("xing/iOS_Demo")]
static void iOS_Demo(){
PlayerSettings.companyName = "永恒";
PlayerSettings.productName = "D罗";
PlayerSettings.bundleIdentifier = "com.ssw.sdfb";//iOS app bundle id
PlayerSettings.aotOptions = "nimt-trampolines=512";
#if UNITY_4_6
PlayerSettings.targetIOSGraphics = TargetIOSGraphics.OpenGLES_2_0;
PlayerSettings.SetPropertyInt ("ScriptingBackend", (int)ScriptingImplementation.IL2CPP, BuildTargetGroup.iPhone);
PlayerSettings.SetPropertyInt ("Architecture", (int)iOSTargetDevice.iPhoneAndiPad, BuildTargetGroup.iPhone);//支持armv7和arm64
#endif
PlayerSettings.iOS.targetDevice = iOSTargetDevice.iPhoneAndiPad;//目标设备
PlayerSettings.iOS.targetOSVersion = iOSTargetOSVersion.iOS_6_0;//最低iOS版本要求
PlayerSettings.iOS.sdkVersion = iOSSdkVersion.DeviceSDK;//此时只能用真机测试,当为SimulatorSDK时Unity app可以跑在iOS模拟器上。
PlayerSettings.iOS.applicationDisplayName = "Demo";//装到设备上时看到的名字
PlayerSettings.iOS.requiresPersistentWiFi = true;
PlayerSettings.iOS.targetResolution = iOSTargetResolution.Native;//目标分辨率,当前为本地设备分辨率。
PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.iPhone, "RESOURCES_DEBUG");//设置条件编译标识
EditorBuildSettings.scenes = new EditorBuildSettingsScene[]{new
EditorBuildSettingsScene("Assets/Demo.unity", true),new
EditorBuildSettingsScene("Assets/PlotDemo.unity", true) };//场景
}
Splash配置(你需要配置多张大小不同的图片):
注意自己的应用的方向Portrait or Landscape
https://docs.unity3d.com/460/Documentation/Manual/class-PlayerSettings.html
http://www.iosresolution.com/
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html
二、iOS隐私数据访问问题
问题描述:
This app has crashed because it attempted to access privacy-sensitive data without a usage description.The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
原因描述:
上面崩溃意思试图访问安全隐私数据,但是又没有相应的描述,你必须要包含在info.plist里包含一个键值 NSPhotoLibraryUsageDescription对应的描述。
其实上面是iOS10,苹果加强了对隐私数据的保护,要对隐私数据权限做一个适配
iOS10调用相机,访问通讯录,访问相册等都要在info.plist中加入权限访问描述,不然之前你们的项目涉及到这些权限的地方就会直接crash掉。
解决办法:
在Info.plist中添加键值对
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
<key>NSMotionUsageDescription</key>
<string>App需要您的同意,才能访问运动与健身</string>
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string>
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>
三、iOS白名单设置
例如设置微信 URL Scheme 白名单需要在“Info.plist”里增加:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
</array>