我已经集成了远程推送通知,但是我收到了这个警告:
didReceiveRemoteNotification:fetchCompletionHandler:],但你仍然需要添加"remote-notification"到列表的支持UIBackgroundMode在你的SInfo.plist.
我的Xcode版本是8.3.1.我真的想把它添加到Info.plist.我也遵循了一些教程,但他们也没有提到这一点.我该怎么办?
我试图将iOS网址添加到我在iOS9中的应用程序但是我收到以下警告:
-canOpenURL: failed for URL: "instragram://media?id=MEDIA_ID" - error: "This app is not allowed to query for scheme instragram"
Run Code Online (Sandbox Code Playgroud)
但是,我LSApplicationQueriesSchemes在我的内容中添加了以下内容info.plist;
<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
<string>instagram://media?id=MEDIA_ID</string>//this one seems to be the issue
</array>
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏?
编辑1
这是我用来打开Instagram的代码:
NSURL * instagramURL = [NSURL URLWithString:@"instragram://media?id=MEDIA_ID"];//edit: note, to anyone copy pasting this code, please notice the typo OP has in the url, that being "instragram" instead of "instagram". This typo was discovered after this StackOverflow question was posted.
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { …Run Code Online (Sandbox Code Playgroud) 我正在开发一个支持iCloud的应用程序,用户可以通过iCloud Drive导入和导出文件.在浏览iCloud Drive时,无论是使用UIDocumentPickerViewController(iOS 8)还是Finder(OS X Yosemite),我都可以看到其他支持iCloud-Drive的应用创建/拥有的目录,例如Automator,Keynote或TextEdit.
我希望我们的应用程序也能在iCloud Drive中公开其无处不在的文档目录,但还未能弄明白.在上述某些应用程序的Info.plist文件中,我发现了这个密钥:
<key>NSUbiquitousContainers</key>
<dict>
<key>com.apple.TextEdit</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
这些密钥也在这里记录,但我没有找到更广泛主题的任何其他文档.编辑/注意:虽然它不包含我的问题的答案,但文档选择器编程指南是一个有用的资源.
我已经尝试将上述键/值添加到我们的应用程序,但没有看到任何影响.我注意到/尝试过的事情:
对于第三方应用程序,iCloud容器以这种方式构建:iCloud.$(CFBundleIdentifier).我不确定为什么TextEdit只使用纯包标识符,但对于我们的标识符,我尝试了两种方法,即有和没有iCloud.前缀.我还认识到你需要对包标识符进行硬编码(即,不要使用iCloud.$(CFBundleIdentifier)),因为只有PLIST的值似乎在构建时解析,而不是键.
我以编程方式(to <containerPath>/Documents)添加了一个子目录,因此容器不为空.但是,这并不重要,因为所有其他应用程序的目录最初都是空的.
出现在iCloud Drive中的某些Apple应用程序中没有这些条目Info.plist,例如Numbers和Pages.
iCloud设置正确,我可以使用返回的URL以编程方式查看ubiquity容器[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];.
我登录到启用了iCloud Drive的iCloud帐户.我可以看到我的iCloud Drive内容UIDocumentPickerViewController.
我使用iOS 8 beta 5模拟器(和Yosemite beta 5来查看Mac上的iCloud Drive目录)(编辑/注意:这同样适用于beta 6)
这就是我的Entitlements文件的样子(仅限相关部分)
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array/>
Run Code Online (Sandbox Code Playgroud)
我已经在Capabilities部分使用Xcode的UI进行了设置.我不明白为什么最后一个键没有条目,但添加<string>iCloud.$(CFBundleIdentifier)</string>没有帮助.相反,它使Xcode在Capabilities UI中抱怨,所以我删除了它.编辑/注意: …
我最近将我的5个独立项目合并到一个项目中,以拥有一个共同的代码库.所以现在我有一个项目有5个目标.
每个目标具有相同的文件集,但每个目标不同的某些文件除外(例如Default.png和其他图标文件).我的应用程序被翻译成7种语言,默认为英语.其他语言包括:瑞典语,荷兰语,德语,法语,波兰语和西班牙语.
现在我还想根据使用的语言翻译应用程序的名称.例如,对于我的瑞典航空应用程序,该应用程序应该在瑞典语中称为"Flyget ARN",但对于英语,它应该被称为"航空ARN".这一切都不是问题,因为这是在完成InfoPlist.string,但结合这与应用程序的本地化是一个问题.
我最近写了这个问题:几个本地化仍然只显示英语,并发现我无法组合几个.strings文件.(见我写的答案).
所以我的问题如下:
如何从包含多个目标的项目中获得本地化应用程序,并且本地化我的应用程序名称而不会出现DRY违规(重复代码).
更新
这仍然是一个问题,给出的答案并不能解决我的问题.
我已成功为应用商店连接生成 .ipa 但在验证阶段从 XCode 上传到 App Store Connect 时出现此错误 ERROR ITMS-90208: "Invalid Bundle. The bundle myApp.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist."
我尝试过
错误 ITMS-90208:“无效的捆绑包。捆绑包 <your.app> 不支持 Info.plist 中指定的最低操作系统版本”
https://github.com/tanersener/mobile-ffmpeg/issues/18
这些解决方案但没有用
我的iOS项目中有三个配置:
现在我想更改应用程序的名称,如下所示:
有没有办法在Xcode中使用某种类型的"compiler-if-else-macro-thing"轻松实现这一点?
最后......经过几年的观看和一个月的参与,我有机会向你们问一个我自己的问题.
我的老板不相信我(或任何进程)增加内部版本号,他还希望在应用程序中加入构建日期和时间.我想把它放到通常的Info.plist文件中.
我发现了这个相关的问题:
根据那里的答案,我进入了Scheme Editor并将下面的脚本添加到Build阶段的"Post-Action"部分:
infoplist="$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"
builddate=`date`
if [[ -n "$builddate" ]]; then
defaults write "${infoplist%.plist}" BuildDate "${builddate}"
fi
Run Code Online (Sandbox Code Playgroud)
在XCode中,我的Scheme Editor窗口如下所示:

不幸的是,BuildDate永远不会写入Info.plist.
将"$ {builddate}"更改为"$ builddate"也不起作用.我在剧本中添加了这一行:
echo "build date is $builddate" > /tmp/result.txt
Run Code Online (Sandbox Code Playgroud)
并且在书面文件中日期显得非常好.从上面的脚本将字符串写入Info.plist文件非常好,非常烦人.
总结一下,如何将日期添加到Info.plist文件中?
我想设置所需的背景模式键值,以便我的应用程序也可以在后台运行.实际上我想在应用程序处于后台时获取用户位置更新,但是在我的info-plist文件中没有称为所需背景模式键的键.如何设置此密钥并将其放入我的文件中?
我希望有三个应用程序依赖,它们基于相同的代码:
MyAppDevelopment (从部署到设备的Xcode构建)
MyAppPreview (Beta测试)
MyApp (发布)
应该可以在设备上安装所有三个应用程序,并且他们有自己的图标,以便在视觉上很好地区分它们.
现在我知道我可以有三个不同的目标及其各自的Info.plist文件,但我宁愿使用Xcode的配置,这样我就不必维护三个不同的目标.这可能是使用配置,问题是App标识符存储在Info.plist文件中,可以按目标定义...
我正在尝试将app名称用作NavController标题,但无论我做什么,我都无法获得CFBundleDisplayName值.它返回'null'.
这是我正在使用的代码
[NSBundle mainBundle] infoDictionary][@"CFBundleDisplayName"]
Run Code Online (Sandbox Code Playgroud)
已检查的捆绑包=只有一个.Xcode5/dev目标是iOS5.我没有检查过设备.使用模拟器.
谢谢!
info-plist ×10
ios ×8
xcode ×3
ios5 ×2
iphone ×2
app-store ×1
dry ×1
entitlements ×1
flutter ×1
icloud ×1
icloud-api ×1
instagram ×1
ios8 ×1
ios9 ×1
ipa ×1
localization ×1
objective-c ×1
shell ×1
xcode4 ×1
xcode4.2 ×1
xcode5 ×1