Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 29

5
votes
answers
136 views
+10

ITMS-90809:不推荐使用的API使用 - Apple将停止接受使用UIWebView API的应用程序的提交

昨天,我将我的应用程序上传到TestFlight,过了一段时间Apple向我发出了这个警告:

ITMS-90809:不推荐使用的API使用 - Apple将停止接受使用UIWebView API的应用程序的提交。有关更多信息,请参见 https://developer.apple.com/documentation/uikit/uiwebview 信息。

问题是我不在我的应用程序中使用UIWebView,所以我尝试更新我的pod但仍然是同样的事情。这就是我在TestFlight上的第3次构建,这是第一次时间苹果发给我这个。有什么想法吗?

更新

这些是我的播客:

  pod'Firebase / Core'pod'
    
        
沙发
+40
+50

您可以检查已归档应用程序中的每个框架,以查看其中是否有任何框架引用 UIWebView 从命令行, cd 到存档的应用程序,例如:

  cd~ / Library / Developer / Xcode / Archives /< date> /myapp.xcarchive/产品/应用程序/ myapp.app   

在那里,使用 nm 命令转储应用程序的符号和每个应用程序的框架:

  nm myapp | 框架/ *框架中的框架grep UIWeb; do fname = $(basename $ framework .framework)echo $ fname nm $ framework / $ fname | grep UIWeb完成  

这至少会告诉你哪个框架是罪魁祸首。

谢谢你的回答它帮了很多忙。我将用更多信息更新我的问题。 - Nick Stefanidis 8月31日15:23

所以现在我唯一能做的就是等待谷歌解决问题? - Nick Stefanidis昨天

是的,您需要等待(或自行修复并提交拉取请求)。我不确定删除UIWebView的所有用途的具体截止日期是什么,但我非常怀疑它将在今年秋季发布iOS 13之前。 - Rudedog 12小时前

好的。谢谢你的帮助。 - Nick Stefanidis 8小时前

+10

检查您是否在代码中使用了UIWebView类; 如果是用WKWebView替换你的实现,否则需要检查你的Pod。

使用终端进入项目文件夹并执行命令: grep -r“UIWebView”。

必须更新所有匹配的pod。现在我被困了,因为我发现了UIWebView进入谷歌AdMob(版本7.49.0),我正在等待谷歌的新版本。

12
votes
answers
38 views
+10

iOS - watchOS App发布问题CFBundleIdentifier冲突

应用上传后,我收到以下电子邮件

我们发现了您的应用最近发送的一个或多个问题,XXX。请更正以下问题,然后重新上传。

ITMS-90806:CFBundleIdentifier冲突 - 每个捆绑包必须具有唯一的捆绑包标识符。包标识符'org.cocoapods.CocoaLumberjack'在包中使用[CocoaLumberjack.framework,CocoaLumberjack.framework]'

CocoaLumberjack是我已经用过的第三方库过去很多次没有任何问题,我很困惑。

它与框架的.plist关键字CFBundlePackageType无关,因为它在此问题/答案中指定CocoaLumberjack / Swift','?> 3.5.3'...结束

iOS应用正在使用该库,watchOS扩展使用相同的库。他们正在使用不同的库,但CocoaLumberjack是两者中唯一存在的库。

我过去已经多次发布我的应用程序而没有相同库配置的任何问题。我猜Apple在最近几天改变了对包标识符的一些限制 我过去已经多次发布我的应用程序而没有相同库配置的任何问题。我猜Apple在最近几天改变了对包标识符的一些限制 我过去已经多次发布我的应用程序而没有相同库配置的任何问题。我猜Apple在最近几天改变了对包标识符的一些限制

+60

显然Apple改变了验证过程。看起来他们不允许应用程序中的平台特定框架具有相同的标识符。

论坛上也有关于此的帖子: https://forums.developer.apple.com/thread/122048

如果你遇到这个问题因为您正在使用Cocoapods,您可以修补Podfile以将平台名称附加到包标识符,以便它们始终是唯一的( source ):

  post_install do | installer | installer.pods_project.targets。每个人都做|目标| target.build_configurations.each do | config | config.build_settings ['PRODUCT_BUNDLE_IDENTIFIER'] ='org.cocoapods。$ {PRODUCT_NAME:rfc1034identifier}  -  $(PLATFORM_NAME)'end end end   

如果您的应用中有多个目标,则可以在XCode中更改方案中的watchOS目标,并将 .watchos 附加到标识符。

我在Apple论坛上打开了这个帖子:我仍然试图了解哪个是这个问题的最佳解决方案,同时关于更改捆绑名称的解决方法看起来不错 - cristallo 8月30日13:11

请注意重命名所有pods包标识符,因为否则某些pod不正常。即:有些人一直遇到Firebase的问题,问题是该脚本已重命名其捆绑。我建议只重命名被Apple拒绝的那些。 - cristallo 18小时前

Apple刚刚批准了我的应用程序更新,该更新使用了我的答案中描述的技术。 - Tieme 18小时前

我并不是说这是错的,因为这是处理这个问题的方法:-) ...只要注意它不能适用于每个库。 - cristallo 17小时前

板凳
+60
+50

作为一种临时解决方法,我在watchOS扩展中手动重命名了bundle标识符,然后app发布工作正常,但它看起来不是一个好的解决方案,特别是如果你在CI系统上运行构建。

更好的选择是在pod文件中添加特定的安装后操作:

  post_install do | installer | installer.pods_project.targets.each do | target | if target.name =='CocoaLumberjack-watchOS'target.build_configurations.each do | config | config.build_settings ['PRODUCT_BUNDLE_IDENTIFIER'] ='org.cocoapods。$ {PRODUCT_NAME:rfc1034identifier}  -  $(PLATFORM_NAME)'end end end end   

目前有2个关于此问题的开放主题:

-20

只需从您的扩展程序中移除嵌入式框架构建阶段。

点击目标部分中的扩展程序 - > 构建阶段 - > 删除嵌入式窗格框架

参见附图:

如果我删除嵌入框架操作然后扩展应用程序不再工作,因为它不能再找到库 - cristallo 8月30日9:44

0
votes
answers
56 views
+10

Xcode偏好設置,行爲部分,「使用」語言說通告?

0

在Xcode中,在首選項(command +逗號)中,在行爲部分中,有一個選項「使用說話通知」。這個選項有一個女性名字的下拉列表。我嘗試了幾個女性的名字,他們似乎都在說一種(不同的)外語。Xcode偏好設置,行爲部分,「使用」語言說通告?

enter image description here

哪個女人的名字與英語嗎?或者更好的是,每個名字的相應語言是什麼?有很多名字可供我篩選。

enter image description here

我在MacOS塞拉利昂,如果它有差別。

沙发
0
0

哦我的天哪!我偶然發現了正確的名字,而寫了這個問題:薩曼莎

我寫這個問題的原因是因爲我厭倦了嘗試尋找不同的英文名字,而且在每次構建之後我並沒有因爲更改名字而受到紀律處分,而且我昨天忘記了自己的位置。

在這個問題上的組成,我選擇我的下一個名稱進行測試:「薩曼莎」果然在我的下一個構建聽說英語。我想我放棄得太早了,但是一段時間以來看起來絕望了。

不過,如果有相應的語言名稱列表這將是很好。

0
votes
answers
46 views
+10

加載時出錯:找不到指定主機名的服務器

1

所以我一直在爲大約最近一個月左右的時間在我的博覽會設置上發生一個奇怪的問題。我通過Expo創建了我的項目,當我在終端中使用exp start或者嘗試通過Expo XDE加載項目時,它會在依賴關係圖加載後掛起。我認爲這是一個NPM問題(並且努力修復我的編碼環境數週),但是隨後我使用create-react-native-app創建了一個新項目,並注意到似乎存在與模擬器連接的問題。當我實例與創造 - 反應 - 本機應用程序(而非世博會)的新項目中,我得到這個錯誤exp://localhost:19000 — Error while loading: a server with specified hostname could not be found. (code - 1003)這裏是什麼樣子照片:加載時出錯:找不到指定主機名的服務器

exp error while loading

然後我試圖把地址該項目從終端到模擬器:

pasting link from terminal

而且它的實際工作!該應用加載!

app loads successfully

這讓我覺得有與模擬器的連接有問題。也許它是指向錯誤的端口?使用這種方法,我可以運行由create-react-native-app生成的應用程序,但不是我通過expo創建的原始投影,因爲它仍然被掛起並且不會啓動模擬器。通過Expo創建的項目沒有iOS文件,這就是您如何啓動create-react-native-app項目(紗線運行ios)的方式。

有關如何解決此問題的任何想法?

沙发
0
1

嘗試卸載這兩個Xcode &世博會。

似乎模擬器的端口在某種不同的引用。

在重新安裝Xcode & Expo之後,確保所有x代碼,模擬器和expo本地版本都是最新的,然後再啓動模擬器。

0
votes
answers
53 views
+10

高Sierra內的NSOutlineViewDelegate無法正常工作

-1

我是一名學習Swift和xcode的新手,通過重寫最初在Javascript/PHP/MySql中開發的代碼。我在macOS工作,使用xcode中的故事板作爲我的開發基礎。目前我正在開發SplitView。在主方我有一個OutlineView。它有三個層次,外層是可擴展的,直到今天,它工作得很好。適當時,所有級別都已填充,可見並可擴展。就我所知,我有Swift(4.0)和xcode(9.1)。所以,今天我決定是時候從塞拉利昂更新到高山。我的主視圖現在已完全空白。納達。我試圖跟蹤問題並發現,使用xcode中的調試器,顯然,我的MasterViewController的NSOutlineViewDelegate擴展中的outlineView函數顯然根本沒有被調用!我檢查了Connections Inspector,並且與DataSource和Delegate的連接仍然完好無損。我在網上搜索,發現幾個人似乎與Cocoa綁定相關的近期問題隱約相關,但是我無法將他們的問題解決方案連接到我的,因爲我沒有使用Cocoa綁定...它在我的列表中,但是我還沒有。我所知道的唯一變化就是從Sierra到High Sierra。有什麼建議麼?謝謝!高Sierra內的NSOutlineViewDelegate無法正常工作

增加:我現在知道更多關於這個問題。

下面是前高塞拉利昂工作代碼:

類的ViewController:NSViewController {

@IBOutlet弱VAR web視圖:WebView中!

@IBOutlet weak var outlineView:NSOutlineView!

變種饋送=訂閱

讓dateFormatter = DateFormatter()

倍率FUNC viewDidLoad中(){

super.viewDidLoad() 

dateFormatter.dateStyle = .short 

if let filePath = Bundle.main.path(forResource: "Feeds", ofType: "plist") { 
    feeds = Feed.feedList(filePath) 
    print(feeds) 
} 

}

該代碼是從一個教程採取的OutlineView在Ray_Wenderlich.com網站上。在此之後,我對代碼進行了圖案化,並且教程和代碼都工作了......直到高Sierra。顯然,在高Sierra之後,系統會自動解析「feeds」並生成outlineView顯示。隨着高山脈的行爲改變,它不再自發地產生outlineView,無論是在教程還是我的項目。結果是一個空白的outLineView。

在加入教程評論,我現在發現別人也遇到了同樣的行爲,並建議代碼現在需要:

outlineView.reloadData(),

但我天真的實施該建議只是產生一個運行時錯誤,

「[一個NSView reloadData]:無法識別的選擇發送到實例」

+2

請格式化您的問題,看起來很難看 –

+2

顯示您的工作。除非你需要英語作文課的幫助,否則「不工作」不適用於除你之外的任何人。 –

+0

同意@ElTomato –

沙发
0
0

只要確保當你開始一個新的「遊樂場」你有MacOS的作爲申請檢查而不是IOS。如果你有IOS檢查,Swift會導入UIKit(而不是Cocoa),這會導致你的問題。 GL。

0
votes
answers
59 views
+10

嘗試從表視圖傳遞多個值到另一個視圖控制器

-2

我想傳遞整個用戶信息,我有一個用戶類。我想將用戶名,名稱,uid,圖像傳遞給另一個視圖控制器。嘗試從表視圖傳遞多個值到另一個視圖控制器

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! NewChatTableViewCell 

     let user = usersarray[indexPath.row] 
     let ColorView = UIView() 
     ColorView.backgroundColor = UIColor(red: 0.05, green: 0.15, blue: 0.28, alpha: 0.7) 
     cell.selectedBackgroundView = ColorView 
     cell.backgroundColor = UIColor.clear 
     cell.backgroundView?.backgroundColor = UIColor.clear 
     cell.firstname.text = user.firstname! + " " + user.lastname! 
     cell.username.text = "@" + user.username! 
     cell.userimage?.layer.masksToBounds = true 
     cell.userimage.layer.cornerRadius = 20 
     cell.userimage.clipsToBounds = true 
     if let profileimage = user.profilepic 
     {cell.userimage.loadImageCache(urlString: profileimage)} 
     return cell 
    } 

    func callmessage(){ 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let controller = storyboard.instantiateViewController(withIdentifier: "message") 
     self.present(controller, animated: true, completion: nil) 
    } 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let indexPath = tableView.indexPathForSelectedRow! 
     callmessage(user: User!) 
    } 
+0

提示:'prepareForSegue()'。在目標視圖控制器中設置變量/數組以接收此數據並在當前視圖控制器中爲此方法分配值。祝你好運! –

+0

我會推薦 - 起初至少 - 使用'struct'來處理TableView中的數據。因此,引用另一個ViewCo中的數據ntroller與創建該類型的全局對象一樣簡單。 – KSigWyatt

+0

你也可以在目標類中創建一個元組,並將元組從一個類傳遞到具有所有值的另一個類 –

沙发
0
0

子類的UITableViewCell(創建類型的UITableViewCell的新文件,並調用它像UserTableViewCell添加類型用戶的屬性(或任何你的用戶類)。在didSelectRowAtIndexPath方法設置的UIViewController相同的用戶屬性到UserTableViewCell的User屬性,然後呈現視圖控制器

0
votes
answers
78 views
+10

Xcode9無法進入Git的用戶名而Git拉

0

我工作的一個應用,在那裏,我從遠程git倉庫拉我的代碼,而這樣做的Xcode不是讓我進入我的GitHub上的用戶名。它顯示'git'作爲預填充禁用用戶名。請檢查附加的截圖鏈接相同。Xcode9無法進入Git的用戶名而Git拉

enter image description here

+0

也許是因爲回購是私有的,您需要引入它的密碼? – Nacev

+0

謝謝,請回復..!你是正確的回購是私人的,但我的用戶名不列出那裏git不是我的用戶名。輸入正確的密碼後,它給我一個無效的憑據錯誤。 – Ram

+0

嘗試輸入創建時獲得的回購密碼。 – Nacev

沙发
0
0

我會推薦給:https://github.com/contact並寫入要修改密碼的消息,他們將幫助您低谷是肯定的!

+0

其實,我的密碼是正確的,因爲我能夠在網絡上使用相同的密碼登錄。 – Ram

+0

的將surelly能夠解決任何問題:)也許是站在他們那一邊 – Nacev

0
votes
answers
53 views
+10

Swift 3:預先加載SecondViewController的WKWebView提前點擊

0

我需要一些幫助。 我想在第一個視圖控制器中的webView完成後在第二個視圖控制器中預載我的webView。Swift 3:預先加載SecondViewController的WKWebView提前點擊

我相信我需要使用通知中心post/observe在我的第二個視圖控制器中調用我的loadWebView函數,但不知道如何。任何建議表示讚賞。


enter image description here

FirstViewController.swift

import UIKit; 
import WebKit; 

class FirstViewController: UIViewController, WKNavigationDelegate { 


    let webView:WKWebView = WKWebView(frame: CGRectMake(0, 0, UIScreen.main.bounds.width, UIScreen.main.bounds.height)) 

    func webView(_ webView: WKWebView, 
      didFinish navigation: WKNavigation!) { 
     print("loaded!") 
     webView.isHidden = false 

     } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let url = URL(string: "https://www.google.com") 
     webView.navigationDelegate = self 
     webView.load(URLRequest(url: url!)) 
     webView.isHidden = true 
     self.view.addSubview(webView) 

    } 

} 

SecondViewController.swift

import UIKit 
import WebKit 

class SecondViewController: UIViewController, WKNavigationDelegate { 

    let webView:WKWebView = WKWebView(frame: CGRectMake(0, 0, UIScreen.main.bounds.width, UIScreen.main.bounds.height)) 


    func webView(_ webView: WKWebView, 
      didFinish navigation: WKNavigation!) { 
     print("loaded!") 
     webView.isHidden = false 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 


    } 

    func loadWebView() { 
     let url = URL(string: "https://www.amazon.com") 
     webView.navigationDelegate = self 
     webView.load(URLRequest(url: url!)) 
     webView.isHidden = true 
     self.view.addSubview(webView) 
    } 


} 
沙发
0
0

在第一個VC:

func webView(_ webView: WKWebView, 
      didFinish navigation: WKNavigation!) { 

    //Post notification 
    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "WebViewFinishedLoading"), object: nil) 
} 

在二VC:

override func viewDidLoad() { 
     super.viewDidLoad() 

    // Add observer for your notification 
    NotificationCenter.default.addObserver(self, selector: #selector(loadWebView), name: NSNotification.Name(rawValue: "WebViewFinishedLoading"), object: nil) 
    } 

//Remove observer in deinit 
deinit {  
    NotificationCenter.default.removeObserver(self) 
} 
+0

如果secondViewController是不是在堆棧呢? –

+0

在初始化之前,您無法加載它。你到底在做什麼? –

0
votes
answers
60 views
+10

錯誤ITMS 90534「無效的工具鏈」

0

錯誤ITMS-90534:「無效的工具鏈新的應用程序和應用程序更新必須使用公共(GM)版本的Xcode 6或更高版本,macOS和iOS SDK或更高版本。不要提交使用測試版軟件構建的應用程序,包括beta macOS版本。「錯誤ITMS 90534「無效的工具鏈」

我在上傳到appstore時遇到此問題。我使用xcode8.3任何人都可以幫我解決這個問題嗎?

Image

+1

您正在使用beta XCode。使用公開版本上傳應用程序。 – iYoung

+0

謝謝我從測試版更改爲公開版,它對我有用,謝謝iYoung – srikanth

沙发
0
0

你,因爲你正在使用測試版本的Xcode,以避免此錯誤,使用公版的XCode &這個錯誤的將得到解決出現此錯誤。

0
votes
answers
47 views
+10

unity xcode出口代碼簽名失敗時發生錯誤

0

直接部署時,我的統一遊戲在iphone上運行。unity xcode出口代碼簽名失敗時發生錯誤

但是,當我存檔&出口上傳了AppStore的,我不斷收到:出口協同設計過程中出現

錯誤而失敗

注:

我試圖導航到: https://:Library/Developer/Xcode/DerivedData/yourprojectname/Build/Products/Debug-iphoneos

但它是空的(所以刪除yourApp.app不會解決問題)

沙发
0
0

我發現瞭解決方案:

選擇出口我是得到一個屏幕,應用程序名稱&另一個包名稱

2-束狀態時

1- 0權利&它旁邊沒有配置簡檔它

3-找到束在Xcode構建階段 - >複製捆綁資源

4-束路徑應導致你的統一資產導致問題

5-問題刪除造成此問題資產後解決了我(幸運的是,這是一個編輯器的輔助資產&可以刪除)

希望這有助於。