我想在中添加密钥对值plist.我不知道如何在XCode中添加.plist文件.我只想在名为" Mobile.plist"的.plist文件中添加这些细节.
Apple - iPhone,iPod,iPad
Samsung - Galaxy Y, Galaxy R, Galaxy Z
Nokia - Lumina
LG - Lg1 ,Lg2, Lg3
Run Code Online (Sandbox Code Playgroud)
我已尝试使用此链接创建新的Mobile.plist文件的步骤,
http://iphoneincubator.com/blog/tutorial/how-to-create-an-iphone-preferences-file.但是,我无法完全理解.当我尝试使用此链接中的步骤时,plist文件始终为空.我不知道如何在plist中添加键值.
我创建了一个名为的组Settings and add new plist file named as Root.plist.您能否提供创建.plist文件并在其中添加键值的步骤.提前致谢.
iOS 8.1.3上的Enterpsie Distribution遇到了很多问题.我设法修复了我的安装中的大部分错误:
Ignore manifest download, already have bundleID
Run Code Online (Sandbox Code Playgroud)
这个答案:https://stackoverflow.com/a/25948839/517688
这基本上告诉你伪造服务器manifest.plist上的bundleID.
但是在我的一些测试设备上,我在更改后遇到了一个新错误:
Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement."
Run Code Online (Sandbox Code Playgroud)
我似乎找不到这个解决方案.
编辑1
我尝试将其添加到.entitlements文件中:
<key>application-identifier</key>
<string>com.domain.appname</string>
Run Code Online (Sandbox Code Playgroud)
但是现在我在尝试存档应用程序以进行分发时遇到此错误:
None of the valid provisioning profiles allowed the specified entitlements: application-identifier, aps-environment.
Run Code Online (Sandbox Code Playgroud) 由于最初的TestFlight应用程序将在一个月内退役,我正试图掌握iTunes Connect Beta系统,这看起来是一项重大改进.按照指示,我重新生成了我的配置文件,并在我的构建服务器上重新加载它们.
然后我使用"AppStore | Release"配置文件执行构建,我在日志中看到了这条消息:
codesign -v -f -s"XXXXXX"" - resources-rules =/.../MyApp.app/ResourceRules.plist"--entitlements"/../ iSnagMobileiOS.xcent""/../ iSnagMobileiOS.app "
entitlements参数中指定的文件包含预期的beta-reports-active键:
<?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>get-task-allow</key>
<false/>
<key>application-identifier</key>
<string>XXXXXXX.com.mycompany.myapp</string>
<key>com.apple.developer.team-identifier</key>
<string>XXXXXXXX</string>
<key>beta-reports-active</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>XXXXX.com.mycompany.myapp</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
然后,我检索了生成的IPA,该IPA是使用我的分发证书签署的.为了检查是否已应用了正确的权利,我执行了此命令以检查配置文件:
unzip -p MyApp.ipa Payload/MyApp.app/embedded.mobileprovision | 安全cms -D
在XML片段中,我可以看到包含预期标志的权利字典:
<key>Entitlements</key>
<dict>
<key>keychain-access-groups</key>
<array>
<string>XXXXXXXX.*</string>
</array>
<key>get-task-allow</key>
<false/>
<key>application-identifier</key>
<string>XXXXXXXX.com.mycompany.myapp</string>
<key>com.apple.developer.team-identifier</key>
<string>XXXXXXXXX</string>
<key>beta-reports-active</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
在IPA中也没有额外的Entitlements.plist文件可能会将其丢弃.
我使用Application Loader 3.0上传了IPA,但之后收到了此错误消息:
警告:ITMS-90191:"缺少测试版权利.您的应用程序不包含beta-reports-active授权.如果您打算通过TestFlight分发此版本进行beta测试,请使用新生成的配置文件重新构建此应用程序. "
我在搜索这条消息时发现了很多点击,但似乎都没有描述上面的问题; 所有这些用户都发现重新生成配置文件并再次下载它就是所需要的.
我想知道我是否遇到了由旧版XCode或MonoTouch引起的问题,但在我更新了两者之后,我仍然遇到了同样的问题.我猜这个问题不是由Xamarin引起的,但可能是由我在构建配置中忽略的设置引起的,但我可能在那里错了.
UIDevice.current.name 如果使用 iOS15,它可以工作,但是当我在 iOS16(beta3)上测试时,仍然始终返回“iPad”名称。
查看相关 WWDC 2022 视频文件
我用了: