120 comments found.

Hi Author,

I use Xcode 8.2.1 *8C1002) and use your template to build my own app. When convert Swift to the current one, there are 2 Swift compiler errors in NetworkFetcher.swift:

open override func fetch(failure fail : @escaping ((NSError?) -> ()), success succeed : @escaping (T.Result) -> ()) { self.task = self.session.dataTask(with: self.URL, completionHandler: { (data: Data?, response:URLResponse?, error:NSError?) -> Void in self.onReceiveData( response: , error: , failure: fail, success: succeed) } as! (Data?, URLResponse?, Error?) -> Void)

Please advise me how to fix it.

Thanks

Hello,

When there is no backward compatibility we will migrate it. Honestly, would you please share with us why you insist on Swift 3.0 and do you see any problems in that?

Regards, dmbTEAM

Hi

My app is rejected by Apple because: Missing Info.plist key – This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.

Please advise how to fix this problem.

Regards Kevin

Hello,

It seems that due to AdMob SDK this permission is required, because our app doesn’t use Calendar. It’s a known issue (check here: http://stackoverflow.com/a/39441537). To workaround it, just open the info.plist file in Supporting Files directory and right click with the mouse and select Add Row. Then from the drop down look for the Privacy – Calendars Usage Description and add a description of this permission like in the example below:

postimage

We will see whether the new version of AdMob resolves this issue as well.

Regards, dmbTEAM

Hello! Are recipes in categories inside of table view? I mean can I use swipe-for-more? For example I want to add to favorites recipe swiping a cell with recipe. Is it possible?

Hello,

The recipes in given category are presented via UITableView. If you have experience with Swift language and iOS programming, you could do it.

Regards, dmbTEAM

Thank you for template. There’s one problem with Favorite list of recipes becayse they aren’t saving after reloading app. What Do I need to do to save them?

Hmm… Favorite list is working very strange. After launching the app as I said I moved to Favorite list and it’s empty. Then I moved to one recipe and looked it and then I’ve returned to Favorite list and it’s not empty

Hello,

Would you please describe this behavior HERE. We will dig into it and will fix it.

Regards, dmbTEAM

Ok, thank you!

nice app – how hard would it be for me to change the way the recipes are laid out in the categories? I would just like to display the photo and the title.

Hello,

The icon and the number of recipes could be easily set to hidden.

Regards, dmbTEAM

How do I remove the onesignal push notifications ? because I don’t have a real device yet and Iam blocked to the final step

Hello,

Would you please tell us why you are blocked? Basically, you can set up the app with Push Notifications and then when its released you will be able to test it.

Regards, dmbTEAM

Hi, thanks for replying .. when I set up the push notifications , I’ve got this issue http://imgur.com/a/aOmlu in the final step the reason why I want to delete onesignal. NB like what I say before I don’t have a real iphone I use just the simulator .

Hello,

This final step is to verify that one signal sdk is successfully installed. If it detected that you are working with Simulator, this means that it works :) So, just ignore this message and go on. When you have a real device, you can start over and test with it. Simply put, there is nothing to worry about.

Regards, dmbTEAM

Hi, uploading it to app store does not work very well. Im instantly getting this error from apple: Missing Info.plist key – This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.

And yes I have added the key and a string to info.plist, but no matter what I do it wont go through.. Got any ideas what this could be?

Hello,

1) Would you please share how you fixed the issue. It would be of great help for other customers.

2) The app will download new data once it is either killed or suspended by the operating system.

Regards, dmbTEAM

This comment is currently being reviewed.

Hello,

Thanks for the hint. I am afraid that I didn’t manage to understand it completely. If you have the good will, you can contact us via the contact form in our profile page and provide us more details.

Regards, dmbTEAM

Hello dmbTeam,

first thank you so much for your support, my App is rejected when I submbit it this is the following issue that I got :

Performance – 2.1

We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.

Next Steps

Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure it will launch without crashing.

Resources

For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing Application Crash Reports.

For additional information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and Supporting IPv6-only Networks.

For a networking overview, please see About Networking.

Regards,

Hello,

Did you test why the app crashes on start? Basically, I’ve just tested it and with the default set up it doesn’t crash. Would you please in addition ask Apple, whether their test has been done with IPv6 network? This is very important to define whether this is the problem or it’s something else.

Regards, dmbTEAM

How does the filter function work? I noticed this is next to search, what does it do differently?

Hello,

It filters the recipes by origin, e.g. Italian, Asian, etc.

Regards, dmbTEAM

Necessary to add folder and json for image. Can’t fetch all recipe image from one . I have 200 recipe (difficult to create a new folder and json for 200)

Hello,

If you add the images through xCode, the .json file will be automatically generated. So, you have to create the asset and then to drag and drop the ready images directly to xCode. This has to be repeated for each of the images you want to add.

Here you can find step by step instruction: https://dmb.ticksy.com/article/6757

Regards, dmbTEAM

“The new asset will appear in the list – just give it a name and then drag and drop”. Yes this I have to do with 300-500 images. Please suggest some simple method or what about online. I can just give the url in the place and no need to create any such folders ? If yes than can I use offline xml and in place of images name can give the url . like offline xml contains url for images.

Hello,

I am afraid that this is the way asset files are added to xCode project – there is no simpler method.

Basically, if you use external (web hosted) xml file, you can upload the images to the web server and then to put the URL to the image in the XML file.

But if you are using local XML file, you must do it via xCode.

Regards, dmbTEAM

sebinkv

sebinkv Purchased

Hi I am getting two errors during the running.. 1. Onesignal/onesignal.h file not found recipe-bridging-Header.h 2. Failed to import bridging header ’/ users/apple/desktop/xxxx/xxxxx

This is my first app on iOS. So please help me to resolve this.

sebinkv

sebinkv Purchased

Hi, I am using Xcode 8.2.1. I dont have cocoapods. Yes. I am getting this error during building.

sebinkv

sebinkv Purchased

Is cocoapods mandatory? You haven’t mentioned it in the documentation.

Hello,

Basically, the pods are part of the project but sometimes there are problems. Would you please install them executing the following command in terminal:

sudo gem install cocoapods

Regards, dmbTEAM

Hello Nice app!

Getting issue with image. As took an online method and all recipies images are there but can’t see Category Images.

http://34.194.204.148/uploads/meat.png http://34.194.204.148/uploads/poultry.png http://34.194.204.148/uploads/seafood.png http://34.194.204.148/uploads/asian.png http://34.194.204.148/uploads/european.png http://34.194.204.148/uploads/vegan.png

These are my category images which I can’t see. And is placed with recipe images and recipe images are visible only issue with category images. Please help

Hello,

Have you modified the XML file and more specifically the category element and its attribute icon:

<Category name="Main Courses" icon="ic_menu_main_courses">

The icon attribute must point to the name the category. Be aware that you can’t put URL here!

Regards, dmbTEAM

Got this message while uploading. Please suggest asap because we are late ---

Dear developer,

We have discovered one or more issues with your recent delivery for “Simply Airfryer Recipe”. To process your delivery, the following issues must be corrected:

Missing Info.plist key – This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.

Though you are not required to fix the following issues, we wanted to make you aware of them:

Missing Push Notification Entitlement – Your app appears to register with the Apple Push Notification service, but the app signature’s entitlements do not include the “aps-environment” entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the “aps-environment” entitlement. Xcode 8 does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor’s Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.

Once the required corrections have been made, you can then redeliver the corrected binary.

Regards,

The App Store team

Hello,

It seems that due to AdMob SDK this permission is required, because our app doesn’t use Calendar. It’s a known issue (check here: http://stackoverflow.com/a/39441537). To workaround it, just open the info.plist file in Supporting Files directory and right click with the mouse and select Add Row. Then from the drop down look for the Privacy – Calendars Usage Description and add a description of this permission like in the example below:

postimage

For the Push Notifications, our app has integration with OneSignal for pushes, so it is good idea to use it. Apple provided instruction how to generate proper profiles with Push Notifications Enabled. This is not a must and you can ignore it – it’s up to you.

Regards, dmbTEAM

hi considering getting the app – Can you add the possibility for the users to Register?

Hello,

There is no registration, because a server will be needed. This server has to manage the registration and everything related to user profiles. Maintaining such things is not a simple task, that’s why we don’t have it.

Regards, dmbTEAM

Hello dmbTeam

I purchased the recipe app and after following your documentation when I’m trying to compile the recipe app using my Xcode 8.x version.

I’m getting following error for “Recipe.xcdatamodeld” file.

Error: Could not determine generated file paths for Core Data code generation: Error Domain=com.apple.dt.ModelingTools Code=1 “Error, failed to read Core Data data model from /users/xxxx/desktop/recipe template/ios_recipe_app_v1.7/Recipe/Recipe.xcdatamodeld/Recipe.xcdatamodel: unknown model format” UserInfo={..................

Please advise

Hello,

That’s strange…are you using the latest xCode 8.2.1? If yes, please make sure to do the following:

Use Xcode's Product menu, then, with the option key pressed, select 'Clean Build Folder'. Confirm no errors in the navigator and go again.

Something in addition, when you opened the .xcodeproj file I guess you didn’t convert the Swift code? You should opt-out of the conversion, because the app is written with Swift 2.3!

Let us know about the results!

Regards, dmbTEAM

Is there a limit on the number of categories you can have?

Hello,

Category images work this way:

- Each <Category> has attribute icon. This attribute controls two things: (1) Category icon in the menu and (2) The Category image in the Home screen.

- The image in the home screen is clear – the app will look for an asset with that name.

- For the icon in the menu, the app will look for an asset that have the same name and prefix left_

Example:
<Category name="Deserts" icon="ic_menu_desserts">

This means that the image in home has to be ic_menu_desserts, while the app will look for an asset left_ic_menu_desserts in order to put it in the menu.

Note: Pasting an image to the project folder and an asset are completely different things. When you paste the image (e.g. png), the you have to create an asset in xCode. We have an article for this: https://dmb.ticksy.com/article/6757

Regards, dmbTEAM

SOLVED: Just duplicate the folder and rename it, After that make reference to it in the xml and it works like a charm.

We are glad to hear that everything is fine :)

Hi dmbTEAM,

There is a new Xode Version 8.3 (8E162). When I use this new version to open my previous working app without conversion as your previous suggestion, I will get an error:

“Showing Recent Issues “Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.”

Please advise me how to resolve it asap.

Regards Kevin

Hi dmbTEAM,

As I find from the Xcode 8.3 release note, it states:

Xcode 8.3 no longer supports Swift 2.3. Please migrate your projects containing Swift 2.3 code to Swift 3 syntax by opening the project and choosing Edit > Convert > To Current Swift Syntax.

After I run the convert, the app gets lots of error.

Regards Kevin

Hi dmbTEAM,

When will you plan to test with Xcode 8.3 and fix the errors? My Mac has been auto upgraded to Xocde 8.3 and cannot downgrade to 8.2 as Apple website has only latest Xcode version for download. Please support your purchasers!

Regards Kevin

Hello,

Thanks for the info that Swift 2.3 is no longer supported. We will start migrating the app as soon as possible.

Basically, when you login to the Apple’s Member Center, then from the left menu select the Downloads menu item. Scroll down and find the See more downloads link. Click it and a new page will be loaded – from there you can download xCode 8.2.1.

Stay tuned for the next app version with the migrated swift.

Regards, dmbTEAM

appapp

appapp Purchased

do you make an update to swift3?

Hello,

We are working on the migration. Stay tuned for the next version.

Regards, dmbTEAM

hello this is a pre buy questions : does this app compatible with ios 10 ? and can i see the documentation please to see how much will cost me if i hire someone to edit the app for me

Hello,

xCode 8.3 – this is the latest one.

Regards, dmbTEAM

should i update my xcode to 8.3 or 8.1 is just fine ?

Hello,

You should update to the latest xCode. That’s the point of updating the app.

Regards, dmbTEAM

Hello , how i can remove shopping list from the sidebar, and in the recipe page just shown the title and image without that origine prep time ect and from the recipe page too, and i want to let only recipe in the recipe page without that summary and ingredients, and please how much it cost to ad admob interstitial. thanks in advance.

Hello,

I am afraid that all of these modifications will totally change the app and they can’t be done. Every feature is connected with others and without additional development, you can’t just remove so many things. For example, the shopping list feature is connected to the recipe details screen and there is a bunch of code that handles it.

It seems that you need a custom app based on this one. In order to receive estimation how much it would cost, please contact us via the contact form in our profile page.

Regards, dmbTEAM

hello thank you for the reply, i dont want necessarily to delete it from the core code but only hide it from ui.

Hello,

Essentially it’s the same. For the Shopping list perform the following actions:

1) Open ViewControllers/LeftMenuViewController.swift and look for the following function:

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

        cell.menuImageView.image = nil
        cell.menuTitleLabel.text = nil
        if indexPath.row < categories.count {
            cell.menuImageView.image = UIImage(named: "left_"+(categories[indexPath.row].icon as String))
            cell.menuTitleLabel.text = categories[indexPath.row].name as String
        } else if indexPath.row == categories.count {
            cell.menuImageView.image = UIImage(named: "left_fav")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuFavsKey", comment: "String from Localizable.strings file")
        } else if indexPath.row == categories.count + 1 {
            cell.menuImageView.image = UIImage(named: "left_menu_shopping_list")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuShoppingListKey", comment: "String from Localizable.strings file")
        } else if indexPath.row == categories.count + 2 {
            cell.menuImageView.image = UIImage(named: "left_about")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuAboutKey", comment: "String from Localizable.strings file")
        }

        return cell
    }

Here, you should delete the:

else if indexPath.row == categories.count + 1 {
            cell.menuImageView.image = UIImage(named: "left_menu_shopping_list")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuShoppingListKey", comment: "String from Localizable.strings file")
        }

Then, in the next else statement change the +2 to +1. The final variant of the function must be:

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

        cell.menuImageView.image = nil
        cell.menuTitleLabel.text = nil
        if indexPath.row < categories.count {
            cell.menuImageView.image = UIImage(named: "left_"+(categories[indexPath.row].icon as String))
            cell.menuTitleLabel.text = categories[indexPath.row].name as String
        } else if indexPath.row == categories.count {
            cell.menuImageView.image = UIImage(named: "left_fav")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuFavsKey", comment: "String from Localizable.strings file")
        } else if indexPath.row == categories.count + 1 {
            cell.menuImageView.image = UIImage(named: "left_about")
            cell.menuTitleLabel.text = NSLocalizedString("LeftMenuAboutKey", comment: "String from Localizable.strings file")
        }

        return cell
    }

2) Open ViewControllers/HomeViewController.swift and look for the following function:

func hideLeftMenu(_ notification: Notification) {
        leftMenu.view.removeFromSuperview()

        var info = notification.userInfo!
        let index = info["selectedRow"] as! Int

        if index >= 0 && index < categories.count {
            let category = categories[index]
            self.selectedCategoryRecipes = category.recipes
            categoryName = category.name as String
            self.performSegue(withIdentifier: RECIPES_SEGUE_IDENTIFIER, sender: self)
        } else if index == categories.count {
            self.selectedCategoryRecipes = favorites
            categoryName = "Favorites" 
            self.performSegue(withIdentifier: RECIPES_SEGUE_IDENTIFIER, sender: self)

        } else if index == categories.count + 1 {
            self.performSegue(withIdentifier: "ShoppingList", sender: self)
        } else if index == categories.count + 2 {
            self.performSegue(withIdentifier: "AboutViewIdentifier", sender: self)
        }
    }

Here, you have to delete the else if statement that handles the tapping on the menu and to change the +2 value to +1 for the AboutViewIdentifier:

else if index == categories.count + 1 {
            self.performSegue(withIdentifier: "ShoppingList", sender: self)
        }

So the final variant must be:

func hideLeftMenu(_ notification: Notification) {
        leftMenu.view.removeFromSuperview()

        var info = notification.userInfo!
        let index = info["selectedRow"] as! Int

        if index >= 0 && index < categories.count {
            let category = categories[index]
            self.selectedCategoryRecipes = category.recipes
            categoryName = category.name as String
            self.performSegue(withIdentifier: RECIPES_SEGUE_IDENTIFIER, sender: self)
        } else if index == categories.count {
            self.selectedCategoryRecipes = favorites
            categoryName = "Favorites" 
            self.performSegue(withIdentifier: RECIPES_SEGUE_IDENTIFIER, sender: self)

        } else if index == categories.count + 1 {
            self.performSegue(withIdentifier: "AboutViewIdentifier", sender: self)
        }
    }

So, you see that it’s not that simple, especially if you are not experienced developer.

Regards, dmbTEAM

Hello! Is it possible to put pricing to the ingredients?

Hello,

Each ingredient is a text item, so you can add whatever information you want. For example: 1 tbsp salt (1.00 EUR).

Regards, dmbTEAM

by
by
by
by
by
by