所以我也跟着教程https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9,准确地使用相同的值提供的一个.
Apple协会文件也已准备好在链接目录中:WEB_PAGE:PORT_NUMBER/apple-app-site-association
一切似乎都在这方面设置.
我添加了权利,更新了配置文件以及所有设置.
当我在我的设备上运行应用程序,并打开链接http:// WEB_PAGE:PORT_NUMBER时,这将始终打开Safari.
我甚至在以下方法中有断点:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
Run Code Online (Sandbox Code Playgroud)
但齐尔奇.
有没有人完善这个?有什么我错过了吗?
我有一个问题,我正在排除故障,很少发生,当我在Xcode下运行时似乎没有发生.
是否可以正常运行应用程序(即从Springboard)直到我的问题发生,然后在那时附加一个调试器?
如果可能的话,我更愿意在没有越狱的情况下这样做.
我有一个核心数据对象图(由两个由多对多关系链接的实体组成).
我很好奇,作为一个相对缺乏经验的iPhone开发人员,是否有人可以推荐一种方法,以及适合iPhone的JSON实现,这将允许我:
将核心数据记录转换为JSON字符串(同时保持实体之间的关系); 和
将JSON字符串转换回核心数据对象(再次保留实体之间的关系).
我已经在这一点上搜索了一个教程/代码示例,但没有成功,所以我将非常感激地收到任何帮助.
iOS应用的版本/构建字段包括:
"Version" CFBundleShortVersionString(String - iOS,OS X)指定捆绑包的发布版本号,该版本号标识应用程序的已发布迭代.发行版本号是由三个以句点分隔的整数组成的字符串.
"Build" CFBundleVersion(String - iOS,OS X)指定捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布).构建版本号应该是由三个非负的,周期分隔的整数组成的字符串,第一个整数大于零.该字符串应仅包含数字(0-9)和句点(.)字符.前导零从每个整数中截断,将被忽略(即1.02.3相当于1.2.3).此密钥不可本地化.
"iTunes Connect版本号":在iTunes Connect上创建应用程序的新版本时指定的版本号.
我的问题是:
当新版本的应用程序上传到iTunes Connect和/或发布到App Store时,需要增加哪些版本/内部版本号?
应用更新之间的"版本" CFBundleShortVersionString或"构建"可以CFBundleVersion保持不变吗?
Apple来源的额外积分或iTunesConnect在上传无效版本/内部版本号时显示的确切错误消息.
促使这个问题的讨论是,在谷歌Android应用的大众"版本" Play商店并没有需要递增,是没有办法验证.该android:versionName可不同版本之间保持不变,升级,降级,或者是任何随机字符串,而不是东西,似乎是一个有效的"版本号".
android:versionName- 表示应用程序代码的发行版本的字符串值,因为它应显示给用户.该值是一个字符串,以便您可以将应用程序版本描述为
<major>.<minor>.<point>字符串,或任何其他类型的绝对或相对版本标识符.
Android中versionName和versionNumber之间的区别
而android:versionCode强制执行是一个递增的释放整数.
正如新接受的回答中所述,Apple最近发布了一份技术说明,详细说明了他们的版本和内部版本号:
Apple的doc可能更清楚如何提交更新版本.
正如标题中所说,有什么区别
它们有任何关联吗?
这是我的第一个iOS应用提交,我不希望我的应用被拒绝.
这来自Apple Docs:
CFBundleVersion(String - iOS,OS X)指定捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布).构建版本号应该是由三个非负的,周期分隔的整数组成的字符串,第一个整数大于零.该字符串应仅包含数字(0-9)和句点(.)字符.前导零从每个整数中截断,将被忽略(即1.02.3相当于1.2.3).此密钥不可本地化.
CFBundleShortVersionString(String - iOS,OS X)指定捆绑包的发行版本号,该版本号标识应用程序的已发布迭代.发行版本号是由三个以句点分隔的整数组成的字符串.第一个整数表示对应用程序的主要修订,例如实现新功能或主要更改的修订.第二个整数表示实现不太突出的功能的修订.第三个整数表示维护版本.
此键的值与"CFBundleVersion"的值不同,后者标识应用程序的迭代(已发布或未发布).可以通过将其包含在InfoPlist.strings文件中来本地化此密钥.
但似乎有点奇怪.我对此的解释是将两个值相同,即:
CFBundleVersion: 1.0.0
CFBundleShortVersionString: 1.0.0
Run Code Online (Sandbox Code Playgroud)
有人可以确认100%这是我应该放的吗?
我遇到构建错误,指出我的所有 SPM 包均丢失。我决定删除每个包并将其重新添加到项目中,但每次尝试添加包都会出现以下错误:
Package.resolved 文件已损坏或格式错误;修复或删除文件以继续
我尝试删除该Package.resolved文件并让它重新生成(但没有),但我收到了相同的错误消息。有想法该怎么解决这个吗?
我收到此错误:
CodeSign错误:证书身份'iPhone Developer:XXX'在钥匙串中出现不止一次.代码签名工具要求只有一个.
起初我虽然,不用担心,我只会进入钥匙串并删除重复(较旧)的一个,我做了.我回去了,关闭Xcode,重新打开Xcode和项目,同样的错误.wtf我虽然对自己.回到钥匙串,证书又在那里.我删除了两个证书,重复,并在项目加载时注意,我删除的两个证书弹回到钥匙串中.
经过多次搜索,我确保我没有系统钥匙串中的证书,我没有.也进行了清洁和重建.当我与Xcode 3重复时,我可以清理钥匙串副本,我很好.但是使用Xcode 4,它只是在我打开项目时以某种方式重新安装它们.我甚至删除了我的系统上的所有.cer文件,它们可能正在将它们拉出来.
有什么建议?
我喜欢使用Xcode调试器.您可以查看变量的值,甚至可以更改它.
但我可以以某种方式显示图像变量引用的图像吗?我知道我可以看到它的原始字节,但是显示带有内容的窗口会更加人性化.
Xcode可能不支持这个.也许有一个外部工具可以帮助显示图像?
我试图更准确地理解Swift的"关闭".
但@escaping和Completion Handler太难以理解
我搜索了许多Swift帖子和官方文档,但我觉得还不够.
这是官方文档的代码示例
var completionHandlers: [()->Void] = []
func someFunctionWithEscapingClosure(completionHandler: @escaping ()->Void){
completionHandlers.append(completionHandler)
}
func someFunctionWithNoneescapingClosure(closure: ()->Void){
closure()
}
class SomeClass{
var x:Int = 10
func doSomething(){
someFunctionWithEscapingClosure {
self.x = 100
//not excute yet
}
someFunctionWithNoneescapingClosure {
x = 200
}
}
}
let instance = SomeClass()
instance.doSomething()
print(instance.x)
completionHandlers.first?()
print(instance.x)
Run Code Online (Sandbox Code Playgroud)
我听说有两种使用方法和原因 @escaping
第一个用于存储闭包,第二个用于Async操作目的.
以下是我的问题:
首先,如果doSomething执行someFunctionWithEscapingClosure则将使用closure参数执行,并且该闭包将保存在全局变量数组中.
我认为封闭是{self.x = 100}
如何self在{self.x = 100}中保存在全局变量中completionHandlers可以连接到instance该对象 …