iCloud在哪里获取它在iCloud首选项中显示的应用程序名称?
Settings.app > iCloud > Storage & Backup > Manage Store > Documents & Data
System Preferences > iCloud > Manage ...
我知道iCloud会将应用程序列为"未知",最初会显示一个空白图标(这确实发生在我的情况下),但是我的应用程序现在通过其"内部"名称而不是"漂亮"名称出现在此列表中(包含iCloud的应用更新尚未提交,因此这更加奇怪).
我的直觉说该名称将被定义为我的应用程序中的部分CFBundleDocumentTypes
或UTExportedTypeDeclarations
部分,info.plist
但iCloud使用的名称仅出现在那里的UTI值中.iCloud值也不匹配应用程序CFBundleDisplayName
或配置门户中附加到App ID的描述.
在Qt中,可以指定Info.plist
在Mac上构建时要使用的文件,如下所示:
QMAKE_INFO_PLIST = MyInfo.plist
Run Code Online (Sandbox Code Playgroud)
这将Qt自动生成的Info.plist
文件替换为另一个.
而不是完全替换Qt的自动生成的,是否可以添加单个条目?
我不认为它会带来什么实际差别,但我希望能够做到这一点,因为我觉得添加我想要的其他项目而不是粗暴地替换整个文件会更"整洁".
我需要本地化info.plist的两个键:NSLocationUsageDescription
和NSCameraUsageDescription
.所以我尝试创建一个名为InfoPlist.strings的新文件,然后我将其本地化,但应用程序始终显示存储在info.plist文件中的字符串.怎么了?
信息财产清单重点参考的官方文件
本地化的值不存储在Info.plist文件本身中.而是将特定本地化的值存储在名为InfoPlist.strings的字符串文件中.将此文件放在与用于存储同一本地化的其他资源相同的特定于语言的项目目录中.InfoPlist.strings文件的内容是您想要本地化的各个键以及适当翻译的值.查找Info.plist文件中的键值的例程会考虑用户的语言首选项,并在存在时返回键的本地化版本(来自相应的InfoPlist.strings文件).如果不存在密钥的本地化版本,则例程将返回存储在Info.plist文件中的值.
我的InfoPlist.strings文件:
NSCameraUsageDescription = "hello";
NSLocationUsageDescription = "hello hello";
Run Code Online (Sandbox Code Playgroud) 我正在使用visual studio开发cordova应用程序.
如果我使用Xcode8将我的应用程序上传到商店,我会收到以下错误邮件.
Missing Info.plist key - This app attempts 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.
基于另一个stackoverflow问题,我添加了插件https://github.com/leecrossley/cordova-plugin-transport-security
并修改了plugin.xml:
<platform name="ios">
<config-file target="*-Info.plist" parent="NSAppTransportSecurity">
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app does not require access to the microphone.</string>
<key>NSCameraUsageDescription</key>
<string>This app requires access to the camera.</string>
</dict>
</config-file> …
我正在尝试使用此存储库构建我的第一个 iOS 应用程序:\n https://github.com/pmusaraj/discourse-mobile-single-site-app
\n\n构建时,我收到错误并且无法继续。我是一个绝对的菜鸟,会花很长时间在这上面,但不知道我\xe2\x80\x99是否已经达到了代码中的故障点,我可以通过一些简单的调整来超越,或者我是否必须等待我的代码由开发人员解决的问题(在存储库上打开)。我认为开发人员正忙于其他项目,可能没有时间提供帮助。
\n\n也许我的软件对此来说太新了?我应该尝试将版本控制回react-native 和XCode 吗?我可以降级到 XCode 9.2(2017 年 12 月至 2018 年 3 月版本)并将 React-native 降级到 0.53.0(2018 年 1 月版本)。
\n我的机器:
\nMac OSX:10.14.6
\nreact-native-cli:2.0.1
\nreact-native:0.58.6
\nXCode:10.3(内部版本 10G8)
问题:info.plist 文件无法与构建器很好地配合。在 /ios/DiscoSingle/Info.plist 中,我看到 CFBundleIdentifier 正确定义为:
\n\n<key>CFBundleIdentifier</key>\n<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>\n
Run Code Online (Sandbox Code Playgroud)\n\n这对我来说看起来是正确的。
\n\n这里\xe2\x80\x99s运行时出现错误react-native ios-build
:
The following build commands failed:\n Ld /Users/user919021/Desktop/discourse/ios/build/Build/Products/Debug-iphonesimulator/DiscoSingle.app/DiscoSingle normal x86_64\n(1 failure)\n\nInstalling build/Build/Products/Debug-iphonesimulator/DiscoSingle.app\nAn error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):\nFailed to install the requested application\nThe bundle identifier of the application could …
Run Code Online (Sandbox Code Playgroud) 我有一个用户已经下载的TestFlight构建,然后我们发布了一个新版本,并且它们安装在该构建上.他们在尝试启动应用时遇到此错误:
星期三08月31日二十点13分28秒未知跳板[1176]:在/private/var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/X.app的"X"束不具有可执行文件的路径.请检查捆绑包的Info.plist文件.
我使用PhoneDisk检查了应用程序的plist,并且可执行文件与应用程序名称匹配.有任何想法吗?
我已经使用Base Localization将我的应用程序翻译成土耳其语.但是,我还需要NSLocationWhenInUseUsageDescription
在Info.plist文件中翻译密钥.我完成了我为其他一切做的事情:
去文件检查员并检查土耳其语:
然后我转到新的字符串资源并通过将此密钥添加到本地化文件来完成我的翻译:
"NSLocationWhenInUseUsageDescription" = "[my Turkish description of location permissions]";
从设备保存,编译甚至删除应用程序并重建,但无济于事.当我的应用程序要求位置权限时,下面的解释仍然是英文版本(我已尝试将英文翻译包括在Base翻译文件下,但它没有改变任何内容).
其他一切都是土耳其语,翻译得很好.这只是不翻译的位置许可.我还看过如何在iOS info.plist文件中本地化一个字符串?并把"Localized resources can be mixed" = YES
钥匙(当然,CFBundleAllowMixedLocalizations
不是字面上的句子)添加到我的原始plist但是也没有改变任何东西.
我该如何解决这个问题?
从版本11开始,每当我在目标设置(选项卡“常规”)中输入“版本”或“构建”值时,Xcode就会将我的CFBundleVersion
值设置为,$(CURRENT_PROJECT_VERSION)
并将我CFBundleShortVersionString
的值$(MARKETING_VERSION)
设置为。
我输入的实际版本和构建值现在存储在project.pbxproj文件中。我不希望或不喜欢这种行为,因为我在构建时使用shell脚本来修改值。
我可以在Info.plist文件中手动设置正确的值,但是一旦在目标设置中更改了版本号或内部版本号,Xcode就会再次更改Info.plist文件。
如何停止Xcode 11执行此操作?
当我修改构建脚本以更改项目文件本身时,Xcode将在更改项目文件后立即取消构建。
我有一个 SwiftUI/SpriteKit 项目。在一次充满错误的更改包标识符的任务中,我决定创建一个新项目并复制我的文件。
现在我已经有了这个包含所有旧文件的新项目,但是当我运行它时,我得到一个空白屏幕,因为我的SceneDelegate
函数scene(_:willConnectTo:options:)
没有被调用。
根据文档,SceneDelegate
如果您对info.plist
. 然而,我已经做了这些改变,但我的SceneDelegate
仍然不起作用。
这是我的相关部分SceneDelegate
:
import UIKit
import SwiftUI
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
static var mainData = MainData()
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property …
Run Code Online (Sandbox Code Playgroud) info.plist ×10
ios ×6
xcode ×2
bundle ×1
cocoa-touch ×1
cordova ×1
discourse ×1
icloud ×1
iphone ×1
itunes ×1
lifecycle ×1
localization ×1
qt ×1
qt5 ×1
react-native ×1
swift ×1
swiftui ×1
sync ×1
uti ×1
xcode11 ×1